Fix bug where undock button would be show incorrectly in floating dock

widgets when toggling overlay

Also centralized and simplified the logic for the title bar button
visibility
This commit is contained in:
Syarif Fakhri
2022-09-08 16:08:20 +08:00
parent af549d8ca9
commit c1df05b55d
3 changed files with 45 additions and 10 deletions

View File

@@ -428,15 +428,11 @@ void DockContainerWidgetPrivate::onVisibleDockAreaCountChanged()
if (TopLevelDockArea)
{
this->TopLevelDockArea = TopLevelDockArea;
TopLevelDockArea->titleBarButton(TitleBarButtonUndock)->setVisible(false || !_this->isFloating());
TopLevelDockArea->titleBarButton(TitleBarButtonClose)->setVisible(false || !_this->isFloating());
TopLevelDockArea->titleBarButton(TitleBarButtonAutoHide)->setVisible(false || !_this->isFloating());
TopLevelDockArea->updateTitleBarButtonVisibility(true);
}
else if (this->TopLevelDockArea)
{
this->TopLevelDockArea->titleBarButton(TitleBarButtonUndock)->setVisible(true);
this->TopLevelDockArea->titleBarButton(TitleBarButtonClose)->setVisible(true);
this->TopLevelDockArea->titleBarButton(TitleBarButtonAutoHide)->setVisible(true);
this->TopLevelDockArea->updateTitleBarButtonVisibility(false);
this->TopLevelDockArea = nullptr;
}
}
@@ -833,7 +829,6 @@ void DockContainerWidgetPrivate::addDockAreasToList(const QList<CDockAreaWidget*
// likely hidden. We need to ensure, that it is visible
for (auto DockArea : NewDockAreas)
{
DockArea->titleBarButton(TitleBarButtonUndock)->setVisible(true);
DockArea->titleBarButton(TitleBarButtonClose)->setVisible(true);
DockArea->titleBarButton(TitleBarButtonAutoHide)->setVisible(true);
}