diff options
| -rw-r--r-- | src/plugins/Ui/qsui/dockwidgetlist.cpp | 27 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/dockwidgetlist.h | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/mainwindow.cpp | 2 |
3 files changed, 31 insertions, 0 deletions
diff --git a/src/plugins/Ui/qsui/dockwidgetlist.cpp b/src/plugins/Ui/qsui/dockwidgetlist.cpp index 5c0176ef2..f1a1a9cea 100644 --- a/src/plugins/Ui/qsui/dockwidgetlist.cpp +++ b/src/plugins/Ui/qsui/dockwidgetlist.cpp @@ -33,6 +33,32 @@ void DockWidgetList::registerMenu(QMenu *menu, QAction *before) menu->insertAction(m_beforeAction, dock->toggleViewAction()); } +void DockWidgetList::setTitleBarsVisible(bool visible) +{ + m_titleBarsVisible = visible; + + if(visible) + { + for(QDockWidget *w : qAsConst(m_dockWidgetList)) + { + QWidget *widget = w->titleBarWidget(); + if(widget) + { + w->setTitleBarWidget(nullptr); + delete widget; + } + } + } + else + { + for(QDockWidget *w : qAsConst(m_dockWidgetList)) + { + if(!w->titleBarWidget()) + w->setTitleBarWidget(new QWidget()); + } + } +} + void DockWidgetList::onViewActionToggled(bool checked) { if(!sender() || !sender()->parent()) @@ -75,6 +101,7 @@ void DockWidgetList::onWidgetAdded(const QString &id) m_mw->addDockWidget(desc.area, dockWidget); connect(dockWidget->toggleViewAction(), SIGNAL(toggled(bool)), SLOT(onViewActionToggled(bool))); m_dockWidgetList << dockWidget; + setTitleBarsVisible(m_titleBarsVisible); QWidget *w = General::createWidget(id, m_mw); dockWidget->setWidget(w); diff --git a/src/plugins/Ui/qsui/dockwidgetlist.h b/src/plugins/Ui/qsui/dockwidgetlist.h index a03e29ff2..366e49b3c 100644 --- a/src/plugins/Ui/qsui/dockwidgetlist.h +++ b/src/plugins/Ui/qsui/dockwidgetlist.h @@ -15,6 +15,7 @@ public: explicit DockWidgetList(QMainWindow *parent); void registerMenu(QMenu *menu, QAction *before); + void setTitleBarsVisible(bool visible); private slots: void onViewActionToggled(bool visible); @@ -27,6 +28,7 @@ private: QList<QDockWidget *> m_dockWidgetList; QAction *m_beforeAction = nullptr; QMenu *m_menu; + bool m_titleBarsVisible = true; }; #endif // DOCKWIDGETLIST_H diff --git a/src/plugins/Ui/qsui/mainwindow.cpp b/src/plugins/Ui/qsui/mainwindow.cpp index 8b0733272..6512f230c 100644 --- a/src/plugins/Ui/qsui/mainwindow.cpp +++ b/src/plugins/Ui/qsui/mainwindow.cpp @@ -850,6 +850,8 @@ void MainWindow::showMetaData() void MainWindow::setTitleBarsVisible(bool visible) { + m_dockWidgetList->setTitleBarsVisible(visible); + QList<QDockWidget *> widgetList = { m_ui.analyzerDockWidget, m_ui.fileSystemDockWidget, |
