Compare commits
2 Commits
auto_hide_
...
4.0.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2cd451c53c | ||
|
|
302ee59d67 |
@@ -187,14 +187,7 @@ AutoHideDockContainerPrivate::AutoHideDockContainerPrivate(
|
||||
//============================================================================
|
||||
CDockContainerWidget* CAutoHideDockContainer::dockContainer() const
|
||||
{
|
||||
if (d->DockArea)
|
||||
{
|
||||
return d->DockArea->dockContainer();
|
||||
}
|
||||
else
|
||||
{
|
||||
return internal::findParent<CDockContainerWidget*>(this);
|
||||
}
|
||||
return internal::findParent<CDockContainerWidget*>(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -303,8 +296,15 @@ CAutoHideDockContainer::~CAutoHideDockContainer()
|
||||
//============================================================================
|
||||
CAutoHideSideBar* CAutoHideDockContainer::sideBar() const
|
||||
{
|
||||
auto DockContainer = dockContainer();
|
||||
return DockContainer ? DockContainer->sideTabBar(d->SideTabBarArea) : nullptr;
|
||||
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())
|
||||
{
|
||||
if (autoHideWidget->dockWidget() == _this)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
autoHideWidget->dockWidget()->toggleView(false);
|
||||
}
|
||||
if (_this->dockManager()->isRestoringState())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!DockContainer->openedDockWidgets().isEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto autoHideWidget : DockContainer->autoHideWidgets())
|
||||
{
|
||||
auto DockWidget = autoHideWidget->dockWidget();
|
||||
if (DockWidget == _this)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
DockWidget->toggleView(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user