From c64183fbb34c223f6e20bf2949807f23f717047e Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 17 Sep 2019 13:46:51 +0100 Subject: [PATCH] Update toolwindowmanager to edce1185 --- .../toolwindowmanager/ToolWindowManager.cpp | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp index cb7b24632..f14c410b8 100644 --- a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp +++ b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp @@ -749,6 +749,37 @@ void ToolWindowManager::simplifyLayout() // QTimer::singleShot(1000, area, SLOT(deleteLater())); area->deleteLater(); } + // search up the stack looking for splitters that have only one child which is a splitter + splitter = qobject_cast(area->parentWidget()); + QSplitter *parentSplitter = splitter ? qobject_cast(splitter->parentWidget()) : NULL; + while(splitter && parentSplitter) + { + // this splitter has only one child, and its direct parent is a splitter. Move our child + // widget + // into the parent and delete. + if(splitter->count() == 1) + { + int idx = parentSplitter->indexOf(splitter); + if(idx == -1) + { + qCritical() << "Couldn't find splitter in parent widget"; + break; + } + + QWidget *child = splitter->widget(0); + + parentSplitter->insertWidget(idx, child); + child->show(); + + splitter->setParent(NULL); + splitter->hide(); + splitter->deleteLater(); + } + + // move up the stack + splitter = parentSplitter; + parentSplitter = qobject_cast(splitter->parentWidget()); + } } }