From 259a78ebafd0a5154fdc5ace11e99aa9a13d278e Mon Sep 17 00:00:00 2001 From: Sergio Martins Date: Mon, 6 Jul 2020 21:15:23 +0100 Subject: [PATCH] Also simplify layouts that only have 1 child Those have any orientation, so can be simplified, as its "orientation" matches its parent one --- src/private/multisplitter/Item.cpp | 2 +- src/private/multisplitter/tests/tst_multisplitter.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/private/multisplitter/Item.cpp b/src/private/multisplitter/Item.cpp index 330a73bb..d993de22 100644 --- a/src/private/multisplitter/Item.cpp +++ b/src/private/multisplitter/Item.cpp @@ -3136,7 +3136,7 @@ void ItemContainer::simplify() if (ItemContainer *childContainer = child->asContainer()) { childContainer->simplify(); // recurse down the hierarchy - if (childContainer->orientation() == d->m_orientation) { + if (childContainer->orientation() == d->m_orientation || childContainer->d->m_children.size() == 1) { // This sub-container is reduntant, as it has the same orientation as its parent // Canibalize it. for (Item *child2 : childContainer->childItems()) { diff --git a/src/private/multisplitter/tests/tst_multisplitter.cpp b/src/private/multisplitter/tests/tst_multisplitter.cpp index 5a8d9d84..053acab7 100644 --- a/src/private/multisplitter/tests/tst_multisplitter.cpp +++ b/src/private/multisplitter/tests/tst_multisplitter.cpp @@ -1066,6 +1066,7 @@ void TestMultiSplitter::tst_misc2() Item *item3 = root3->childItems().constFirst(); ItemContainer *root4 = createRootWithSingleItem(); ItemContainer *root5 = createRootWithSingleItem(); + Item *item5 = root5->childItems().constFirst(); root->insertItem(root1, Item::Location_OnTop); QVERIFY(root->checkSanity()); @@ -1079,7 +1080,7 @@ void TestMultiSplitter::tst_misc2() root->insertItem(root5, Item::Location_OnLeft); QVERIFY(root->checkSanity()); - root5->parentContainer()->removeItem(root5); + item5->parentContainer()->removeItem(item5); QVERIFY(root->checkSanity()); QVERIFY(serializeDeserializeTest(root)); }