diff options
Diffstat (limited to 'tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp')
-rw-r--r-- | tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp b/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp index 2163426cac..477bab8a37 100644 --- a/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp +++ b/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp @@ -154,6 +154,7 @@ Q_DECLARE_METATYPE(Qt::WindowState); Q_DECLARE_METATYPE(Qt::WindowStates); Q_DECLARE_METATYPE(Qt::WindowType); Q_DECLARE_METATYPE(Qt::WindowFlags); +Q_DECLARE_METATYPE(QMdiSubWindow*); class tst_QMdiSubWindow : public QObject { @@ -204,6 +205,7 @@ private slots: void task_182852(); void task_233197(); void task_226929(); + void styleChange(); }; void tst_QMdiSubWindow::initTestCase() @@ -2018,6 +2020,35 @@ void tst_QMdiSubWindow::task_226929() QVERIFY(sub1->isMaximized()); } +void tst_QMdiSubWindow::styleChange() +{ + QMdiArea mdiArea; + mdiArea.show(); + QVERIFY(QTest::qWaitForWindowExposed(&mdiArea)); + + QMdiSubWindow *sub1 = mdiArea.addSubWindow(new QTextEdit); + sub1->showMaximized(); + + QMdiSubWindow *sub2 = mdiArea.addSubWindow(new QTextEdit); + sub2->showMinimized(); + + mdiArea.setActiveSubWindow(sub1); + + QTest::qWait(100); + + qRegisterMetaType<QMdiSubWindow *>(); + QSignalSpy spy(&mdiArea, SIGNAL(subWindowActivated(QMdiSubWindow*))); + QVERIFY(spy.isValid()); + + QEvent event(QEvent::StyleChange); + QApplication::sendEvent(sub1, &event); + QApplication::sendEvent(sub2, &event); + + // subWindowActivated should NOT be activated by a style change, + // even if internally QMdiSubWindow un-minimizes subwindows temporarily. + QCOMPARE(spy.count(), 0); +} + QTEST_MAIN(tst_QMdiSubWindow) #include "tst_qmdisubwindow.moc" |