diff options
author | Ivan Solovev <ivan.solovev@qt.io> | 2024-04-19 18:38:58 +0200 |
---|---|---|
committer | Ivan Solovev <ivan.solovev@qt.io> | 2024-05-10 15:33:40 +0200 |
commit | 473d06970d224b202e7a8ee8feaa2a2d98d5b257 (patch) | |
tree | 9d784b9ab5aeeca4981e41daf71ec13e7e6cbe2e /src/corelib | |
parent | eb178d3e51019747bcf9446eef62358e9b9072d2 (diff) |
QMarginsF: add qFuzzyCompare and qFuzzyIsNull overloads
[ChangeLog][QtCore][QMarginsF] Added qFuzzyCompare and qFuzzyIsNull
overloads for QMarginsF
Task-number: QTBUG-120308
Change-Id: I7c1ceaa9ba544458738b71bf326395eef59e7a54
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/tools/qmargins.cpp | 16 | ||||
-rw-r--r-- | src/corelib/tools/qmargins.h | 12 |
2 files changed, 27 insertions, 1 deletions
diff --git a/src/corelib/tools/qmargins.cpp b/src/corelib/tools/qmargins.cpp index fbb431e7a4..c4cd0da30d 100644 --- a/src/corelib/tools/qmargins.cpp +++ b/src/corelib/tools/qmargins.cpp @@ -754,6 +754,22 @@ QDebug operator<<(QDebug dbg, const QMargins &m) \sa QMarginsF(), QMargins::toMarginsF() */ +/*! + \fn bool QMarginsF::qFuzzyCompare(const QMarginsF &lhs, const QMarginsF &rhs) + \since 6.8 + + Returns \c true if \a lhs is approximately equal to \a rhs; + otherwise returns \c false. +*/ + +/*! + \fn bool QMarginsF::qFuzzyIsNull(const QMarginsF &margins) + \since 6.8 + + Returns \c true if all components of margsins \a margins are + approximately equal to zero; otherwise returns \c false. +*/ + /***************************************************************************** QMarginsF stream functions *****************************************************************************/ diff --git a/src/corelib/tools/qmargins.h b/src/corelib/tools/qmargins.h index feaa91824a..3b29860d66 100644 --- a/src/corelib/tools/qmargins.h +++ b/src/corelib/tools/qmargins.h @@ -302,7 +302,7 @@ private: QT_WARNING_PUSH QT_WARNING_DISABLE_FLOAT_COMPARE - friend constexpr bool comparesEqual(const QMarginsF &lhs, const QMarginsF &rhs) noexcept + friend constexpr bool qFuzzyCompare(const QMarginsF &lhs, const QMarginsF &rhs) noexcept { return ((!lhs.m_left || !rhs.m_left) ? qFuzzyIsNull(lhs.m_left - rhs.m_left) : qFuzzyCompare(lhs.m_left, rhs.m_left)) @@ -314,6 +314,16 @@ private: : qFuzzyCompare(lhs.m_bottom, rhs.m_bottom)); } QT_WARNING_POP + friend constexpr bool qFuzzyIsNull(const QMarginsF &m) noexcept + { + return qFuzzyIsNull(m.m_left) && qFuzzyIsNull(m.m_top) + && qFuzzyIsNull(m.m_right) && qFuzzyIsNull(m.m_bottom); + } + + friend constexpr bool comparesEqual(const QMarginsF &lhs, const QMarginsF &rhs) noexcept + { + return qFuzzyCompare(lhs, rhs); + } Q_DECLARE_EQUALITY_COMPARABLE_LITERAL_TYPE(QMarginsF) friend constexpr bool comparesEqual(const QMarginsF &lhs, const QMargins &rhs) noexcept |