From d3eaf05077e507cb3e81c825d9336673cc74cbd0 Mon Sep 17 00:00:00 2001
From: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Date: Tue, 22 Mar 2011 12:33:32 +0100
Subject: [PATCH] QmlDesigner: avoid syncronization errors when going to text
 mode and back

To be safe to change to the base state (and back).

Reviewed-by: Kai Koehne
---
 .../integration/designdocumentcontroller.cpp          | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
index 47cb7e6d72e..9b0c16d5e6e 100644
--- a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
+++ b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
@@ -161,8 +161,19 @@ void DesignDocumentController::detachNodeInstanceView()
 
 void DesignDocumentController::attachNodeInstanceView()
 {
+    QmlModelState state;
     if (m_d->nodeInstanceView)
         model()->attachView(m_d->nodeInstanceView.data());
+
+    //We go back to base state (and back again) to avoid side effects from text editing.
+    if (m_d->statesEditorView) {
+        state = m_d->statesEditorView->currentState();
+        m_d->statesEditorView->setCurrentState(m_d->statesEditorView->baseState());
+
+    }
+
+    if (state.isValid() && m_d->statesEditorView)
+        m_d->statesEditorView->setCurrentState(state);
 }
 
 QWidget *DesignDocumentController::centralWidget() const
-- 
GitLab