aboutsummaryrefslogtreecommitdiffstats
path: root/src/webchannel/qmetaobjectpublisher.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2023-02-14 13:06:30 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2023-02-14 15:12:49 +0000
commit97841a5d5ade97876db056c2a7db486684769d01 (patch)
treee3a428f3e2055083f070ca95eb0a16a24c2dab64 /src/webchannel/qmetaobjectpublisher.cpp
parent47546ea6bbeb9650c3fcd8dbdb2b02da46d0d85a (diff)
Improve backward support
Do both variant conversions and qjsonvalue conversions. Change-Id: I655395aa64c83ef62e8062d0820fdff437ebb156 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/webchannel/qmetaobjectpublisher.cpp')
-rw-r--r--src/webchannel/qmetaobjectpublisher.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/webchannel/qmetaobjectpublisher.cpp b/src/webchannel/qmetaobjectpublisher.cpp
index c956676..e641109 100644
--- a/src/webchannel/qmetaobjectpublisher.cpp
+++ b/src/webchannel/qmetaobjectpublisher.cpp
@@ -793,16 +793,16 @@ QVariant QMetaObjectPublisher::toVariant(const QJsonValue &value, int targetType
return QVariant(target, reinterpret_cast<const void*>(&flagsValue));
}
- QVariant variant = QJsonValue::fromVariant(value);
- // Try explicit conversion to the target type first. If that fails, fall
- // back to generic conversion
+ QVariant variant = value.toVariant();
+ // Try variant conversion to the target type first. If that fails,
+ // try conversion over QJsonvalue.
if (auto converted = variant; converted.convert(target)) {
variant = std::move(converted);
- } else {
- if (targetType != QMetaType::QVariant) {
+ } else if (targetType != QMetaType::QVariant) {
+ if (QVariant converted = value; converted.convert(target))
+ variant = std::move(converted);
+ else
qWarning() << "Could not convert argument" << value << "to target type" << target.name() << '.';
- }
- variant = value.toVariant();
}
return unwrapVariant(variant);
}