nested mdi: Get rid of unneeded drop area mdi wrapper when floating

When floating, the FloatingWindow has its own DropArea for nesting.
We delete the redundant level of wrappers when floating.
This commit is contained in:
Sergio Martins
2022-01-14 17:55:43 +00:00
parent 95c12dbd4c
commit 18457d80aa
6 changed files with 77 additions and 8 deletions

View File

@@ -5153,7 +5153,32 @@ void TestDocks::tst_mdi_mixed_with_docking2()
QVERIFY(!mdiWidget3->isOpen());
QVERIFY(dropArea1.isNull());
// QTest::qWait(10000);
// Reopen everything again:
mdiArea->addDockWidget(mdiWidget1, QPoint(10, 10));
mdiArea->addDockWidget(mdiWidget2, QPoint(50, 50));
frame1 = mdiWidget1->d->frame();
mdiFrame1 = frame1->mdiFrame();
dropArea1 = frame1->mdiDropAreaWrapper();
dropArea1->addDockWidget(mdiWidget3, Location_OnLeft, nullptr);
// Test floating:
frame2 = mdiWidget2->d->frame();
QPointer<DockWidgetBase> dwWrapper2 = frame2->mdiDockWidgetWrapper();
dropArea2 = frame2->mdiDropAreaWrapper();
QVERIFY(mdiWidget2->isVisible());
QVERIFY(frame2->isMDIWrapper());
QVERIFY(dwWrapper2->d->isMDIWrapper());
mdiWidget2->setFloating(true);
QVERIFY(mdiWidget2->isFloating());
QVERIFY(!mdiWidget2->d->frame()->isMDI());
QVERIFY(!mdiWidget2->d->frame()->isMDIWrapper());
QTest::qWait(500); // remove
QVERIFY(dropArea2.isNull());
QVERIFY(dwWrapper2.isNull());
// QTest::qWait(100000);
}
// No need to port to QtQuick