diff options
author | Tatiana Borisova <tatiana.borisova@qt.io> | 2024-04-02 17:31:01 +0200 |
---|---|---|
committer | Ivan Solovev <ivan.solovev@qt.io> | 2024-04-03 17:31:36 +0000 |
commit | faaee821297ad801f24cab0cdddd0d068595686d (patch) | |
tree | 30e937e57c52b8a4348b7e39c27676d6705f6ce5 | |
parent | f62a6ac874d546d783e95d250d4a0059c55dc6f9 (diff) |
Add equality comparison between QJsonObject and QJsonValueConstRef
- amends 839cffd5212cc1437661e9c650eb2ff4b19fa4e8
Fixes: QTBUG-123927
Change-Id: I9174e747478937d4c9ed6522dd603fea50daf203
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
-rw-r--r-- | src/corelib/serialization/qjsonobject.cpp | 2 | ||||
-rw-r--r-- | src/corelib/serialization/qjsonobject.h | 6 | ||||
-rw-r--r-- | tests/auto/corelib/serialization/json/tst_qtjson.cpp | 3 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/corelib/serialization/qjsonobject.cpp b/src/corelib/serialization/qjsonobject.cpp index 2fbac931dc..2dd1eb01c6 100644 --- a/src/corelib/serialization/qjsonobject.cpp +++ b/src/corelib/serialization/qjsonobject.cpp @@ -32,7 +32,7 @@ QT_BEGIN_NAMESPACE \brief The QJsonObject class encapsulates a JSON object. \compares equality - \compareswith equality QJsonValue + \compareswith equality QJsonValue QJsonValueConstRef \endcompareswith A JSON object is a list of key value pairs, where the keys are unique strings diff --git a/src/corelib/serialization/qjsonobject.h b/src/corelib/serialization/qjsonobject.h index bdf35a4f20..009f6c920f 100644 --- a/src/corelib/serialization/qjsonobject.h +++ b/src/corelib/serialization/qjsonobject.h @@ -244,8 +244,14 @@ private: { return comparesEqual(lhs, rhs.toObject()); } + friend bool comparesEqual(const QJsonObject &lhs, + const QJsonValueConstRef &rhs) noexcept + { + return comparesEqual(lhs, rhs.toObject()); + } Q_DECLARE_EQUALITY_COMPARABLE(QJsonObject) Q_DECLARE_EQUALITY_COMPARABLE(QJsonObject, QJsonValue) + Q_DECLARE_EQUALITY_COMPARABLE(QJsonObject, QJsonValueConstRef) friend class QJsonValue; friend class QJsonDocument; friend class QJsonPrivate::Value; diff --git a/tests/auto/corelib/serialization/json/tst_qtjson.cpp b/tests/auto/corelib/serialization/json/tst_qtjson.cpp index 5046478547..4b6468f42f 100644 --- a/tests/auto/corelib/serialization/json/tst_qtjson.cpp +++ b/tests/auto/corelib/serialization/json/tst_qtjson.cpp @@ -187,6 +187,8 @@ void tst_QtJson::compareCompiles() QTestPrivate::testEqualityOperatorsCompile<QJsonValueRef>(); QTestPrivate::testEqualityOperatorsCompile<QJsonArray, QJsonValue>(); QTestPrivate::testEqualityOperatorsCompile<QJsonObject, QJsonValue>(); + QTestPrivate::testEqualityOperatorsCompile<QJsonObject, QJsonValueConstRef>(); + QTestPrivate::testEqualityOperatorsCompile<QJsonObject, QJsonValueRef>(); QTestPrivate::testEqualityOperatorsCompile<QJsonValueConstRef, QJsonValue>(); QTestPrivate::testEqualityOperatorsCompile<QJsonValueRef, QJsonValue>(); QTestPrivate::testEqualityOperatorsCompile<QJsonValueRef, QJsonValueConstRef>(); @@ -670,6 +672,7 @@ void tst_QtJson::testObjectInsertCopies() QCOMPARE(obj.size(), 2); QCOMPARE(obj.value("value"), "TEST"); QCOMPARE(obj.value("prop2"), "TEST"); + QT_TEST_EQUALITY_OPS(rv, obj["value"].toObject(), true); } { QJsonObject obj; |