@@ -146,6 +146,19 @@ struct DockWidgetTabPrivate
146
146
CloseButton->setVisible (DockWidgetClosable && TabHasCloseButton);
147
147
}
148
148
149
+ /* *
150
+ * Update the size policy of the close button depending on the
151
+ * RetainTabSizeWhenCloseButtonHidden feature
152
+ */
153
+ void updateCloseButtonSizePolicy ()
154
+ {
155
+ auto Features = DockWidget->features ();
156
+ auto SizePolicy = CloseButton->sizePolicy ();
157
+ SizePolicy.setRetainSizeWhenHidden (Features.testFlag (CDockWidget::DockWidgetClosable)
158
+ && testConfigFlag (CDockManager::RetainTabSizeWhenCloseButtonHidden));
159
+ CloseButton->setSizePolicy (SizePolicy);
160
+ }
161
+
149
162
template <typename T>
150
163
IFloatingWidget* createFloatingWidget (T* Widget, bool OpaqueUndocking)
151
164
{
@@ -200,7 +213,7 @@ void DockWidgetTabPrivate::createLayout()
200
213
CloseButton->setObjectName (" tabCloseButton" );
201
214
internal::setButtonIcon (CloseButton, QStyle::SP_TitleBarCloseButton, TabCloseIcon);
202
215
CloseButton->setSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed);
203
- _this-> onDockWidgetFeaturesChanged ();
216
+ updateCloseButtonSizePolicy ();
204
217
internal::setToolTip (CloseButton, QObject::tr (" Close Tab" ));
205
218
_this->connect (CloseButton, SIGNAL (clicked ()), SIGNAL (closeRequested ()));
206
219
@@ -473,7 +486,7 @@ bool CDockWidgetTab::isActiveTab() const
473
486
// ============================================================================
474
487
void CDockWidgetTab::setActiveTab (bool active)
475
488
{
476
- d->updateCloseButtonVisibility (active);
489
+ d->updateCloseButtonVisibility (active);
477
490
478
491
// Focus related stuff
479
492
if (CDockManager::testConfigFlag (CDockManager::FocusHighlighting) && !d->DockWidget ->dockManager ()->isRestoringState ())
@@ -656,12 +669,8 @@ bool CDockWidgetTab::event(QEvent *e)
656
669
// ============================================================================
657
670
void CDockWidgetTab::onDockWidgetFeaturesChanged ()
658
671
{
659
- auto Features = d->DockWidget ->features ();
660
- auto SizePolicy = d->CloseButton ->sizePolicy ();
661
- SizePolicy.setRetainSizeWhenHidden (Features.testFlag (CDockWidget::DockWidgetClosable)
662
- && d->testConfigFlag (CDockManager::RetainTabSizeWhenCloseButtonHidden));
663
- d->CloseButton ->setSizePolicy (SizePolicy);
664
- d->updateCloseButtonVisibility (isActiveTab ());
672
+ d->updateCloseButtonSizePolicy ();
673
+ d->updateCloseButtonVisibility (isActiveTab ());
665
674
}
666
675
667
676
0 commit comments