diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancemetaobject.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancemetaobject.cpp index e35111490b3..e5a825609fc 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancemetaobject.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancemetaobject.cpp @@ -110,7 +110,7 @@ static QQmlPropertyCache *cacheForObject(QObject *object, QQmlEngine *engine) return QQmlEnginePrivate::get(engine)->cache(object); } -NodeInstanceMetaObject *NodeInstanceMetaObject::createNodeInstanceMetaObject(const ObjectNodeInstancePointer &nodeInstance, QQmlEngine *engine) +NodeInstanceMetaObject *NodeInstanceMetaObject::createNodeInstanceMetaObject(const ObjectNodeInstancePointer &nodeInstance) { //Avoid setting up multiple NodeInstanceMetaObjects on the same QObject QObjectPrivate *op = QObjectPrivate::get(nodeInstance->object()); @@ -118,18 +118,7 @@ NodeInstanceMetaObject *NodeInstanceMetaObject::createNodeInstanceMetaObject(con if (nodeInstanceMetaObjectList.contains(parent)) return static_cast(parent); - return new NodeInstanceMetaObject(nodeInstance, engine); -} - -NodeInstanceMetaObject *NodeInstanceMetaObject::createNodeInstanceMetaObject(const ObjectNodeInstancePointer &nodeInstance, QObject *object, const PropertyName &prefix, QQmlEngine *engine) -{ - //Avoid setting up multiple NodeInstanceMetaObjects on the same QObject - QObjectPrivate *op = QObjectPrivate::get(nodeInstance->object()); - QDynamicMetaObjectData *parent = op->metaObject; - if (nodeInstanceMetaObjectList.contains(parent)) - return static_cast(parent); - - return new NodeInstanceMetaObject(nodeInstance, object, prefix, engine); + return new NodeInstanceMetaObject(nodeInstance, nodeInstance->nodeInstanceServer()->engine()); } void NodeInstanceMetaObject::init(QObject *object, QQmlEngine *engine) @@ -176,18 +165,6 @@ NodeInstanceMetaObject::NodeInstanceMetaObject(const ObjectNodeInstance::Pointer } -NodeInstanceMetaObject::NodeInstanceMetaObject(const ObjectNodeInstancePointer &nodeInstance, QObject *object, const PropertyName &prefix, QQmlEngine *engine) - : QQmlVMEMetaObject(object, cacheForObject(object, engine), vMEMetaDataForObject(object)), - m_nodeInstance(nodeInstance), - m_prefix(prefix), - m_context(engine->contextForObject(object)), - - m_data(new MetaPropertyData), - m_cache(0) -{ - init(object, engine); -} - NodeInstanceMetaObject::~NodeInstanceMetaObject() { if (cache->count() > 1) // qml is crashing because the property cache is not removed from the engine @@ -206,7 +183,6 @@ void NodeInstanceMetaObject::createNewProperty(const QString &name) Q_ASSERT(id >= 0); Q_UNUSED(id); - //Updating cache QQmlPropertyCache *oldParent = m_cache->parent(); QQmlEnginePrivate::get(m_context->engine())->cache(this)->invalidate(m_context->engine(), this); @@ -348,9 +324,9 @@ void NodeInstanceMetaObject::notifyPropertyChange(int id) if (objectNodeInstance && objectNodeInstance->nodeInstanceServer()) { if (id < propertyOffset()) { - objectNodeInstance->nodeInstanceServer()->notifyPropertyChange(objectNodeInstance->instanceId(), m_prefix + propertyById.name()); + objectNodeInstance->nodeInstanceServer()->notifyPropertyChange(objectNodeInstance->instanceId(), propertyById.name()); } else { - objectNodeInstance->nodeInstanceServer()->notifyPropertyChange(objectNodeInstance->instanceId(), m_prefix + name(id - propertyOffset())); + objectNodeInstance->nodeInstanceServer()->notifyPropertyChange(objectNodeInstance->instanceId(), name(id - propertyOffset())); } } } diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancemetaobject.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancemetaobject.h index 82fd6d21440..aa3c47b65ae 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancemetaobject.h +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancemetaobject.h @@ -51,14 +51,12 @@ struct MetaPropertyData; class NodeInstanceMetaObject : public QQmlVMEMetaObject { public: - static NodeInstanceMetaObject *createNodeInstanceMetaObject(const ObjectNodeInstancePointer &nodeInstance, QQmlEngine *engine); - static NodeInstanceMetaObject *createNodeInstanceMetaObject(const ObjectNodeInstancePointer &nodeInstance, QObject *object, const PropertyName &prefix, QQmlEngine *engine); + static NodeInstanceMetaObject *createNodeInstanceMetaObject(const ObjectNodeInstancePointer &nodeInstance); ~NodeInstanceMetaObject(); void createNewProperty(const QString &name); protected: NodeInstanceMetaObject(const ObjectNodeInstancePointer &nodeInstance, QQmlEngine *engine); - NodeInstanceMetaObject(const ObjectNodeInstancePointer &nodeInstance, QObject *object, const PropertyName &prefix, QQmlEngine *engine); int openMetaCall(QMetaObject::Call _c, int _id, void **_a); int metaCall(QMetaObject::Call _c, int _id, void **_a); @@ -84,7 +82,6 @@ private: void init(QObject *, QQmlEngine *engine); ObjectNodeInstanceWeakPointer m_nodeInstance; - PropertyName m_prefix; QPointer m_context; QQmlOpenMetaObjectType *m_type; QScopedPointer m_data; diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp index 3a4e93f7d0f..7508afc16e5 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp @@ -173,7 +173,7 @@ void ObjectNodeInstance::setNodeInstanceServer(NodeInstanceServer *server) void ObjectNodeInstance::initializePropertyWatcher(const ObjectNodeInstance::Pointer &objectNodeInstance) { - m_metaObject = NodeInstanceMetaObject::createNodeInstanceMetaObject(objectNodeInstance, nodeInstanceServer()->engine()); + m_metaObject = NodeInstanceMetaObject::createNodeInstanceMetaObject(objectNodeInstance); } void ObjectNodeInstance::initialize(const ObjectNodeInstance::Pointer &objectNodeInstance)