summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/debugger/debuggermanager.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp
index 34e0348e2c..27524c49fe 100644
--- a/src/plugins/debugger/debuggermanager.cpp
+++ b/src/plugins/debugger/debuggermanager.cpp
@@ -1027,11 +1027,10 @@ void DebuggerManager::cleanupViews()
void DebuggerManager::exitDebugger()
{
- STATE_DEBUG("");
- if (d->m_engine)
+ // The engine will finally call setState(DebuggerNotReady) which
+ // in turn will handle the cleanup.
+ if (d->m_engine && state() != DebuggerNotReady)
d->m_engine->exitDebugger();
- cleanupViews();
- setState(DebuggerNotReady);
}
DebuggerStartParametersPtr DebuggerManager::startParameters() const
@@ -1139,19 +1138,13 @@ void DebuggerManager::executeDebuggerCommand(const QString &command)
void DebuggerManager::sessionLoaded()
{
- cleanupViews();
- setState(DebuggerNotReady);
- setBusyCursor(false);
loadSessionData();
}
void DebuggerManager::aboutToUnloadSession()
{
- cleanupViews();
if (d->m_engine)
d->m_engine->shutdown();
- setState(DebuggerNotReady);
- setBusyCursor(false);
}
void DebuggerManager::aboutToSaveSession()
@@ -1626,6 +1619,7 @@ void DebuggerManager::setState(DebuggerState state)
if (d->m_state == DebuggerNotReady) {
setBusyCursor(false);
+ cleanupViews();
emit debuggingFinished();
}