From e04df1641e0b5f83a12c13ed0b4994ffe07f58ea Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 20 Oct 2020 21:16:16 +0000 Subject: qsui: fixed feauture to hide dockwidget titlebars git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9514 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Ui/qsui/dockwidgetlist.cpp | 27 +++++++++++++++++++++++++++ src/plugins/Ui/qsui/dockwidgetlist.h | 2 ++ src/plugins/Ui/qsui/mainwindow.cpp | 2 ++ 3 files changed, 31 insertions(+) (limited to 'src/plugins/Ui/qsui') 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 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 widgetList = { m_ui.analyzerDockWidget, m_ui.fileSystemDockWidget, -- cgit v1.2.3-13-gbd6f