Skip to content

Commit 2cd451c

Browse files
Added dockContainer() function to AutoHideSideBar.cpp
1 parent 302ee59 commit 2cd451c

File tree

3 files changed

+36
-9
lines changed

3 files changed

+36
-9
lines changed

src/AutoHideSideBar.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,11 +378,19 @@ int CAutoHideSideBar::spacing() const
378378
return d->TabsLayout->spacing();
379379
}
380380

381+
381382
//===========================================================================
382383
void CAutoHideSideBar::setSpacing(int Spacing)
383384
{
384385
d->TabsLayout->setSpacing(Spacing);
385386
}
386387

388+
389+
//===========================================================================
390+
CDockContainerWidget* CAutoHideSideBar::dockContainer() const
391+
{
392+
return d->ContainerWidget;
393+
}
394+
387395
} // namespace ads
388396

src/AutoHideSideBar.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,11 @@ class ADS_EXPORT CAutoHideSideBar : public QScrollArea
163163
* Setter for spacing property - sets the spacing
164164
*/
165165
void setSpacing(int Spacing);
166+
167+
/**
168+
* Returns the dock container that hosts this sideBar()
169+
*/
170+
CDockContainerWidget* dockContainer() const;
166171
};
167172
} // namespace ads
168173
//-----------------------------------------------------------------------------

src/DockWidget.cpp

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -248,17 +248,31 @@ void DockWidgetPrivate::updateParentDockArea()
248248
//============================================================================
249249
void DockWidgetPrivate::closeAutoHideDockWidgetsIfNeeded()
250250
{
251-
if (_this->dockContainer() && _this->dockContainer()->openedDockWidgets().isEmpty() && !_this->dockManager()->isRestoringState())
251+
auto DockContainer = _this->dockContainer();
252+
if (!DockContainer)
252253
{
253-
for (auto autoHideWidget : _this->dockContainer()->autoHideWidgets())
254-
{
255-
if (autoHideWidget->dockWidget() == _this)
256-
{
257-
continue;
258-
}
254+
return;
255+
}
256+
257+
if (_this->dockManager()->isRestoringState())
258+
{
259+
return;
260+
}
261+
262+
if (!DockContainer->openedDockWidgets().isEmpty())
263+
{
264+
return;
265+
}
266+
267+
for (auto autoHideWidget : DockContainer->autoHideWidgets())
268+
{
269+
auto DockWidget = autoHideWidget->dockWidget();
270+
if (DockWidget == _this)
271+
{
272+
continue;
273+
}
259274

260-
autoHideWidget->dockWidget()->toggleView(false);
261-
}
275+
DockWidget->toggleView(false);
262276
}
263277
}
264278

0 commit comments

Comments
 (0)