mirror of
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
synced 2024-11-15 21:25:44 +08:00
Fix side tab widget ordering
Now is fixed based on the side tab widget
This commit is contained in:
parent
06bcf2cd48
commit
4d3328e468
@ -899,14 +899,19 @@ void DockContainerWidgetPrivate::saveChildNodesState(QXmlStreamWriter& s, QWidge
|
|||||||
|
|
||||||
void DockContainerWidgetPrivate::saveOverlayWidgetsState(QXmlStreamWriter& Stream)
|
void DockContainerWidgetPrivate::saveOverlayWidgetsState(QXmlStreamWriter& Stream)
|
||||||
{
|
{
|
||||||
for (const auto dockAreaWidget : _this->findChildren<CDockAreaWidget*>())
|
for (const auto sideTabBar : SideTabBarWidgets.values())
|
||||||
{
|
{
|
||||||
if (!dockAreaWidget->isOverlayed())
|
for (auto itemIndex = 0; itemIndex < sideTabBar->tabCount(); itemIndex++)
|
||||||
|
{
|
||||||
|
const auto sideTab = sideTabBar->tabAt(itemIndex);
|
||||||
|
if (sideTab == nullptr)
|
||||||
{
|
{
|
||||||
continue;
|
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->setClosedState(Closed);
|
||||||
DockWidget->setProperty(internal::ClosedProperty, Closed);
|
DockWidget->setProperty(internal::ClosedProperty, Closed);
|
||||||
DockWidget->setProperty(internal::DirtyProperty, false);
|
DockWidget->setProperty(internal::DirtyProperty, false);
|
||||||
_this->sideTabBar(area)->insertSideTab(0, DockWidget->sideTabWidget());
|
_this->sideTabBar(area)->insertSideTab(-1, DockWidget->sideTabWidget());
|
||||||
DockArea->overlayDockContainer()->addDockWidget(DockWidget);
|
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
|
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);
|
DockArea->overlayDockContainer()->toggleView(!Closed);
|
||||||
|
@ -314,6 +314,13 @@ void CDockWidgetSideTab::updateOrientationAndSpacing(SideTabBarArea area)
|
|||||||
d->TitleLabel->show();
|
d->TitleLabel->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
CDockWidget* CDockWidgetSideTab::dockWidget() const
|
||||||
|
{
|
||||||
|
return d->DockWidget;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Private data class of SideTabIcon class (pimpl)
|
* Private data class of SideTabIcon class (pimpl)
|
||||||
*/
|
*/
|
||||||
|
@ -136,6 +136,12 @@ public:
|
|||||||
*/
|
*/
|
||||||
void updateOrientationAndSpacing(SideTabBarArea area);
|
void updateOrientationAndSpacing(SideTabBarArea area);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns the dock widget this belongs to
|
||||||
|
*/
|
||||||
|
CDockWidget* dockWidget() const;
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void elidedChanged(bool elided);
|
void elidedChanged(bool elided);
|
||||||
void clicked();
|
void clicked();
|
||||||
|
@ -123,4 +123,18 @@ Qt::Orientation CSideTabBar::orientation() const
|
|||||||
{
|
{
|
||||||
return d->Orientation;
|
return d->Orientation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
CDockWidgetSideTab* CSideTabBar::tabAt(int index) const
|
||||||
|
{
|
||||||
|
return qobject_cast<CDockWidgetSideTab*>(d->TabsLayout->itemAt(index)->widget());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
int CSideTabBar::tabCount() const
|
||||||
|
{
|
||||||
|
return d->TabsLayout->count();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -84,6 +84,16 @@ public:
|
|||||||
*/
|
*/
|
||||||
Qt::Orientation orientation() const;
|
Qt::Orientation orientation() const;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* get the side tab widget at position, returns nullptr if it's out of bounds
|
||||||
|
*/
|
||||||
|
CDockWidgetSideTab* tabAt(int index) const;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Gets the count of the tab widgets
|
||||||
|
*/
|
||||||
|
int tabCount() const;
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void sideTabAutoHideToggleRequested();
|
void sideTabAutoHideToggleRequested();
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user