Fixes pack. Parenting, memory leaks, floating widgets deleting.

* DockWidget always has DockAreaWidget as parent. It's not necessary to make it nullptr. This fixes many bugs related to restoring inactive tabbed DockWidgets.

* Fixed memory leaks related to QBoxLayout::takeAt().

* Fixed algorithm of deleting remaining floating widgets after restore.
This commit is contained in:
Yurii Miroshnyk
2020-08-21 19:20:54 +03:00
parent 703a9b3e12
commit a565239c4a
3 changed files with 9 additions and 23 deletions

View File

@@ -296,11 +296,11 @@ bool DockManagerPrivate::restoreStateFromXml(const QByteArray &state, int versi
{
// Delete remaining empty floating widgets
int FloatingWidgetIndex = DockContainerCount - 1;
int DeleteCount = FloatingWidgets.count() - FloatingWidgetIndex;
for (int i = 0; i < DeleteCount; ++i)
for (int i = FloatingWidgetIndex; i < FloatingWidgets.count(); ++i)
{
FloatingWidgets[FloatingWidgetIndex + i]->deleteLater();
_this->removeDockContainer(FloatingWidgets[FloatingWidgetIndex + i]->dockContainer());
auto* floatingWidget = FloatingWidgets[i];
_this->removeDockContainer(floatingWidget->dockContainer());
floatingWidget->deleteLater();
}
}