From 15629b037fc6213d38d2a08219a100fa9a401080 Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Tue, 20 Jul 2010 15:16:17 +0200
Subject: [PATCH] debugger: fix message when trying to shut down with a
 finished debugger

---
 src/plugins/debugger/debuggerplugin.cpp | 28 ++++++++++++++++++-------
 1 file changed, 21 insertions(+), 7 deletions(-)

diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 8aa7e399c01..904345b0e33 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -2744,21 +2744,35 @@ bool DebuggerListener::coreAboutToClose()
     DebuggerPlugin *plugin = DebuggerPlugin::instance();
     if (!plugin)
         return true;
+
+    // FIXME: Iterate over all running debuggers.
     // Ask to terminate the session.
     bool cleanTermination = false;
     switch (plugin->state()) {
     case DebuggerNotReady:
-        return true;
-    case EngineSetupOk:     // Most importantly, terminating a running
-    case EngineSetupFailed: // debuggee can cause problems.
+    case DebuggerFinished:
     case InferiorUnrunnable:
+        return true;
+    case EngineSetupRequested:
+    case EngineSetupOk:
+    case EngineSetupFailed:
+    case InferiorSetupRequested:
     case InferiorSetupFailed:
+    case EngineRunRequested:
+    case InferiorRunRequested:
+    case InferiorRunOk:
+    case InferiorStopRequested:
     case InferiorStopOk:
+    case InferiorShutdownRequested:
+    case EngineShutdownRequested:
     case InferiorShutdownOk:
-        cleanTermination = true;
-        break;
-    default:
-        break;
+    case InferiorShutdownFailed:
+    case InferiorStopFailed:
+    case EngineRunFailed:
+    case InferiorRunFailed:
+    case EngineShutdownOk:
+    case EngineShutdownFailed:
+        return false;
     }
 
     const QString question = cleanTermination ?
-- 
GitLab