diff --git a/src/private/DockRegistry.cpp b/src/private/DockRegistry.cpp index 7c758392..815a4617 100644 --- a/src/private/DockRegistry.cpp +++ b/src/private/DockRegistry.cpp @@ -476,7 +476,7 @@ bool DockRegistry::isSane() const names.insert(name); } - if (!mainwindow->multiSplitter()->checkSanity()) + if (!mainwindow->layoutWidget()->checkSanity()) return false; } @@ -684,7 +684,7 @@ void DockRegistry::clear(const DockWidgetBase::List &dockWidgets, for (auto mw : qAsConst(mainWindows)) { if (affinities.isEmpty() || affinitiesMatch(affinities, mw->affinities())) { - mw->multiSplitter()->clearLayout(); + mw->layoutWidget()->clearLayout(); } } } diff --git a/tests/tst_docks.cpp b/tests/tst_docks.cpp index 36572dab..05cda6b2 100644 --- a/tests/tst_docks.cpp +++ b/tests/tst_docks.cpp @@ -7797,6 +7797,11 @@ void TestDocks::tst_addMDIDockWidget() auto m = createMainWindow(QSize(800, 500), MainWindowOption_MDI); auto dock0 = createDockWidget("dock0", new MyWidget2(QSize(400, 400))); qobject_cast(m->layoutWidget())->addDockWidget(dock0, QPoint(0, 0), {}); + + // MDI doesn't support LayoutSaver yet, but it was crashing, so add a test + // to catch further crashes + LayoutSaver saver; + const QByteArray saved = saver.serializeLayout(); } void TestDocks::tst_redockToMDIRestoresPosition()