From 879766d85cdde94e3df3c99298864f5c1cbeab74 Mon Sep 17 00:00:00 2001
From: Aurindam Jana <aurindam.jana@nokia.com>
Date: Wed, 17 Aug 2011 13:42:41 +0200
Subject: [PATCH] Notify disconnect to debug server when
 inferiorshutdownrequested

Change-Id: I15bb1342f647362cb00e4b0d0453b663a2d3f637
Reviewed-on: http://codereview.qt.nokia.com/3095
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
---
 src/plugins/debugger/qml/qmldebuggerclient.h       |  1 +
 src/plugins/debugger/qml/qmlengine.cpp             |  7 ++++---
 src/plugins/debugger/qml/qmlv8debuggerclient.cpp   | 12 ++++++++++++
 src/plugins/debugger/qml/qmlv8debuggerclient.h     |  1 +
 src/plugins/debugger/qml/qscriptdebuggerclient.cpp |  5 +++++
 src/plugins/debugger/qml/qscriptdebuggerclient.h   |  1 +
 6 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/src/plugins/debugger/qml/qmldebuggerclient.h b/src/plugins/debugger/qml/qmldebuggerclient.h
index 984869cf098..93c05299e23 100644
--- a/src/plugins/debugger/qml/qmldebuggerclient.h
+++ b/src/plugins/debugger/qml/qmldebuggerclient.h
@@ -59,6 +59,7 @@ public:
 
     virtual void continueInferior() = 0;
     virtual void interruptInferior() = 0;
+    virtual void shutdownInferior() = 0;
 
     virtual void activateFrame(int index) = 0;
 
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index 06f4d53d1c4..9ff95179ee4 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -375,10 +375,13 @@ void QmlEngine::handleRemoteSetupFailed(const QString &message)
 
 void QmlEngine::shutdownInferior()
 {
+    d->m_adapter.activeDebuggerClient()->shutdownInferior();
+
     if (isSlaveEngine()) {
         resetLocation();
     }
     stopApplicationLauncher();
+
     notifyInferiorShutdownOk();
 }
 
@@ -417,7 +420,7 @@ void QmlEngine::interruptInferior()
 {
     logMessage(LogSend, "INTERRUPT");
     d->m_adapter.activeDebuggerClient()->interruptInferior();
-
+    notifyInferiorStopOk();
 }
 
 void QmlEngine::executeStep()
@@ -724,8 +727,6 @@ void QmlEngine::inferiorSpontaneousStop()
 {
     if (state() == InferiorRunOk)
         notifyInferiorSpontaneousStop();
-    else
-        notifyInferiorStopOk();
 }
 
 void QmlEngine::disconnected()
diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
index 0e1d9a41234..9c99a4fef33 100644
--- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
+++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
@@ -192,6 +192,18 @@ void QmlV8DebuggerClient::interruptInferior()
 
 }
 
+void QmlV8DebuggerClient::shutdownInferior()
+{
+    QByteArray request;
+
+    JsonInputStream(request) << '{' << INITIALPARAMS ;
+    JsonInputStream(request) << ',' << "command" << ':' << "disconnect";
+
+    JsonInputStream(request) << '}';
+
+    sendMessage(packMessage(request));
+}
+
 void QmlV8DebuggerClient::activateFrame(int index)
 {
     setLocals(index);
diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.h b/src/plugins/debugger/qml/qmlv8debuggerclient.h
index f446bb65b0b..decb635b5fd 100644
--- a/src/plugins/debugger/qml/qmlv8debuggerclient.h
+++ b/src/plugins/debugger/qml/qmlv8debuggerclient.h
@@ -59,6 +59,7 @@ public:
 
     void continueInferior();
     void interruptInferior();
+    void shutdownInferior();
 
     void activateFrame(int index);
 
diff --git a/src/plugins/debugger/qml/qscriptdebuggerclient.cpp b/src/plugins/debugger/qml/qscriptdebuggerclient.cpp
index bbeed2c99c6..6246e2ce891 100644
--- a/src/plugins/debugger/qml/qscriptdebuggerclient.cpp
+++ b/src/plugins/debugger/qml/qscriptdebuggerclient.cpp
@@ -192,6 +192,11 @@ void QScriptDebuggerClient::interruptInferior()
     sendMessage(reply);
 }
 
+void QScriptDebuggerClient::shutdownInferior()
+{
+
+}
+
 void QScriptDebuggerClient::activateFrame(int index)
 {
     QByteArray reply;
diff --git a/src/plugins/debugger/qml/qscriptdebuggerclient.h b/src/plugins/debugger/qml/qscriptdebuggerclient.h
index 9cc5c40cef1..9ebb93d4b7a 100644
--- a/src/plugins/debugger/qml/qscriptdebuggerclient.h
+++ b/src/plugins/debugger/qml/qscriptdebuggerclient.h
@@ -58,6 +58,7 @@ public:
 
     void continueInferior();
     void interruptInferior();
+    void shutdownInferior();
 
     void activateFrame(int index);
 
-- 
GitLab