Move logic for enabling auto hide into the public toggle method

This commit is contained in:
Syarif Fakhri 2022-09-06 13:49:11 +08:00
parent 3e9dc7f4d6
commit bfab7e495a
3 changed files with 15 additions and 11 deletions

View File

@ -457,12 +457,11 @@ void CDockAreaTitleBar::onCurrentTabChanged(int Index)
updateDockWidgetActionsButtons();
}
//============================================================================
void CDockAreaTitleBar::onAutoHideButtonClicked(bool Checked)
{
if (Checked != d->DockArea->isOverlayed())
{
d->DockArea->toggleAutoHideArea();
}
d->DockArea->toggleAutoHideArea(Checked);
}

View File

@ -1009,11 +1009,16 @@ void CDockAreaWidget::closeArea()
}
//============================================================================
void CDockAreaWidget::toggleAutoHideArea()
void CDockAreaWidget::toggleAutoHideArea(bool Enable)
{
const auto area = dockContainer()->getDockAreaPosition(this);
for (const auto DockWidget : openedDockWidgets())
{
if (Enable == isOverlayed())
{
continue;
}
onAutoHideToggleRequested(DockWidget, !isOverlayed(), area);
}
}

View File

@ -153,6 +153,11 @@ protected:
protected Q_SLOTS:
void toggleView(bool Open);
/**
* Auto hides the dock area and all dock widgets in this area
*/
void onAutoHideToggleRequested(CDockWidget* DockWidget, bool Enable, SideTabBarArea area);
public:
using Super = QFrame;
@ -357,12 +362,7 @@ public Q_SLOTS:
/**
* Toggles the Auto hides behaviour of the dock area and all dock widgets in this area
*/
void toggleAutoHideArea();
/**
* Auto hides the dock area and all dock widgets in this area
*/
void onAutoHideToggleRequested(CDockWidget* DockWidget, bool Enable, SideTabBarArea area);
void toggleAutoHideArea(bool Enable);
/**
* This function closes all other areas except of this area