diff options
author | Eike Ziller <eike.ziller@theqtcompany.com> | 2016-03-17 10:11:38 +0100 |
---|---|---|
committer | hjk <hjk@theqtcompany.com> | 2016-03-17 12:48:59 +0000 |
commit | b93f9af31ace0f87ac6e67c68daca65eabaaa3b7 (patch) | |
tree | c8c2c6ab5a877d9f20005570e14325b0b12d9260 | |
parent | 3bf19030aba43e4c8326d921e2bf0b4506ea9bce (diff) | |
download | qt-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.h | 1 | ||||
-rw-r--r-- | src/plugins/debugger/debuggerplugin.cpp | 6 | ||||
-rw-r--r-- | src/plugins/debugger/debuggerruncontrol.cpp | 1 |
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); |