Fix side tab widget ordering

Now is fixed based on the side tab widget
This commit is contained in:
Syarif Fakhri
2022-09-14 17:39:57 +08:00
parent 06bcf2cd48
commit 4d3328e468
5 changed files with 49 additions and 7 deletions

View File

@@ -899,14 +899,19 @@ void DockContainerWidgetPrivate::saveChildNodesState(QXmlStreamWriter& s, QWidge
void DockContainerWidgetPrivate::saveOverlayWidgetsState(QXmlStreamWriter& Stream)
{
for (const auto dockAreaWidget : _this->findChildren<CDockAreaWidget*>())
for (const auto sideTabBar : SideTabBarWidgets.values())
{
if (!dockAreaWidget->isOverlayed())
{
continue;
}
for (auto itemIndex = 0; itemIndex < sideTabBar->tabCount(); itemIndex++)
{
const auto sideTab = sideTabBar->tabAt(itemIndex);
if (sideTab == nullptr)
{
continue;
}
dockAreaWidget->saveState(Stream);
const auto dockArea = sideTab->dockWidget()->dockAreaWidget();
dockArea->saveState(Stream);
}
}
}
@@ -1096,7 +1101,7 @@ bool DockContainerWidgetPrivate::restoreOverlayDockArea(CDockingStateReader& s,
DockWidget->setClosedState(Closed);
DockWidget->setProperty(internal::ClosedProperty, Closed);
DockWidget->setProperty(internal::DirtyProperty, false);
_this->sideTabBar(area)->insertSideTab(0, DockWidget->sideTabWidget());
_this->sideTabBar(area)->insertSideTab(-1, DockWidget->sideTabWidget());
DockArea->overlayDockContainer()->addDockWidget(DockWidget);
DockWidget->sideTabWidget()->updateStyle(); // Needed as the side tab widget get it's left/right property from the overlay dock container which was just added
DockArea->overlayDockContainer()->toggleView(!Closed);