summaryrefslogtreecommitdiffstats
path: root/src/corelib/doc/snippets/qmetatype/registerConverters.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/doc/snippets/qmetatype/registerConverters.cpp')
-rw-r--r--src/corelib/doc/snippets/qmetatype/registerConverters.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/corelib/doc/snippets/qmetatype/registerConverters.cpp b/src/corelib/doc/snippets/qmetatype/registerConverters.cpp
index 5c5e76c7b0..f53d04b7a6 100644
--- a/src/corelib/doc/snippets/qmetatype/registerConverters.cpp
+++ b/src/corelib/doc/snippets/qmetatype/registerConverters.cpp
@@ -1,6 +1,7 @@
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+#include <QJsonObject>
#include <QMetaType>
#include <QString>
@@ -50,5 +51,12 @@ int main() {
QMetaType::registerConverter<CustomStringType, QString>([](const CustomStringType &str) {
return QString::fromUtf8(str.data());
});
+ QMetaType::registerConverter<QJsonValue, QPointF>(
+ [](const QJsonValue &value) -> std::optional<QPointF> {
+ const auto object = value.toObject();
+ if (!object.contains("x") || !object.contains("y"))
+ return std::nullopt; // The conversion fails if the required properties are missing
+ return QPointF{object["x"].toDouble(), object["y"].toDouble()};
+ });
//! [unaryfunc]
}