From b93f9af31ace0f87ac6e67c68daca65eabaaa3b7 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 17 Mar 2016 10:11:38 +0100 Subject: 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 Reviewed-by: Orgad Shaneh --- src/plugins/debugger/debuggercore.h | 1 + src/plugins/debugger/debuggerplugin.cpp | 6 +++++- src/plugins/debugger/debuggerruncontrol.cpp | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) 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); -- cgit v1.2.1