diff options
Diffstat (limited to 'src/qml/jsruntime/qv4engine.cpp')
| -rw-r--r-- | src/qml/jsruntime/qv4engine.cpp | 12 |
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>()) { |
