From fff4c2b2339cdfec4c5116ec01c5e16ea5a0946a Mon Sep 17 00:00:00 2001 From: Thomas Hartmann <Thomas.Hartmann@nokia.com> Date: Wed, 22 Sep 2010 17:38:08 +0200 Subject: [PATCH] QmlDesigner: avoid crash There can be notifications from the instance after a model node has been deleted. We now ignore those. --- .../designercore/instances/nodeinstancesignalspy.cpp | 2 +- .../qmldesigner/designercore/instances/nodeinstanceview.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstancesignalspy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstancesignalspy.cpp index d47bf05fe37..70a10a7544a 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstancesignalspy.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstancesignalspy.cpp @@ -79,7 +79,7 @@ int NodeInstanceSignalSpy::qt_metacall(QMetaObject::Call call, int methodId, voi if (call == QMetaObject::InvokeMetaMethod && methodId > QObject::staticMetaObject.methodCount()) { ObjectNodeInstance::Pointer nodeInstance = m_objectNodeInstance.toStrongRef(); - if (nodeInstance && nodeInstance->nodeInstanceView()) { + if (nodeInstance && nodeInstance->nodeInstanceView() && nodeInstance->modelNode().isValid()) { nodeInstance->nodeInstanceView()->notifyPropertyChange(nodeInstance->modelNode(), m_indexPropertyHash.value(methodId)); } diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp index 5acfb026a2e..1ae3e051f55 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp @@ -568,6 +568,8 @@ void NodeInstanceView::notifyPropertyChange(const ModelNode &node, const QString { if (m_blockStatePropertyChanges) return; + if (!node.isValid()) + return; emitInstancePropertyChange(QList<QPair<ModelNode, QString> >() << qMakePair(node, propertyName)); } -- GitLab