Utils: Allow hiding Dock close / float buttons

Change-Id: I18e17ebe4fa049699a731c00448cd615ad9c6c19
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-09-27 08:34:59 +02:00
parent fe24faa12b
commit 14e2294fb2

View File

@@ -169,6 +169,11 @@ public:
setLayout(layout); setLayout(layout);
setProperty("managed_titlebar", 1); setProperty("managed_titlebar", 1);
connect(parent, &QDockWidget::featuresChanged, this, [this, parent] {
m_closeButton->setVisible(parent->features().testFlag(QDockWidget::DockWidgetClosable));
m_floatButton->setVisible(parent->features().testFlag(QDockWidget::DockWidgetFloatable));
});
} }
void enterEvent(QEnterEvent *event) override void enterEvent(QEnterEvent *event) override
@@ -187,8 +192,11 @@ public:
{ {
bool clickable = isClickable(); bool clickable = isClickable();
m_titleLabel->setVisible(clickable); m_titleLabel->setVisible(clickable);
m_floatButton->setVisible(clickable);
m_closeButton->setVisible(clickable); m_floatButton->setVisible(clickable
&& q->features().testFlag(QDockWidget::DockWidgetFloatable));
m_closeButton->setVisible(clickable
&& q->features().testFlag(QDockWidget::DockWidgetClosable));
} }
bool isClickable() const bool isClickable() const
@@ -349,6 +357,7 @@ FancyMainWindowPrivate::FancyMainWindowPrivate(FancyMainWindow *parent) :
}); });
QObject::connect(&m_showCentralWidget, &QAction::toggled, q, [this](bool visible) { QObject::connect(&m_showCentralWidget, &QAction::toggled, q, [this](bool visible) {
if (q->centralWidget())
q->centralWidget()->setVisible(visible); q->centralWidget()->setVisible(visible);
}); });
} }