aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlproperty.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2023-06-14 12:16:19 +0200
committerUlf Hermann <ulf.hermann@qt.io>2023-06-15 13:57:32 +0200
commit0c50edd6f5a819a7bc6e19c5ac69191d491167da (patch)
tree03372a0b067bad64a37444f2fe0c71c12e4f52fa /src/qml/qml/qqmlproperty.cpp
parent662c3c3545275f412eb2cf7b9baef6003757d128 (diff)
QQmlProperty: Allow QVariantList as QObject* container
This happens if we convert a JavaScript list to a variant. Pick-to: 6.5 6.6 Fixes: QTBUG-114458 Change-Id: Iea206fd9dfd89f1512104431864b3294170bdbda Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlproperty.cpp')
-rw-r--r--src/qml/qml/qqmlproperty.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlproperty.cpp b/src/qml/qml/qqmlproperty.cpp
index ba82449692..0e44df219f 100644
--- a/src/qml/qml/qqmlproperty.cpp
+++ b/src/qml/qml/qqmlproperty.cpp
@@ -1591,6 +1591,11 @@ bool QQmlPropertyPrivate::write(
const QList<QObject *> &list = qvariant_cast<QList<QObject *> >(value);
for (qsizetype ii = 0; ii < list.size(); ++ii)
doAppend(list.at(ii));
+ } else if (variantMetaType == QMetaType::fromType<QList<QVariant>>()) {
+ const QList<QVariant> &list
+ = *static_cast<const QList<QVariant> *>(value.constData());
+ for (const QVariant &entry : list)
+ doAppend(QQmlMetaType::toQObject(entry));
} else if (!iterateQObjectContainer(variantMetaType, value.data(), doAppend)) {
doAppend(QQmlMetaType::toQObject(value));
}