aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/fancymainwindow.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2016-09-07 18:14:04 +0200
committerUlf Hermann <ulf.hermann@qt.io>2016-10-04 08:29:05 +0000
commitb604b8fc2b6c2dc6a1dc1e1a8b9c616aeb33464b (patch)
treec7f5631da510f2aa8246e2ffba7f3a84af3e8d36 /src/libs/utils/fancymainwindow.cpp
parent9cde684eea1242784fb5471f575c7385d5ff4661 (diff)
FancyMainWindow: Add an option to hide the central widget
This way the debugger views can take up the whole window, which is useful for the QML and perf profilers. Change-Id: Ia4d236e8738a666d2316c05edaf4cf48ac46ffdb Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/libs/utils/fancymainwindow.cpp')
-rw-r--r--src/libs/utils/fancymainwindow.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp
index 697ff4fb33..79e95e8be9 100644
--- a/src/libs/utils/fancymainwindow.cpp
+++ b/src/libs/utils/fancymainwindow.cpp
@@ -43,6 +43,7 @@
#include <QToolButton>
static const char AutoHideTitleBarsKey[] = "AutoHideTitleBars";
+static const char ShowCentralWidgetKey[] = "ShowCentralWidget";
static const char StateKey[] = "State";
static const int settingsVersion = 2;
@@ -59,6 +60,7 @@ struct FancyMainWindowPrivate
FancyMainWindow *q;
bool m_handleDockVisibilityChanges;
+ QAction m_showCentralWidget;
QAction m_menuSeparator1;
QAction m_menuSeparator2;
QAction m_resetLayoutAction;
@@ -343,11 +345,15 @@ void DockWidget::handleToplevelChanged(bool floating)
FancyMainWindowPrivate::FancyMainWindowPrivate(FancyMainWindow *parent) :
q(parent),
m_handleDockVisibilityChanges(true),
+ m_showCentralWidget(FancyMainWindow::tr("Central Widget"), 0),
m_menuSeparator1(0),
m_menuSeparator2(0),
m_resetLayoutAction(FancyMainWindow::tr("Reset to Default Layout"), 0),
m_autoHideTitleBars(FancyMainWindow::tr("Automatically Hide View Title Bars"), 0)
{
+ m_showCentralWidget.setCheckable(true);
+ m_showCentralWidget.setChecked(true);
+
m_menuSeparator1.setSeparator(true);
m_menuSeparator2.setSeparator(true);
@@ -360,6 +366,10 @@ FancyMainWindowPrivate::FancyMainWindowPrivate(FancyMainWindow *parent) :
titleBar->updateChildren();
}
});
+
+ QObject::connect(&m_showCentralWidget, &QAction::toggled, q, [this](bool visible) {
+ q->centralWidget()->setVisible(visible);
+ });
}
FancyMainWindow::FancyMainWindow(QWidget *parent) :
@@ -476,6 +486,7 @@ QHash<QString, QVariant> FancyMainWindow::saveSettings() const
settings.insert(QLatin1String(StateKey), saveState(settingsVersion));
settings.insert(QLatin1String(AutoHideTitleBarsKey),
d->m_autoHideTitleBars.isChecked());
+ settings.insert(ShowCentralWidgetKey, d->m_showCentralWidget.isChecked());
foreach (QDockWidget *dockWidget, dockWidgets()) {
settings.insert(dockWidget->objectName(),
dockWidget->property(dockWidgetActiveState));
@@ -490,6 +501,7 @@ void FancyMainWindow::restoreSettings(const QHash<QString, QVariant> &settings)
restoreState(ba, settingsVersion);
bool on = settings.value(QLatin1String(AutoHideTitleBarsKey), true).toBool();
d->m_autoHideTitleBars.setChecked(on);
+ d->m_showCentralWidget.setChecked(settings.value(ShowCentralWidgetKey, true).toBool());
foreach (QDockWidget *widget, dockWidgets()) {
widget->setProperty(dockWidgetActiveState,
settings.value(widget->objectName(), false));
@@ -524,6 +536,7 @@ void FancyMainWindow::addDockActionsToMenu(QMenu *menu)
});
foreach (QAction *action, actions)
menu->addAction(action);
+ menu->addAction(&d->m_showCentralWidget);
menu->addAction(&d->m_menuSeparator1);
menu->addAction(&d->m_autoHideTitleBars);
menu->addAction(&d->m_menuSeparator2);
@@ -550,10 +563,16 @@ QAction *FancyMainWindow::resetLayoutAction() const
return &d->m_resetLayoutAction;
}
+QAction *FancyMainWindow::showCentralWidgetAction() const
+{
+ return &d->m_showCentralWidget;
+}
+
void FancyMainWindow::setDockActionsVisible(bool v)
{
foreach (const QDockWidget *dockWidget, dockWidgets())
dockWidget->toggleViewAction()->setVisible(v);
+ d->m_showCentralWidget.setVisible(v);
d->m_autoHideTitleBars.setVisible(v);
d->m_menuSeparator1.setVisible(v);
d->m_menuSeparator2.setVisible(v);