mirror of
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
synced 2025-04-01 02:42:39 +08:00
Merge branch 'githubuser0xFFFF:master' into master
This commit is contained in:
commit
3ab6d7fc0f
2
.github/workflows/linux-builds.yml
vendored
2
.github/workflows/linux-builds.yml
vendored
@ -6,7 +6,7 @@ jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, ubuntu-20.04, ubuntu-18.04]
|
||||
os: [ubuntu-20.04, ubuntu-18.04]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
|
@ -186,16 +186,9 @@ AutoHideDockContainerPrivate::AutoHideDockContainerPrivate(
|
||||
|
||||
//============================================================================
|
||||
CDockContainerWidget* CAutoHideDockContainer::dockContainer() const
|
||||
{
|
||||
if (d->DockArea)
|
||||
{
|
||||
return d->DockArea->dockContainer();
|
||||
}
|
||||
else
|
||||
{
|
||||
return internal::findParent<CDockContainerWidget*>(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//============================================================================
|
||||
@ -302,10 +295,17 @@ CAutoHideDockContainer::~CAutoHideDockContainer()
|
||||
|
||||
//============================================================================
|
||||
CAutoHideSideBar* CAutoHideDockContainer::sideBar() const
|
||||
{
|
||||
if (d->SideTab)
|
||||
{
|
||||
return d->SideTab->sideBar();
|
||||
}
|
||||
else
|
||||
{
|
||||
auto DockContainer = dockContainer();
|
||||
return DockContainer ? DockContainer->sideTabBar(d->SideTabBarArea) : nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//============================================================================
|
||||
|
@ -378,11 +378,19 @@ int CAutoHideSideBar::spacing() const
|
||||
return d->TabsLayout->spacing();
|
||||
}
|
||||
|
||||
|
||||
//===========================================================================
|
||||
void CAutoHideSideBar::setSpacing(int Spacing)
|
||||
{
|
||||
d->TabsLayout->setSpacing(Spacing);
|
||||
}
|
||||
|
||||
|
||||
//===========================================================================
|
||||
CDockContainerWidget* CAutoHideSideBar::dockContainer() const
|
||||
{
|
||||
return d->ContainerWidget;
|
||||
}
|
||||
|
||||
} // namespace ads
|
||||
|
||||
|
@ -163,6 +163,11 @@ public:
|
||||
* Setter for spacing property - sets the spacing
|
||||
*/
|
||||
void setSpacing(int Spacing);
|
||||
|
||||
/**
|
||||
* Returns the dock container that hosts this sideBar()
|
||||
*/
|
||||
CDockContainerWidget* dockContainer() const;
|
||||
};
|
||||
} // namespace ads
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -248,17 +248,31 @@ void DockWidgetPrivate::updateParentDockArea()
|
||||
//============================================================================
|
||||
void DockWidgetPrivate::closeAutoHideDockWidgetsIfNeeded()
|
||||
{
|
||||
if (_this->dockContainer() && _this->dockContainer()->openedDockWidgets().isEmpty() && !_this->dockManager()->isRestoringState())
|
||||
auto DockContainer = _this->dockContainer();
|
||||
if (!DockContainer)
|
||||
{
|
||||
for (auto autoHideWidget : _this->dockContainer()->autoHideWidgets())
|
||||
return;
|
||||
}
|
||||
|
||||
if (_this->dockManager()->isRestoringState())
|
||||
{
|
||||
if (autoHideWidget->dockWidget() == _this)
|
||||
return;
|
||||
}
|
||||
|
||||
if (!DockContainer->openedDockWidgets().isEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto autoHideWidget : DockContainer->autoHideWidgets())
|
||||
{
|
||||
auto DockWidget = autoHideWidget->dockWidget();
|
||||
if (DockWidget == _this)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
autoHideWidget->dockWidget()->toggleView(false);
|
||||
}
|
||||
DockWidget->toggleView(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user