diff options
Diffstat (limited to 'src/qmlmodels/qqmllistaccessor.cpp')
-rw-r--r-- | src/qmlmodels/qqmllistaccessor.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/qmlmodels/qqmllistaccessor.cpp b/src/qmlmodels/qqmllistaccessor.cpp index 244a1b369d..d68d0a2b90 100644 --- a/src/qmlmodels/qqmllistaccessor.cpp +++ b/src/qmlmodels/qqmllistaccessor.cpp @@ -39,6 +39,7 @@ void QQmlListAccessor::setList(const QVariant &v) d = d.value<QJSValue>().toVariant(); variantsType = d.metaType(); } + if (!d.isValid()) { m_type = Invalid; } else if (variantsType == QMetaType::fromType<QStringList>()) { @@ -49,6 +50,9 @@ void QQmlListAccessor::setList(const QVariant &v) m_type = VariantList; } else if (variantsType == QMetaType::fromType<QList<QObject *>>()) { m_type = ObjectList; + } else if (variantsType.flags() & QMetaType::IsQmlList) { + d = QVariant::fromValue(QQmlListReference(d)); + m_type = ListProperty; } else if (variantsType == QMetaType::fromType<QQmlListReference>()) { m_type = ListProperty; } else if (variantsType.flags() & QMetaType::PointerToQObject) { |