From faf69592781e2cf352c2717bc8ce3081b3c62ea3 Mon Sep 17 00:00:00 2001 From: karliss Date: Fri, 20 Dec 2019 08:19:44 +0200 Subject: [PATCH] Workaround for new debug widgets being opened in normal mode. (#1950) --- src/core/MainWindow.cpp | 15 ++++++++++++++- src/core/MainWindow.h | 6 ++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/core/MainWindow.cpp b/src/core/MainWindow.cpp index d7850767..49ba0681 100644 --- a/src/core/MainWindow.cpp +++ b/src/core/MainWindow.cpp @@ -677,7 +677,8 @@ void MainWindow::readSettingsOrDefault() // make sure all DockWidgets are part of the MainWindow // also show them, so newly installed plugin widgets are shown right away for (auto dockWidget : dockWidgets) { - if (dockWidgetArea(dockWidget) == Qt::DockWidgetArea::NoDockWidgetArea) { + if (dockWidgetArea(dockWidget) == Qt::DockWidgetArea::NoDockWidgetArea && + !isDebugWidget(dockWidget)) { addDockWidget(Qt::DockWidgetArea::TopDockWidgetArea, dockWidget); dockWidget->show(); } @@ -865,6 +866,18 @@ void MainWindow::updateDockActionsChecked() } } +bool MainWindow::isDebugWidget(QDockWidget *dock) const +{ + return dock == stackDock || + dock == registersDock || + dock == backtraceDock || + dock == threadsDock || + dock == memoryMapDock || + dock == breakpointDock || + dock == processesDock || + dock == registerRefsDock; +} + MemoryWidgetType MainWindow::getMemoryWidgetTypeToRestore() { if (lastSyncMemoryWidget) { diff --git a/src/core/MainWindow.h b/src/core/MainWindow.h index 5c9b9841..1396ccaf 100644 --- a/src/core/MainWindow.h +++ b/src/core/MainWindow.h @@ -288,6 +288,12 @@ private: void updateDockActionsChecked(); void setOverviewData(); bool isOverviewActive(); + /** + * @brief Check if a widget is one of debug specific dock widgets. + * @param dock + * @return true for debug specific widgets, false for all other including common dock widgets. + */ + bool isDebugWidget(QDockWidget *dock) const; MemoryWidgetType getMemoryWidgetTypeToRestore();