OSDN Git Service

QmlCppEngine: Make sure that breakpoint markers get removed
authorKai Koehne <kai.koehne@nokia.com>
Wed, 12 Oct 2011 15:26:18 +0000 (17:26 +0200)
committerKai Koehne <kai.koehne@nokia.com>
Thu, 13 Oct 2011 09:56:10 +0000 (11:56 +0200)
resetLocation() called by DebuggerPlugin::handle* should automatically
reset the locations for stepping etc.

Change-Id: I3e20f93ade7f40e1e1f33b1b48b11522b59771f8
Task-number: QTCREATORBUG-6291
Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
src/plugins/debugger/debuggerengine.h
src/plugins/debugger/qml/qmlcppengine.cpp
src/plugins/debugger/qml/qmlcppengine.h
src/plugins/debugger/qml/qmlengine.cpp

index d20bb42..4f43fb1 100644 (file)
@@ -263,7 +263,7 @@ public:
         int timeout = -1) const;
     Q_SLOT void showStatusMessage(const QString &msg, int timeout = -1) const;
 
-    void resetLocation();
+    virtual void resetLocation();
     virtual void gotoLocation(const Internal::Location &location);
     virtual void quitDebugger(); // called by DebuggerRunControl
 
index 38e150e..b327e74 100644 (file)
@@ -671,6 +671,14 @@ void QmlCppEngine::showMessage(const QString &msg, int channel, int timeout) con
     DebuggerEngine::showMessage(msg, channel, timeout);
 }
 
+void QmlCppEngine::resetLocation()
+{
+    if (d->m_qmlEngine)
+        d->m_qmlEngine->resetLocation();
+    if (d->m_cppEngine)
+        d->m_cppEngine->resetLocation();
+}
+
 DebuggerEngine *QmlCppEngine::cppEngine() const
 {
     return d->m_cppEngine;
index d7f4623..6daaa62 100644 (file)
@@ -94,6 +94,7 @@ public:
 
     void showMessage(const QString &msg, int channel = LogDebug,
         int timeout = -1) const;
+    void resetLocation();
 
 protected:
     void detachDebugger();
index c64f77d..914fbda 100644 (file)
@@ -451,7 +451,6 @@ void QmlEngine::executeStep()
         logMessage(LogSend, "STEPINTO");
         d->m_adapter.activeDebuggerClient()->executeStep();
     }
-    resetLocation();
     notifyInferiorRunRequested();
     notifyInferiorRunOk();
 }
@@ -462,7 +461,6 @@ void QmlEngine::executeStepI()
         logMessage(LogSend, "STEPINTO");
         d->m_adapter.activeDebuggerClient()->executeStepI();
     }
-    resetLocation();
     notifyInferiorRunRequested();
     notifyInferiorRunOk();
 }
@@ -473,7 +471,6 @@ void QmlEngine::executeStepOut()
         logMessage(LogSend, "STEPOUT");
         d->m_adapter.activeDebuggerClient()->executeStepOut();
     }
-    resetLocation();
     notifyInferiorRunRequested();
     notifyInferiorRunOk();
 }
@@ -484,7 +481,6 @@ void QmlEngine::executeNext()
         logMessage(LogSend, "STEPOVER");
         d->m_adapter.activeDebuggerClient()->executeNext();
     }
-    resetLocation();
     notifyInferiorRunRequested();
     notifyInferiorRunOk();
 }