summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@theqtcompany.com>2016-03-17 10:11:38 +0100
committerhjk <hjk@theqtcompany.com>2016-03-17 12:48:59 +0000
commitb93f9af31ace0f87ac6e67c68daca65eabaaa3b7 (patch)
treec8c2c6ab5a877d9f20005570e14325b0b12d9260
parent3bf19030aba43e4c8326d921e2bf0b4506ea9bce (diff)
downloadqt-creator-b93f9af31ace0f87ac6e67c68daca65eabaaa3b7.tar.gz
Debugger: Fix restoring of previous mode
We have many code paths now that try to make sure that we really end up with debug mode when debugging, leading to multiple calls of activateDebugMode when starting the debugger. Separate ensuring debug mode from saving the previous mode to avoid that debug mode is always the previous mode. Change-Id: Ie9687e2de816b6ae55945b6108a5d4f760962f89 Reviewed-by: hjk <hjk@theqtcompany.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
-rw-r--r--src/plugins/debugger/debuggercore.h1
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp6
-rw-r--r--src/plugins/debugger/debuggerruncontrol.cpp1
3 files changed, 7 insertions, 1 deletions
diff --git a/src/plugins/debugger/debuggercore.h b/src/plugins/debugger/debuggercore.h
index 6441c5df2c..80e1f9b88a 100644
--- a/src/plugins/debugger/debuggercore.h
+++ b/src/plugins/debugger/debuggercore.h
@@ -76,6 +76,7 @@ void runControlFinished(DebuggerEngine *engine);
void displayDebugger(DebuggerEngine *engine, bool updateEngine);
void synchronizeBreakpoints();
+void saveModeToRestore();
QWidget *mainWindow();
bool isRegistersWindowVisible();
bool isModulesWindowVisible();
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 7fc925e616..531b2c0991 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -2691,7 +2691,6 @@ void DebuggerPluginPrivate::activateDebugMode()
{
m_reverseDirectionAction->setChecked(false);
m_reverseDirectionAction->setEnabled(false);
- m_previousMode = ModeManager::currentMode()->id();
ModeManager::activateMode(MODE_DEBUG);
}
@@ -3315,6 +3314,11 @@ void DebuggerPluginPrivate::onModeChanged(IMode *mode)
}
}
+void saveModeToRestore()
+{
+ dd->m_previousMode = ModeManager::currentMode()->id();
+}
+
} // namespace Internal
bool ActionDescription::isRunnable(QString *reason) const
diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp
index f676fbfe9b..defcaa1c7f 100644
--- a/src/plugins/debugger/debuggerruncontrol.cpp
+++ b/src/plugins/debugger/debuggerruncontrol.cpp
@@ -141,6 +141,7 @@ QString DebuggerRunControl::displayName() const
void DebuggerRunControl::start()
{
+ Debugger::Internal::saveModeToRestore();
Debugger::selectPerspective(Debugger::Constants::CppPerspectiveId);
TaskHub::clearTasks(Debugger::Constants::TASK_CATEGORY_DEBUGGER_DEBUGINFO);
TaskHub::clearTasks(Debugger::Constants::TASK_CATEGORY_DEBUGGER_RUNTIME);