Skip to content

Commit 68f1084

Browse files
Added parentSplitter() fucntion to DockArea and removed dead code from DockContainerWidget
1 parent 761bfc5 commit 68f1084

File tree

7 files changed

+28
-23
lines changed

7 files changed

+28
-23
lines changed

src/DockAreaWidget.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,13 @@ CAutoHideDockContainer* CDockAreaWidget::autoHideDockContainer() const
464464
return d->AutoHideDockContainer;
465465
}
466466

467+
468+
//============================================================================
469+
CDockSplitter* CDockAreaWidget::parentSplitter() const
470+
{
471+
return internal::findParent<CDockSplitter*>(this);
472+
}
473+
467474
//============================================================================
468475
bool CDockAreaWidget::isAutoHide() const
469476
{
@@ -600,7 +607,7 @@ void CDockAreaWidget::hideAreaWithNoVisibleContent()
600607
this->toggleView(false);
601608

602609
// Hide empty parent splitters
603-
auto Splitter = internal::findParent<CDockSplitter*>(this);
610+
auto Splitter = parentSplitter();
604611
internal::hideEmptyParentSplitters(Splitter);
605612

606613
//Hide empty floating widget

src/DockAreaWidget.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ class CDockContainerWidget;
4747
class DockContainerWidgetPrivate;
4848
class CDockAreaTitleBar;
4949
class CDockingStateReader;
50+
class CDockSplitter;
5051

5152

5253
/**
@@ -216,6 +217,11 @@ protected Q_SLOTS:
216217
*/
217218
CAutoHideDockContainer* autoHideDockContainer() const;
218219

220+
/**
221+
* Returns the parent splitter that contains this dock area
222+
*/
223+
CDockSplitter* parentSplitter() const;
224+
219225
/**
220226
* Returns true if the dock area is in an auto hide container
221227
*/

src/DockContainerWidget.cpp

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -587,16 +587,7 @@ void DockContainerWidgetPrivate::dropIntoSection(CFloatingDockContainer* Floatin
587587
auto InsertParam = internal::dockAreaInsertParameters(area);
588588
auto NewDockAreas = FloatingContainer->findChildren<CDockAreaWidget*>(
589589
QString(), Qt::FindChildrenRecursively);
590-
QSplitter* TargetAreaSplitter = internal::findParent<QSplitter*>(TargetArea);
591-
592-
if (!TargetAreaSplitter)
593-
{
594-
QSplitter* Splitter = newSplitter(InsertParam.orientation());
595-
Layout->replaceWidget(TargetArea, Splitter);
596-
Splitter->addWidget(TargetArea);
597-
updateSplitterHandles(Splitter);
598-
TargetAreaSplitter = Splitter;
599-
}
590+
auto TargetAreaSplitter = TargetArea->parentSplitter();
600591
int AreaIndex = TargetAreaSplitter->indexOf(TargetArea);
601592
auto FloatingSplitter = FloatingContainer->rootSplitter();
602593
if (TargetAreaSplitter->orientation() == InsertParam.orientation())
@@ -742,7 +733,7 @@ void DockContainerWidgetPrivate::moveToNewSection(QWidget* Widget, CDockAreaWidg
742733
}
743734

744735
auto InsertParam = internal::dockAreaInsertParameters(area);
745-
QSplitter* TargetAreaSplitter = internal::findParent<QSplitter*>(TargetArea);
736+
auto TargetAreaSplitter = TargetArea->parentSplitter();
746737
int AreaIndex = TargetAreaSplitter->indexOf(TargetArea);
747738
auto Sizes = TargetAreaSplitter->sizes();
748739
if (TargetAreaSplitter->orientation() == InsertParam.orientation())
@@ -877,7 +868,7 @@ void DockContainerWidgetPrivate::moveToContainer(QWidget* Widget, DockWidgetArea
877868
// it already has and do nothing, if it is the same place. It would
878869
// also work without this check, but it looks nicer with the check
879870
// because there will be no layout updates
880-
auto Splitter = internal::findParent<CDockSplitter*>(DroppedDockArea);
871+
auto Splitter = DroppedDockArea->parentSplitter();
881872
auto InsertParam = internal::dockAreaInsertParameters(area);
882873
if (Splitter == RootSplitter && InsertParam.orientation() == Splitter->orientation())
883874
{
@@ -1364,7 +1355,7 @@ CDockAreaWidget* DockContainerWidgetPrivate::addDockWidgetToDockArea(DockWidgetA
13641355
NewDockArea->addDockWidget(Dockwidget);
13651356
auto InsertParam = internal::dockAreaInsertParameters(area);
13661357

1367-
QSplitter* TargetAreaSplitter = internal::findParent<QSplitter*>(TargetDockArea);
1358+
auto TargetAreaSplitter = TargetDockArea->parentSplitter();
13681359
int index = TargetAreaSplitter ->indexOf(TargetDockArea);
13691360
if (TargetAreaSplitter->orientation() == InsertParam.orientation())
13701361
{
@@ -1381,7 +1372,7 @@ CDockAreaWidget* DockContainerWidgetPrivate::addDockWidgetToDockArea(DockWidgetA
13811372
{
13821373
ADS_PRINT("TargetAreaSplitter->orientation() != InsertParam.orientation()");
13831374
auto TargetAreaSizes = TargetAreaSplitter->sizes();
1384-
QSplitter* NewSplitter = newSplitter(InsertParam.orientation());
1375+
auto NewSplitter = newSplitter(InsertParam.orientation());
13851376
NewSplitter->addWidget(TargetDockArea);
13861377

13871378
insertWidgetIntoSplitter(NewSplitter, NewDockArea, InsertParam.append());
@@ -1572,7 +1563,7 @@ void CDockContainerWidget::removeDockArea(CDockAreaWidget* area)
15721563

15731564
area->disconnect(this);
15741565
d->DockAreas.removeAll(area);
1575-
CDockSplitter* Splitter = internal::findParent<CDockSplitter*>(area);
1566+
auto Splitter = area->parentSplitter();
15761567

15771568
// Remove are from parent splitter and recursively hide tree of parent
15781569
// splitters if it has no visible content
@@ -1943,7 +1934,7 @@ bool CDockContainerWidget::restoreState(CDockingStateReader& s, bool Testing)
19431934

19441935

19451936
//============================================================================
1946-
QSplitter* CDockContainerWidget::rootSplitter() const
1937+
CDockSplitter* CDockContainerWidget::rootSplitter() const
19471938
{
19481939
return d->RootSplitter;
19491940
}

src/DockContainerWidget.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ struct FloatingDragPreviewPrivate;
5353
class CDockingStateReader;
5454
class CAutoHideSideBar;
5555
class CAutoHideTab;
56+
class CDockSplitter;
5657
struct AutoHideTabPrivate;
5758
struct AutoHideDockContainerPrivate;
5859

@@ -94,7 +95,7 @@ class ADS_EXPORT CDockContainerWidget : public QFrame
9495
/**
9596
* Access function for the internal root splitter
9697
*/
97-
QSplitter* rootSplitter() const;
98+
CDockSplitter* rootSplitter() const;
9899

99100
/**
100101
* Creates and initializes a dockwidget auto hide container into the given area.

src/DockManager.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1318,7 +1318,7 @@ QList<int> CDockManager::splitterSizes(CDockAreaWidget *ContainedArea) const
13181318
{
13191319
if (ContainedArea)
13201320
{
1321-
auto Splitter = internal::findParent<CDockSplitter*>(ContainedArea);
1321+
auto Splitter = ContainedArea->parentSplitter();
13221322
if (Splitter)
13231323
{
13241324
return Splitter->sizes();
@@ -1335,7 +1335,7 @@ void CDockManager::setSplitterSizes(CDockAreaWidget *ContainedArea, const QList<
13351335
return;
13361336
}
13371337

1338-
auto Splitter = internal::findParent<CDockSplitter*>(ContainedArea);
1338+
auto Splitter = ContainedArea->parentSplitter();
13391339
if (Splitter && Splitter->count() == sizes.count())
13401340
{
13411341
Splitter->setSizes(sizes);

src/DockWidget.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,11 +184,11 @@ void DockWidgetPrivate::showDockWidget()
184184
DockArea->setCurrentDockWidget(_this);
185185
DockArea->toggleView(true);
186186
TabWidget->show();
187-
QSplitter* Splitter = internal::findParent<QSplitter*>(DockArea);
187+
auto Splitter = DockArea->parentSplitter();
188188
while (Splitter && !Splitter->isVisible() && !DockArea->isAutoHide())
189189
{
190190
Splitter->show();
191-
Splitter = internal::findParent<QSplitter*>(Splitter);
191+
Splitter = internal::findParent<CDockSplitter*>(Splitter);
192192
}
193193

194194
CDockContainerWidget* Container = DockArea->dockContainer();

src/ads_globals.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ T findParent(const QWidget* w)
268268
}
269269
parentWidget = parentWidget->parentWidget();
270270
}
271-
return 0;
271+
return nullptr;
272272
}
273273

274274
/**

0 commit comments

Comments
 (0)