Test restored state in tst_QDockWidget::hideAndShow()

4c60a11d8f had to be reverted, because it
broke restoring the state of hidden, floating dock widgets.

Extend tst_QDockWdget::hideAndShow() to test this functionality.
Blacklist test function on Apple, because Apple machines on CI show
dock widgets with the main window.

Task-number: QTBUG-120191
Pick-to: 6.7
Change-Id: Ibc6121a99f15f33d62ca0a9376dbe9fafbe20290
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
bb10
Axel Spoerl 2023-12-22 13:04:21 +01:00 committed by Volker Hilsheimer
parent 6f9db71154
commit 3195e34742
1 changed files with 11 additions and 1 deletions

View File

@ -1650,7 +1650,7 @@ void tst_QDockWidget::hideAndShow()
unplugAndResize(mainWindow, d1, home1(mainWindow), size1(mainWindow));
unplugAndResize(mainWindow, d2, home2(mainWindow), size2(mainWindow));
// Check hiding of undocked widgets
// Check hiding of undocked widgets
qCDebug(lcTestDockWidget) << "Hiding mainWindow with unplugged dock widgets" << mainWindow;
mainWindow->hide();
QTRY_VERIFY(!mainWindow->isVisible());
@ -1661,6 +1661,16 @@ void tst_QDockWidget::hideAndShow()
QTRY_VERIFY(!d1->isVisible());
QTRY_VERIFY(!d2->isVisible());
// Check floating, hidden dock widgets remain hidden, when their state is restored
qCDebug(lcTestDockWidget) << "Restoring state of unplugged, hidden dock widgets" << mainWindow;
const QByteArray state = mainWindow->saveState();
mainWindow->restoreState(state);
mainWindow->show();
QVERIFY(QTest::qWaitForWindowExposed(mainWindow));
QTRY_VERIFY(!d1->isVisible());
QTRY_VERIFY(!d2->isVisible());
qCDebug(lcTestDockWidget) << "Waiting" << waitBeforeClose << "ms before closing.";
QTest::qWait(waitBeforeClose);
#else