@@ -145,7 +145,7 @@ class DockContainerWidgetPrivate
145
145
QList<CAutoHideDockContainer*> AutoHideWidgets;
146
146
QMap<SideBarLocation, CAutoHideSideBar*> SideTabBarWidgets;
147
147
QGridLayout* Layout = nullptr ;
148
- QSplitter * RootSplitter = nullptr ;
148
+ CDockSplitter * RootSplitter = nullptr ;
149
149
bool isFloating = false ;
150
150
CDockAreaWidget* LastAddedAreaCache[5 ];
151
151
int VisibleDockAreaCount = -1 ;
@@ -465,15 +465,15 @@ void DockContainerWidgetPrivate::dropIntoContainer(CFloatingDockContainer* Float
465
465
CDockContainerWidget* FloatingDockContainer = FloatingWidget->dockContainer ();
466
466
auto NewDockAreas = FloatingDockContainer->findChildren <CDockAreaWidget*>(
467
467
QString (), Qt::FindChildrenRecursively);
468
- QSplitter* Splitter = RootSplitter;
468
+ auto Splitter = RootSplitter;
469
469
470
470
if (DockAreas.count () <= 1 )
471
471
{
472
472
Splitter->setOrientation (InsertParam.orientation ());
473
473
}
474
474
else if (Splitter->orientation () != InsertParam.orientation ())
475
475
{
476
- QSplitter* NewSplitter = newSplitter (InsertParam.orientation ());
476
+ auto NewSplitter = newSplitter (InsertParam.orientation ());
477
477
QLayoutItem* li = Layout->replaceWidget (Splitter, NewSplitter);
478
478
NewSplitter->addWidget (Splitter);
479
479
updateSplitterHandles (NewSplitter);
@@ -1248,7 +1248,7 @@ void DockContainerWidgetPrivate::addDockArea(CDockAreaWidget* NewDockArea, DockW
1248
1248
}
1249
1249
else
1250
1250
{
1251
- QSplitter* NewSplitter = newSplitter (InsertParam.orientation ());
1251
+ auto NewSplitter = newSplitter (InsertParam.orientation ());
1252
1252
if (InsertParam.append ())
1253
1253
{
1254
1254
QLayoutItem* li = Layout->replaceWidget (Splitter, NewSplitter);
@@ -1583,7 +1583,7 @@ void CDockContainerWidget::removeDockArea(CDockAreaWidget* area)
1583
1583
}
1584
1584
1585
1585
QWidget* widget = Splitter->widget (0 );
1586
- QSplitter* ChildSplitter = qobject_cast<QSplitter *>(widget);
1586
+ auto ChildSplitter = qobject_cast<CDockSplitter *>(widget);
1587
1587
// If the one and only content widget of the splitter is not a splitter
1588
1588
// then we are finished
1589
1589
if (!ChildSplitter)
@@ -1913,8 +1913,8 @@ bool CDockContainerWidget::restoreState(CDockingStateReader& s, bool Testing)
1913
1913
}
1914
1914
1915
1915
d->Layout ->replaceWidget (d->RootSplitter , NewRootSplitter);
1916
- QSplitter* OldRoot = d->RootSplitter ;
1917
- d->RootSplitter = qobject_cast<QSplitter *>(NewRootSplitter);
1916
+ auto OldRoot = d->RootSplitter ;
1917
+ d->RootSplitter = qobject_cast<CDockSplitter *>(NewRootSplitter);
1918
1918
OldRoot->deleteLater ();
1919
1919
1920
1920
return true ;
@@ -2132,7 +2132,21 @@ QRect CDockContainerWidget::contentRect() const
2132
2132
return QRect ();
2133
2133
}
2134
2134
2135
- return d->RootSplitter ->geometry ();
2135
+ if (d->RootSplitter ->hasVisibleContent ())
2136
+ {
2137
+ return d->RootSplitter ->geometry ();
2138
+ }
2139
+ else
2140
+ {
2141
+ auto ContentRect = this ->rect ();
2142
+ ContentRect.adjust (
2143
+ sideTabBar (SideBarLeft)->sizeHint ().width (),
2144
+ sideTabBar (SideBarTop)->sizeHint ().height (),
2145
+ -sideTabBar (SideBarRight)->sizeHint ().width (),
2146
+ -sideTabBar (SideBarBottom)->sizeHint ().height ());
2147
+
2148
+ return ContentRect;
2149
+ }
2136
2150
}
2137
2151
2138
2152
0 commit comments