@@ -134,6 +134,18 @@ struct DockWidgetTabPrivate
134
134
}
135
135
}
136
136
137
+ /* *
138
+ * Update the close button visibility from current feature/config
139
+ */
140
+ void updateCloseButtonVisibility (bool active)
141
+ {
142
+ bool DockWidgetClosable = DockWidget->features ().testFlag (CDockWidget::DockWidgetClosable);
143
+ bool ActiveTabHasCloseButton = testConfigFlag (CDockManager::ActiveTabHasCloseButton);
144
+ bool AllTabsHaveCloseButton = testConfigFlag (CDockManager::AllTabsHaveCloseButton);
145
+ bool TabHasCloseButton = (ActiveTabHasCloseButton && active) | AllTabsHaveCloseButton;
146
+ CloseButton->setVisible (DockWidgetClosable && TabHasCloseButton);
147
+ }
148
+
137
149
template <typename T>
138
150
IFloatingWidget* createFloatingWidget (T* Widget, bool OpaqueUndocking)
139
151
{
@@ -461,11 +473,7 @@ bool CDockWidgetTab::isActiveTab() const
461
473
// ============================================================================
462
474
void CDockWidgetTab::setActiveTab (bool active)
463
475
{
464
- bool DockWidgetClosable = d->DockWidget ->features ().testFlag (CDockWidget::DockWidgetClosable);
465
- bool ActiveTabHasCloseButton = d->testConfigFlag (CDockManager::ActiveTabHasCloseButton);
466
- bool AllTabsHaveCloseButton = d->testConfigFlag (CDockManager::AllTabsHaveCloseButton);
467
- bool TabHasCloseButton = (ActiveTabHasCloseButton && active) | AllTabsHaveCloseButton;
468
- d->CloseButton ->setVisible (DockWidgetClosable && TabHasCloseButton);
476
+ d->updateCloseButtonVisibility (active);
469
477
470
478
// Focus related stuff
471
479
if (CDockManager::testConfigFlag (CDockManager::FocusHighlighting) && !d->DockWidget ->dockManager ()->isRestoringState ())
@@ -653,6 +661,7 @@ void CDockWidgetTab::onDockWidgetFeaturesChanged()
653
661
SizePolicy.setRetainSizeWhenHidden (Features.testFlag (CDockWidget::DockWidgetClosable)
654
662
&& d->testConfigFlag (CDockManager::RetainTabSizeWhenCloseButtonHidden));
655
663
d->CloseButton ->setSizePolicy (SizePolicy);
664
+ d->updateCloseButtonVisibility (isActiveTab ());
656
665
}
657
666
658
667
0 commit comments