OSDN Git Service

QmlDesigner.documentcontroller: detach node instance view in edit mode
authorThomas Hartmann <Thomas.Hartmann@nokia.com>
Tue, 8 Mar 2011 15:49:35 +0000 (16:49 +0100)
committerThomas Hartmann <Thomas.Hartmann@nokia.com>
Tue, 8 Mar 2011 17:37:43 +0000 (18:37 +0100)
This patch detaches the node instance view in edit node.

src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
src/plugins/qmldesigner/components/integration/designdocumentcontroller.h

index 2ddab40..6b16b86 100644 (file)
@@ -151,6 +151,19 @@ Model *DesignDocumentController::masterModel() const
     return m_d->masterModel.data();
 }
 
+
+void DesignDocumentController::detachNodeInstanceView()
+{
+    if (m_d->nodeInstanceView)
+        model()->detachView(m_d->nodeInstanceView.data());
+}
+
+void DesignDocumentController::attachNodeInstanceView()
+{
+    if (m_d->nodeInstanceView)
+        model()->attachView(m_d->nodeInstanceView.data());
+}
+
 QWidget *DesignDocumentController::centralWidget() const
 {
     return qobject_cast<QWidget*>(parent());
@@ -180,8 +193,10 @@ void DesignDocumentController::blockModelSync(bool block)
 
     if (m_d->textModifier) {
         if (m_d->syncBlocked) {
+            detachNodeInstanceView();
             m_d->textModifier->deactivateChangeSignals();
         } else {
+            attachNodeInstanceView();
             m_d->textModifier->reactivateChangeSignals();
         }
     }
index 489dfc6..46b926f 100644 (file)
@@ -133,6 +133,8 @@ private slots:
     void changeCurrentModelTo(const ModelNode &node);
 
 private:
+    void detachNodeInstanceView();
+    void attachNodeInstanceView();
     QWidget *centralWidget() const;
     class DesignDocumentControllerPrivate *m_d;
     bool save(QIODevice *device, QString *errorMessage);