diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-03-05 13:20:05 +0100 |
---|---|---|
committer | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-03-19 21:03:34 +0100 |
commit | 2afb055609dedb79f232b32f704cce33ffd5778d (patch) | |
tree | f278287299f374bc6390b034dcac984dad4b673e /src/qml/jsruntime | |
parent | 0c066168bbbd230abe875727b2000d6828b03f23 (diff) |
QQmlMetaType: Remove qmlLists member
Instead of using a hashmap which maps a QML lists metatype to its list
element's metatype, we can just store a pointer in the list metatype to
the element metatype.
Moreover, listType now returns a metatype. This is a preparation for
converting
enginePriv->rawMetaObjectForType(typeId)
to
metaType.metaObject()
calls once we can actually retrieve the metaobject from QML metatypes.
The QML metatype interface classes are moved into a header, so that Qt
for Python can use the same classes.
This does not affect types registered from C++, as those use a different
mechanism.
Task-number: QTBUG-88766
Task-number: QTBUG-82931
Task-number: QTBUG-87134
Change-Id: I330c2bbe4ac92072a333c001750f7504b56df478
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/qml/jsruntime')
-rw-r--r-- | src/qml/jsruntime/qv4qmlcontext.cpp | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4qobjectwrapper.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4qmlcontext.cpp b/src/qml/jsruntime/qv4qmlcontext.cpp index 5581ea9a53..18d611f2c3 100644 --- a/src/qml/jsruntime/qv4qmlcontext.cpp +++ b/src/qml/jsruntime/qv4qmlcontext.cpp @@ -126,7 +126,7 @@ static OptionalReturnedValue searchContextProperties( QQmlListProperty<QObject> prop(context->asQQmlContext(), (void*) qintptr(propertyIdx), QQmlContextPrivate::context_count, QQmlContextPrivate::context_at); - return OptionalReturnedValue(QmlListWrapper::create(v4, prop, qMetaTypeId<QQmlListProperty<QObject> >())); + return OptionalReturnedValue(QmlListWrapper::create(v4, prop, QMetaType::fromType<QQmlListProperty<QObject> >())); } return OptionalReturnedValue(v4->fromVariant(cp->propertyValue(propertyIdx))); } diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp index c43a4bfe25..25d92596c9 100644 --- a/src/qml/jsruntime/qv4qobjectwrapper.cpp +++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp @@ -151,7 +151,7 @@ static QV4::ReturnedValue loadProperty(QV4::ExecutionEngine *v4, QObject *object return ret; } else if (property.isQList()) { - return QmlListWrapper::create(v4, object, property.coreIndex(), property.propType().id()); + return QmlListWrapper::create(v4, object, property.coreIndex(), property.propType()); } else if (propType == QMetaType::QReal) { qreal v = 0; property.readProperty(object, &v); |