From ef4ad30e7f16185b9bd299457836a27b56ce1fa5 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 11 Aug 2015 10:19:37 +0200 Subject: Switch to the non compat metacall overload This one passes in the qobject that the metacall is being applied to. The long term goal is to make the vme meta object independent of the QObject instance. Change-Id: Ide34b8637b9963bdb5e87e4aa6e9c2ee825293f7 Reviewed-by: Simon Hausmann --- src/quick/designer/qqmldesignermetaobject.cpp | 12 +++++++----- src/quick/designer/qqmldesignermetaobject_p.h | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'src/quick') diff --git a/src/quick/designer/qqmldesignermetaobject.cpp b/src/quick/designer/qqmldesignermetaobject.cpp index e80012ba3..76c94b242 100644 --- a/src/quick/designer/qqmldesignermetaobject.cpp +++ b/src/quick/designer/qqmldesignermetaobject.cpp @@ -226,7 +226,7 @@ int QQmlDesignerMetaObject::propertyOffset() const return cache->propertyOffset(); } -int QQmlDesignerMetaObject::openMetaCall(QMetaObject::Call call, int id, void **a) +int QQmlDesignerMetaObject::openMetaCall(QObject *o, QMetaObject::Call call, int id, void **a) { if ((call == QMetaObject::ReadProperty || call == QMetaObject::WriteProperty) && id >= m_type->propertyOffset()) { @@ -248,14 +248,16 @@ int QQmlDesignerMetaObject::openMetaCall(QMetaObject::Call call, int id, void ** } else { QAbstractDynamicMetaObject *directParent = parent(); if (directParent) - return directParent->metaCall(call, id, a); + return directParent->metaCall(o, call, id, a); else return myObject()->qt_metacall(call, id, a); } } -int QQmlDesignerMetaObject::metaCall(QMetaObject::Call call, int id, void **a) +int QQmlDesignerMetaObject::metaCall(QObject *o, QMetaObject::Call call, int id, void **a) { + Q_ASSERT(myObject() == o); + int metaCallReturnValue = -1; const QMetaProperty propertyById = QQmlVMEMetaObject::property(id); @@ -288,9 +290,9 @@ int QQmlDesignerMetaObject::metaCall(QMetaObject::Call call, int id, void **a) QAbstractDynamicMetaObject *directParent = parent(); if (directParent && id < directParent->propertyOffset()) { - metaCallReturnValue = directParent->metaCall(call, id, a); + metaCallReturnValue = directParent->metaCall(o, call, id, a); } else { - openMetaCall(call, id, a); + openMetaCall(o, call, id, a); } diff --git a/src/quick/designer/qqmldesignermetaobject_p.h b/src/quick/designer/qqmldesignermetaobject_p.h index eca4fb6a9..47f4baad2 100644 --- a/src/quick/designer/qqmldesignermetaobject_p.h +++ b/src/quick/designer/qqmldesignermetaobject_p.h @@ -68,8 +68,8 @@ protected: static QQmlDesignerMetaObject* getNodeInstanceMetaObject(QObject *object, QQmlEngine *engine); void createNewDynamicProperty(const QString &name); - int openMetaCall(QMetaObject::Call _c, int _id, void **_a); - int metaCall(QMetaObject::Call _c, int _id, void **_a); + int openMetaCall(QObject *o, QMetaObject::Call _c, int _id, void **_a); + int metaCall(QObject *o, QMetaObject::Call _c, int _id, void **_a); void notifyPropertyChange(int id); void setValue(int id, const QVariant &value); QVariant propertyWriteValue(int, const QVariant &); -- cgit v1.2.3