aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4engine.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2021-06-02 08:42:51 +0200
committerUlf Hermann <ulf.hermann@qt.io>2021-06-02 10:18:03 +0200
commit28c4d536e2bbf65d85c89efe1b64fc4e714e02bc (patch)
tree474126a7bbefc8a1cc0cd73d41288718da497e9c /src/qml/jsruntime/qv4engine.cpp
parent19b6f9591257b3a07bf1479bcc2d676e57506447 (diff)
Allow value type conversion in metaTypeFromJS
We implicitly do the same when calling toVariant(). Change-Id: I288326125d88bc658dcaf12d3ee623e0e529bb69 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4engine.cpp')
-rw-r--r--src/qml/jsruntime/qv4engine.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp
index 5247fda6c9..c17478c0cc 100644
--- a/src/qml/jsruntime/qv4engine.cpp
+++ b/src/qml/jsruntime/qv4engine.cpp
@@ -2451,9 +2451,13 @@ bool ExecutionEngine::metaTypeFromJS(const Value &value, QMetaType metaType, voi
}
{
- const QQmlValueTypeWrapper *vtw = value.as<QQmlValueTypeWrapper>();
- if (vtw && vtw->type() == metaType)
- return vtw->toGadget(data);
+ if (const QQmlValueTypeWrapper *vtw = value.as<QQmlValueTypeWrapper>()) {
+ const QMetaType valueType = vtw->type();
+ if (valueType == metaType)
+ return vtw->toGadget(data);
+ if (QMetaType::canConvert(valueType, metaType))
+ return QMetaType::convert(valueType, vtw->d()->gadgetPtr(), metaType, data);
+ }
}
#if 0