diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2023-06-14 12:16:19 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2023-06-15 13:57:32 +0200 |
commit | 0c50edd6f5a819a7bc6e19c5ac69191d491167da (patch) | |
tree | 03372a0b067bad64a37444f2fe0c71c12e4f52fa /src/qml/qml/qqmlproperty.cpp | |
parent | 662c3c3545275f412eb2cf7b9baef6003757d128 (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.cpp | 5 |
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)); } |