diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2021-10-06 10:44:08 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2021-10-08 06:41:49 +0200 |
commit | 49e549934dbd993e9e352a5719f85d1a5475a2f5 (patch) | |
tree | de71a4d8677f34bb331d64787891f99d59ced934 /src | |
parent | 519e08f90c6f652b89b842505dae216b88e3053b (diff) |
Adapt to changed return value for toDynamicMetaObject()
Change-Id: I6b68c89a36ba587a34a26b326ac8bff4ebe1c4cd
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/qml/qqmlvaluetype.cpp | 2 | ||||
-rw-r--r-- | src/qml/qml/qqmlvaluetype_p.h | 2 | ||||
-rw-r--r-- | src/qml/qml/qqmlvmemetaobject.cpp | 2 | ||||
-rw-r--r-- | src/qml/qml/qqmlvmemetaobject_p.h | 2 | ||||
-rw-r--r-- | src/qmlmodels/qqmllistmodel.cpp | 2 | ||||
-rw-r--r-- | src/qmlmodels/qqmllistmodel_p_p.h | 2 | ||||
-rw-r--r-- | src/quick/designer/qqmldesignermetaobject.cpp | 22 | ||||
-rw-r--r-- | src/quick/designer/qqmldesignermetaobject_p.h | 3 |
8 files changed, 19 insertions, 18 deletions
diff --git a/src/qml/qml/qqmlvaluetype.cpp b/src/qml/qml/qqmlvaluetype.cpp index 4b9653d8e9..7446322019 100644 --- a/src/qml/qml/qqmlvaluetype.cpp +++ b/src/qml/qml/qqmlvaluetype.cpp @@ -125,7 +125,7 @@ const QQmlValueType *QQmlGadgetPtrWrapper::valueType() const return static_cast<const QQmlValueType *>(d->metaObject); } -QAbstractDynamicMetaObject *QQmlValueType::toDynamicMetaObject(QObject *) +QMetaObject *QQmlValueType::toDynamicMetaObject(QObject *) { return this; } diff --git a/src/qml/qml/qqmlvaluetype_p.h b/src/qml/qml/qqmlvaluetype_p.h index c006fc7532..b1e985ba7a 100644 --- a/src/qml/qml/qqmlvaluetype_p.h +++ b/src/qml/qml/qqmlvaluetype_p.h @@ -83,7 +83,7 @@ public: int metaTypeId() const { return metaType.id(); } // ---- dynamic meta object data interface - QAbstractDynamicMetaObject *toDynamicMetaObject(QObject *) override; + QMetaObject *toDynamicMetaObject(QObject *) override; void objectDestroyed(QObject *) override; int metaCall(QObject *obj, QMetaObject::Call type, int _id, void **argv) override; // ---- diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp index 5a11e40203..99663d9daa 100644 --- a/src/qml/qml/qqmlvmemetaobject.cpp +++ b/src/qml/qml/qqmlvmemetaobject.cpp @@ -398,7 +398,7 @@ bool QQmlInterceptorMetaObject::intercept(QMetaObject::Call c, int id, void **a) } -QAbstractDynamicMetaObject *QQmlInterceptorMetaObject::toDynamicMetaObject(QObject *o) +QMetaObject *QQmlInterceptorMetaObject::toDynamicMetaObject(QObject *o) { if (!hasAssignedMetaObjectData) { *static_cast<QMetaObject *>(this) = *cache->createMetaObject(); diff --git a/src/qml/qml/qqmlvmemetaobject_p.h b/src/qml/qml/qqmlvmemetaobject_p.h index 10fa0d89a2..41b9a42b51 100644 --- a/src/qml/qml/qqmlvmemetaobject_p.h +++ b/src/qml/qml/qqmlvmemetaobject_p.h @@ -99,7 +99,7 @@ public: static QQmlInterceptorMetaObject *get(QObject *obj); - QAbstractDynamicMetaObject *toDynamicMetaObject(QObject *o) override; + QMetaObject *toDynamicMetaObject(QObject *o) override; // Used by auto-tests for inspection QQmlPropertyCache *propertyCache() const { return cache.data(); } diff --git a/src/qmlmodels/qqmllistmodel.cpp b/src/qmlmodels/qqmllistmodel.cpp index f6a4e0768b..bcda4e6598 100644 --- a/src/qmlmodels/qqmllistmodel.cpp +++ b/src/qmlmodels/qqmllistmodel.cpp @@ -1658,7 +1658,7 @@ ModelNodeMetaObject::~ModelNodeMetaObject() { } -QAbstractDynamicMetaObject *ModelNodeMetaObject::toDynamicMetaObject(QObject *object) +QMetaObject *ModelNodeMetaObject::toDynamicMetaObject(QObject *object) { if (!m_initialized) { m_initialized = true; diff --git a/src/qmlmodels/qqmllistmodel_p_p.h b/src/qmlmodels/qqmllistmodel_p_p.h index 6c40934c04..e751918cd4 100644 --- a/src/qmlmodels/qqmllistmodel_p_p.h +++ b/src/qmlmodels/qqmllistmodel_p_p.h @@ -127,7 +127,7 @@ public: ModelNodeMetaObject(QObject *object, QQmlListModel *model, int elementIndex); ~ModelNodeMetaObject(); - QAbstractDynamicMetaObject *toDynamicMetaObject(QObject *object) override; + QMetaObject *toDynamicMetaObject(QObject *object) override; static ModelNodeMetaObject *get(QObject *obj); diff --git a/src/quick/designer/qqmldesignermetaobject.cpp b/src/quick/designer/qqmldesignermetaobject.cpp index 0264b751f1..b005976387 100644 --- a/src/quick/designer/qqmldesignermetaobject.cpp +++ b/src/quick/designer/qqmldesignermetaobject.cpp @@ -181,10 +181,10 @@ QVariant QQmlDesignerMetaObject::propertyWriteValue(int, const QVariant &value) return value; } -const QAbstractDynamicMetaObject *QQmlDesignerMetaObject::dynamicMetaObjectParent() const +QDynamicMetaObjectData *QQmlDesignerMetaObject::dynamicMetaObjectParent() const { if (QQmlVMEMetaObject::parent.isT1()) - return QQmlVMEMetaObject::parent.asT1()->toDynamicMetaObject(QQmlVMEMetaObject::object); + return QQmlVMEMetaObject::parent.asT1(); else return nullptr; } @@ -222,9 +222,9 @@ int QQmlDesignerMetaObject::openMetaCall(QObject *o, QMetaObject::Call call, int } return -1; } else { - QAbstractDynamicMetaObject *directParent = parent(); - if (directParent) - return directParent->metaCall(o, call, id, a); + QDynamicMetaObjectData *dynamicParent = dynamicMetaObjectParent(); + if (dynamicParent) + return dynamicParent->metaCall(o, call, id, a); else return myObject()->qt_metacall(call, id, a); } @@ -264,12 +264,14 @@ int QQmlDesignerMetaObject::metaCall(QObject *o, QMetaObject::Call call, int id, oldValue = propertyById.read(myObject()); } - QAbstractDynamicMetaObject *directParent = parent(); - if (directParent && id < directParent->propertyOffset()) { - metaCallReturnValue = directParent->metaCall(o, call, id, a); - } else { + QDynamicMetaObjectData *dynamicParent = dynamicMetaObjectParent(); + const QMetaObject *staticParent = dynamicParent + ? dynamicParent->toDynamicMetaObject(QQmlVMEMetaObject::object) + : nullptr; + if (staticParent && id < staticParent->propertyOffset()) + metaCallReturnValue = dynamicParent->metaCall(o, call, id, a); + else openMetaCall(o, call, id, a); - } if (call == QMetaObject::WriteProperty diff --git a/src/quick/designer/qqmldesignermetaobject_p.h b/src/quick/designer/qqmldesignermetaobject_p.h index 3c02c0d3f5..cf91523ca3 100644 --- a/src/quick/designer/qqmldesignermetaobject_p.h +++ b/src/quick/designer/qqmldesignermetaobject_p.h @@ -80,9 +80,8 @@ protected: QVariant propertyWriteValue(int, const QVariant &); QObject *myObject() const { return QQmlVMEMetaObject::object; } - QAbstractDynamicMetaObject *parent() const { return const_cast<QAbstractDynamicMetaObject *>(dynamicMetaObjectParent()); } - const QAbstractDynamicMetaObject *dynamicMetaObjectParent() const; + QDynamicMetaObjectData *dynamicMetaObjectParent() const; const QMetaObject *metaObjectParent() const; |