diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2019-11-25 16:10:04 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-02-07 09:37:53 +0100 |
commit | 6d0a453f41d304239285d64b06612c36922be701 (patch) | |
tree | 36a77a421948753d9512484f04efc7744941de88 /src/qml/qml/qqmlvmemetaobject.cpp | |
parent | 053547fba7e83e894d8af3a63d022daa6a34ce99 (diff) |
Use the extended QQmlListProperty interface in a few places
Task-number: QTBUG-79263
Change-Id: If518f644b5b9eddbacfb1cb16fbb557127ffcfb2
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlvmemetaobject.cpp')
-rw-r--r-- | src/qml/qml/qqmlvmemetaobject.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp index c20bc24a49..de23e929e2 100644 --- a/src/qml/qml/qqmlvmemetaobject.cpp +++ b/src/qml/qml/qqmlvmemetaobject.cpp @@ -136,6 +136,20 @@ static void list_clear(QQmlListProperty<QObject> *prop) resolved.activateSignal(); } +static void list_replace(QQmlListProperty<QObject> *prop, int index, QObject *o) +{ + const ResolvedList resolved(prop); + resolved.list()->replace(index, o); + resolved.activateSignal(); +} + +static void list_removeLast(QQmlListProperty<QObject> *prop) +{ + const ResolvedList resolved(prop); + resolved.list()->removeLast(); + resolved.activateSignal(); +} + QQmlVMEVariantQObjectPtr::QQmlVMEVariantQObjectPtr() : QQmlGuard<QObject>(nullptr), m_target(nullptr), m_index(-1) { @@ -737,7 +751,8 @@ int QQmlVMEMetaObject::metaCall(QObject *o, QMetaObject::Call c, int _id, void * *static_cast<QQmlListProperty<QObject> *>(a[0]) = QQmlListProperty<QObject>( object, reinterpret_cast<void *>(quintptr(id)), - list_append, list_count, list_at, list_clear); + list_append, list_count, list_at, + list_clear, list_replace, list_removeLast); } else { *reinterpret_cast<QObject **>(a[0]) = readPropertyAsQObject(id); } |