summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTatiana Borisova <tatiana.borisova@qt.io>2024-04-02 17:31:01 +0200
committerIvan Solovev <ivan.solovev@qt.io>2024-04-03 17:31:36 +0000
commitfaaee821297ad801f24cab0cdddd0d068595686d (patch)
tree30e937e57c52b8a4348b7e39c27676d6705f6ce5
parentf62a6ac874d546d783e95d250d4a0059c55dc6f9 (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.cpp2
-rw-r--r--src/corelib/serialization/qjsonobject.h6
-rw-r--r--tests/auto/corelib/serialization/json/tst_qtjson.cpp3
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;