diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstance.h b/src/plugins/qmldesigner/designercore/include/nodeinstance.h index 7ccf54cfb8b991146c98c78422be8dd0f8081060..df3d38494f22ec6201ed48253277ddb7db55f32c 100644 --- a/src/plugins/qmldesigner/designercore/include/nodeinstance.h +++ b/src/plugins/qmldesigner/designercore/include/nodeinstance.h @@ -141,6 +141,8 @@ public: static void registerDeclarativeTypes(); + QString id() const; + #ifdef QTCREATOR_TEST QObject* testHandle() const; Internal::ObjectNodeInstance* internalInstance() const; diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp index 7d88a7260108d4f77cc0e4516458d219a5346eb3..88c1306f12f19c158abeada709d992027ca281b6 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp @@ -644,6 +644,11 @@ void NodeInstance::registerDeclarativeTypes() // qmlRegisterType<QmlDesigner::Internal::QmlPropertyChangesObject>(); } +QString NodeInstance::id() const +{ + return m_nodeInstance->id(); +} + #ifdef QTCREATOR_TEST QObject* NodeInstance::testHandle() const { diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp index c7dd927514443b7fe965db95f0d82db895b73cbf..d83cd9711aed650ee6cd4a8c51c964396f82be06 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp @@ -699,8 +699,8 @@ void NodeInstanceView::removeIdFromContext(QObject *object) { if (hasInstanceForObject(object)) { NodeInstance instance = instanceForObject(object); - if (instance.internalInstance()) { - QString id = instance.internalInstance()->id(); + if (instance.isValid()) { + QString id = instance.id(); if (!id.isEmpty()) engine()->rootContext()->setContextProperty(id, 0); }