Added dockWidgets() function to DockContainerWidget.h because invisible dock widgets are no children of a dock area and therefore FindChildrenRecursively() does not work

This commit is contained in:
Uwe Kindler
2018-10-11 08:54:32 +02:00
parent 272bbe275e
commit b3b6d20d96
7 changed files with 59 additions and 7 deletions

View File

@@ -254,8 +254,7 @@ void DockContainerWidgetPrivate::dropIntoSection(CFloatingDockContainer* Floatin
CDockContainerWidget* FloatingContainer = FloatingWidget->dockContainer();
if (area == CenterDockWidgetArea)
{
auto NewDockWidgets = FloatingContainer->findChildren<CDockWidget*>(
QString(), Qt::FindChildrenRecursively);
auto NewDockWidgets = FloatingContainer->dockWidgets();
for (auto DockWidget : NewDockWidgets)
{
TargetArea->insertDockWidget(0, DockWidget, false);
@@ -1141,6 +1140,19 @@ CDockWidget* CDockContainerWidget::topLevelDockWidget() const
}
//============================================================================
QList<CDockWidget*> CDockContainerWidget::dockWidgets() const
{
QList<CDockWidget*> Result;
for (const auto DockArea : d->DockAreas)
{
Result.append(DockArea->dockWidgets());
}
return Result;
}
} // namespace ads