diff options
author | Tatiana Borisova <tatiana.borisova@qt.io> | 2024-03-20 17:43:22 +0100 |
---|---|---|
committer | Tatiana Borisova <tatiana.borisova@qt.io> | 2024-03-25 23:29:31 +0100 |
commit | 25652c281960aa5647bc137dcee54b7e712e4897 (patch) | |
tree | 2e533d2c6fc208b2e455a9d24c6d7f1a5ce45b87 /src/corelib/serialization/qjsonobject.h | |
parent | f5d5a42dc3fba2a3a9d911e8ddc589d191f7d247 (diff) |
QJsonObject: use new comparison helper macros
Replace public operators operator==(), operator!=() of
QJsonObject to friend methods comparesEqual().
Use QT_CORE_REMOVED_SINCE and removed_api.cpp to get rid of current
comparison methods and replace them with a friend.
Add friend method comparesEqual(QJsonObject, QJsonValue)
to the QJsonObject class, to support comparison between QJsonObject
and QJsonValue elements, see test-case valueEquals().
Task-number: QTBUG-120300
Change-Id: Ibab0b4b39966205447e31c41e94e7e1a4e31e553
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Diffstat (limited to 'src/corelib/serialization/qjsonobject.h')
-rw-r--r-- | src/corelib/serialization/qjsonobject.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/corelib/serialization/qjsonobject.h b/src/corelib/serialization/qjsonobject.h index 64967d4a0e..bdf35a4f20 100644 --- a/src/corelib/serialization/qjsonobject.h +++ b/src/corelib/serialization/qjsonobject.h @@ -72,9 +72,10 @@ public: bool contains(QStringView key) const; bool contains(QLatin1StringView key) const; +#if QT_CORE_REMOVED_SINCE(6, 8) bool operator==(const QJsonObject &other) const; bool operator!=(const QJsonObject &other) const; - +#endif class const_iterator; class iterator @@ -236,6 +237,15 @@ public: inline bool empty() const { return isEmpty(); } private: + friend Q_CORE_EXPORT bool comparesEqual(const QJsonObject &lhs, + const QJsonObject &rhs) noexcept; + friend bool comparesEqual(const QJsonObject &lhs, + const QJsonValue &rhs) noexcept + { + return comparesEqual(lhs, rhs.toObject()); + } + Q_DECLARE_EQUALITY_COMPARABLE(QJsonObject) + Q_DECLARE_EQUALITY_COMPARABLE(QJsonObject, QJsonValue) friend class QJsonValue; friend class QJsonDocument; friend class QJsonPrivate::Value; |