aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/qml/jsruntime/qv4engine.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp
index b952888859..334ef96023 100644
--- a/src/qml/jsruntime/qv4engine.cpp
+++ b/src/qml/jsruntime/qv4engine.cpp
@@ -2728,10 +2728,20 @@ bool ExecutionEngine::metaTypeFromJS(const Value &value, QMetaType metaType, voi
}
const auto wrapperPrivate = wrapper->d();
- if (wrapperPrivate->propertyType() == metaType) {
+ if (metaType == QMetaType::fromType<QQmlListProperty<QObject> *>()
+ || metaType == wrapperPrivate->propertyType()) {
*reinterpret_cast<QQmlListProperty<QObject> *>(data) = *wrapperPrivate->property();
return true;
}
+
+ if (metaType == QMetaType::fromType<QObjectList>()) {
+ *reinterpret_cast<QObjectList *>(data)
+ = wrapperPrivate->property()->toList<QObjectList>();
+ return true;
+ }
+
+ if (convertToIterable(metaType, data, wrapper))
+ return true;
}
if (const QQmlValueTypeWrapper *vtw = value.as<QQmlValueTypeWrapper>()) {