Fixed restoreSideBar function and dropping floating widget with auto hide widgets
This commit is contained in:
@@ -1110,8 +1110,7 @@ bool DockContainerWidgetPrivate::restoreSideBar(CDockingStateReader& s,
|
||||
AutoHideContainer = DockWidget->autoHideDockContainer();
|
||||
if (AutoHideContainer->sideBar() != SideBar)
|
||||
{
|
||||
AutoHideContainer->autoHideTab()->removeFromSideBar();
|
||||
SideBar->insertTab(-1, AutoHideContainer->autoHideTab());
|
||||
SideBar->addAutoHideWidget(AutoHideContainer);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1637,12 +1636,6 @@ void CDockContainerWidget::dropFloatingWidget(CFloatingDockContainer* FloatingWi
|
||||
auto ContainerDropArea = d->DockManager->containerOverlay()->dropAreaUnderCursor();
|
||||
bool Dropped = false;
|
||||
|
||||
auto autoHideWidgets = FloatingWidget->dockContainer()->autoHideWidgets();
|
||||
for (const auto autohideWidget : autoHideWidgets)
|
||||
{
|
||||
createAndSetupAutoHideContainer(autohideWidget->sideBarLocation(), autohideWidget->dockWidget());
|
||||
}
|
||||
|
||||
if (DockArea)
|
||||
{
|
||||
auto dropOverlay = d->DockManager->dockAreaOverlay();
|
||||
@@ -1674,6 +1667,14 @@ void CDockContainerWidget::dropFloatingWidget(CFloatingDockContainer* FloatingWi
|
||||
}
|
||||
}
|
||||
|
||||
// Remove the auto hide widgets from the FloatingWidget and insert
|
||||
// them into this widget
|
||||
for (auto AutohideWidget : FloatingWidget->dockContainer()->autoHideWidgets())
|
||||
{
|
||||
auto SideBar = sideTabBar(AutohideWidget->sideBarLocation());
|
||||
SideBar->addAutoHideWidget(AutohideWidget);
|
||||
}
|
||||
|
||||
if (Dropped)
|
||||
{
|
||||
// Fix https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/issues/351
|
||||
|
||||
Reference in New Issue
Block a user