From fa6817a6fa305162018db54cf7402faef3cf403d Mon Sep 17 00:00:00 2001
From: Aurindam Jana <aurindam.jana@nokia.com>
Date: Fri, 13 Apr 2012 17:14:10 +0200
Subject: [PATCH] QmlCppEngine: Update Views when switching between engines.

Change-Id: I90958e77c4d8c845ef6e55fe65eaffe0ac24dcc5
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
---
 src/plugins/debugger/qml/qmlcppengine.cpp | 22 ++++++++++++++--------
 src/plugins/debugger/qml/qmlcppengine.h   |  1 +
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp
index 62b7c1f3a05..051243153ab 100644
--- a/src/plugins/debugger/qml/qmlcppengine.cpp
+++ b/src/plugins/debugger/qml/qmlcppengine.cpp
@@ -120,7 +120,7 @@ QmlCppEngine::QmlCppEngine(const DebuggerStartParameters &sp,
         *errorMessage = tr("The slave debugging engine required for combined QML/C++-Debugging could not be created: %1").arg(*errorMessage);
         return;
     }
-    d->m_activeEngine = d->m_cppEngine;
+    setActiveEngine(d->m_cppEngine);
 }
 
 QmlCppEngine::~QmlCppEngine()
@@ -425,7 +425,7 @@ bool QmlCppEngine::evaluateScriptExpression(const QString &expression)
 void QmlCppEngine::setupEngine()
 {
     EDEBUG("\nMASTER SETUP ENGINE");
-    d->m_activeEngine = d->m_cppEngine;
+    setActiveEngine(d->m_cppEngine);
     d->m_qmlEngine->setupSlaveEngine();
     d->m_cppEngine->setupSlaveEngine();
 
@@ -592,7 +592,7 @@ void QmlCppEngine::slaveEngineStateChanged
                 // track qml engine again
                 setState(InferiorStopRequested);
                 notifyInferiorStopOk();
-                d->m_activeEngine = qmlEngine();
+                setActiveEngine(d->m_qmlEngine);
             }
             break;
         }
@@ -625,7 +625,7 @@ void QmlCppEngine::slaveEngineStateChanged
                     setState(InferiorStopRequested);
                 }
                 // now track cpp engine
-                d->m_activeEngine = cppEngine();
+                setActiveEngine(d->m_cppEngine);
             }
             break;
         }
@@ -637,7 +637,7 @@ void QmlCppEngine::slaveEngineStateChanged
                            || state() == InferiorStopOk, qDebug() << state());
 
                 // Just to make sure, we're shutting down anyway ...
-                d->m_activeEngine = cppEngine();
+                setActiveEngine(d->m_cppEngine);
 
                 if (state() == InferiorStopRequested)
                     setState(InferiorStopOk);
@@ -645,7 +645,7 @@ void QmlCppEngine::slaveEngineStateChanged
             } else {
                 if (d->m_activeEngine != cppEngine()) {
                     showStatusMessage(tr("C++ debugger activated"));
-                    d->m_activeEngine = cppEngine();
+                    setActiveEngine(d->m_cppEngine);
                 }
 
                 QTC_ASSERT(state() == InferiorStopRequested
@@ -737,7 +737,7 @@ void QmlCppEngine::slaveEngineStateChanged
                 EDEBUG("... QML ENGINE STOPPED DURING SHUTDOWN ");
 
                 // Just to make sure, we're shutting down anyway ...
-                d->m_activeEngine = cppEngine();
+                setActiveEngine(d->m_cppEngine);
 
                 if (state() == InferiorStopRequested)
                     notifyInferiorStopOk();
@@ -745,7 +745,7 @@ void QmlCppEngine::slaveEngineStateChanged
             } else {
                 if (d->m_activeEngine != qmlEngine()) {
                     showStatusMessage(tr("QML debugger activated"));
-                    d->m_activeEngine = qmlEngine();
+                    setActiveEngine(d->m_qmlEngine);
                 }
 
                 QTC_ASSERT(state() == InferiorRunOk
@@ -821,6 +821,12 @@ DebuggerEngine *QmlCppEngine::qmlEngine() const
     return d->m_qmlEngine;
 }
 
+void QmlCppEngine::setActiveEngine(DebuggerEngine *engine)
+{
+    d->m_activeEngine = engine;
+    updateViews();
+}
+
 } // namespace Internal
 } // namespace Debugger
 
diff --git a/src/plugins/debugger/qml/qmlcppengine.h b/src/plugins/debugger/qml/qmlcppengine.h
index 7cd2c10be92..59662396328 100644
--- a/src/plugins/debugger/qml/qmlcppengine.h
+++ b/src/plugins/debugger/qml/qmlcppengine.h
@@ -138,6 +138,7 @@ private:
     void slaveEngineStateChanged(DebuggerEngine *slaveEngine, DebuggerState state);
 
     void readyToExecuteQmlStep();
+    void setActiveEngine(DebuggerEngine *engine);
 
 private:
     QmlCppEnginePrivate *d;
-- 
GitLab