Implemented Pin To functionality for Auto Hide Tabs
This commit is contained in:
@@ -555,6 +555,13 @@ bool CDockWidget::isAutoHide() const
|
||||
}
|
||||
|
||||
|
||||
//============================================================================
|
||||
SideBarLocation CDockWidget::autoHideLocation() const
|
||||
{
|
||||
return isAutoHide() ? autoHideDockContainer()->sideBarLocation() : SideBarNone;
|
||||
}
|
||||
|
||||
|
||||
//============================================================================
|
||||
bool CDockWidget::isFloating() const
|
||||
{
|
||||
@@ -1206,7 +1213,7 @@ void CDockWidget::setAutoHide(bool Enable, SideBarLocation Location)
|
||||
}
|
||||
|
||||
// Do nothing if nothing changes
|
||||
if (Enable == isAutoHide())
|
||||
if (Enable == isAutoHide() && Location == autoHideLocation())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -1216,6 +1223,25 @@ void CDockWidget::setAutoHide(bool Enable, SideBarLocation Location)
|
||||
{
|
||||
DockArea->setAutoHide(false);
|
||||
}
|
||||
else if (isAutoHide())
|
||||
{
|
||||
auto AutoHideContainer = autoHideDockContainer();
|
||||
auto OldOrientation = AutoHideContainer->orientation();
|
||||
auto SideBar = dockContainer()->autoHideSideBar(Location);
|
||||
SideBar->addAutoHideWidget(AutoHideContainer);
|
||||
if (SideBar->orientation() != OldOrientation)
|
||||
{
|
||||
auto OriginalSize = AutoHideContainer->originalDockWidgetSize();
|
||||
if (SideBar->orientation() == Qt::Horizontal)
|
||||
{
|
||||
AutoHideContainer->setSize(OriginalSize.height());
|
||||
}
|
||||
else
|
||||
{
|
||||
AutoHideContainer->setSize(OriginalSize.width());
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
auto area = (SideBarNone == Location) ? DockArea->calculateSideTabBarArea() : Location;
|
||||
|
||||
Reference in New Issue
Block a user