From d51b579ddd0515c1ba9ef8c7f51060648f2af2ec Mon Sep 17 00:00:00 2001
From: Marco Bubke <marco.bubke@nokia.com>
Date: Tue, 21 Sep 2010 17:36:44 +0200
Subject: [PATCH] QmlDesigner.Model: Change order of notification to prevent
 crash

If the NodeInstance is allready removed the formeditor item isn't
removed.
---
 src/plugins/qmldesigner/designercore/model/model.cpp | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp
index c3ed48ab373..8f93153cb6f 100644
--- a/src/plugins/qmldesigner/designercore/model/model.cpp
+++ b/src/plugins/qmldesigner/designercore/model/model.cpp
@@ -605,17 +605,16 @@ void ModelPrivate::notifyNodeAboutToBeRemoved(const InternalNode::Pointer &nodeP
         resetModel = true;
     }
 
-    if (nodeInstanceView()) {
-        ModelNode node(nodePointer, model(), nodeInstanceView());
-        nodeInstanceView()->nodeAboutToBeRemoved(node);
-    }
-
     foreach (const QWeakPointer<AbstractView> &view, m_viewList) {
         Q_ASSERT(view != 0);
         ModelNode node(nodePointer, model(), view.data());
         view->nodeAboutToBeRemoved(node);
     }
 
+    if (nodeInstanceView()) {
+        ModelNode node(nodePointer, model(), nodeInstanceView());
+        nodeInstanceView()->nodeAboutToBeRemoved(node);
+    }
 
     if (resetModel) {
         resetModelByRewriter(description);
-- 
GitLab