summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/debugger/debuggermainwindow.cpp16
-rw-r--r--src/plugins/debugger/debuggermainwindow.h2
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp11
3 files changed, 20 insertions, 9 deletions
diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp
index 7821532832..77b7f51470 100644
--- a/src/plugins/debugger/debuggermainwindow.cpp
+++ b/src/plugins/debugger/debuggermainwindow.cpp
@@ -126,6 +126,22 @@ QDockWidget *DebuggerMainWindow::dockWidget(const QByteArray &dockId) const
return m_dockForDockId.value(dockId);
}
+void DebuggerMainWindow::onModeChanged(Core::Id mode)
+{
+ if (mode == Debugger::Constants::MODE_DEBUG) {
+ setDockActionsVisible(true);
+ restorePerspective({});
+ } else {
+ setDockActionsVisible(false);
+
+ // Hide dock widgets manually in case they are floating.
+ foreach (QDockWidget *dockWidget, dockWidgets()) {
+ if (dockWidget->isFloating())
+ dockWidget->hide();
+ }
+ }
+}
+
void DebuggerMainWindow::resetCurrentPerspective()
{
loadPerspectiveHelper(m_currentPerspectiveId, false);
diff --git a/src/plugins/debugger/debuggermainwindow.h b/src/plugins/debugger/debuggermainwindow.h
index d7dd6460be..0e8a9f5c81 100644
--- a/src/plugins/debugger/debuggermainwindow.h
+++ b/src/plugins/debugger/debuggermainwindow.h
@@ -129,6 +129,8 @@ public:
QByteArray currentPerspective() const { return m_currentPerspectiveId; }
QStackedWidget *centralWidgetStack() const { return m_centralWidgetStack; }
+ void onModeChanged(Core::Id mode);
+
private:
QDockWidget *registerDockWidget(const QByteArray &dockId, QWidget *widget);
void loadPerspectiveHelper(const QByteArray &perspectiveId, bool fromStoredSettings = true);
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index b08c29a5e7..0d4afff535 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -1770,6 +1770,8 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments,
connect(ModeManager::instance(), &ModeManager::currentModeChanged,
this, &DebuggerPluginPrivate::onModeChanged);
+ connect(ModeManager::instance(), &ModeManager::currentModeChanged,
+ m_mainWindow.data(), &DebuggerMainWindow::onModeChanged);
connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::settingsChanged,
this, &DebuggerPluginPrivate::updateDebugWithoutDeployMenu);
@@ -3386,8 +3388,6 @@ void DebuggerPluginPrivate::onModeChanged(Id mode)
editor->widget()->setFocus();
m_toolTipManager.debugModeEntered();
- m_mainWindow->setDockActionsVisible(true);
- m_mainWindow->restorePerspective({});
// static bool firstTime = true;
// if (firstTime) {
@@ -3405,13 +3405,6 @@ void DebuggerPluginPrivate::onModeChanged(Id mode)
updateActiveLanguages();
} else {
m_toolTipManager.leavingDebugMode();
- m_mainWindow->setDockActionsVisible(false);
-
- // Hide dock widgets manually in case they are floating.
- foreach (QDockWidget *dockWidget, m_mainWindow->dockWidgets()) {
- if (dockWidget->isFloating())
- dockWidget->hide();
- }
}
}