diff options
author | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-10-08 17:14:57 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-10-19 11:13:27 +0000 |
commit | c977c687cbfed64fac4a1550733d111a3d8cdca0 (patch) | |
tree | f34531a3257941cbaf0936bf3b88aebddf747a97 /tests/auto/widgets/widgets/qmdisubwindow | |
parent | 2042a091a3e88a77d52b6cdb62f3fc9153d7f5d7 (diff) |
QMdiSubWindow: Do not close when doubleclicking on disabled Restore action.
Check whether the action under the mouse is enabled before closing.
Task-number: QTBUG-48493
Change-Id: I2a0669840b9b6c81dacdf179325301c02f1c0c35
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Diffstat (limited to 'tests/auto/widgets/widgets/qmdisubwindow')
-rw-r--r-- | tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp b/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp index a6caa3d020..db252347ac 100644 --- a/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp +++ b/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp @@ -191,6 +191,7 @@ private slots: void fixedMinMaxSize(); #if !defined (Q_OS_MAC) && !defined (Q_OS_WINCE) void replaceMenuBarWhileMaximized(); + void closeOnDoubleClick_data(); void closeOnDoubleClick(); #endif void setFont(); @@ -1793,9 +1794,23 @@ void tst_QMdiSubWindow::replaceMenuBarWhileMaximized() QVERIFY(!subWindow->maximizedSystemMenuIconWidget()); } +void tst_QMdiSubWindow::closeOnDoubleClick_data() +{ + QTest::addColumn<int>("actionIndex"); + QTest::addColumn<bool>("expectClosed"); + + QTest::newRow("close") << 1 << true; + QTest::newRow("disabled-restore-action") << 0 << false; // QTBUG-48493 +} + void tst_QMdiSubWindow::closeOnDoubleClick() { + QFETCH(int, actionIndex); + QFETCH(bool, expectClosed); + QMdiArea mdiArea; + mdiArea.setWindowTitle(QLatin1String(QTest::currentTestFunction()) + + QLatin1Char(' ') + QLatin1String(QTest::currentDataTag())); QPointer<QMdiSubWindow> subWindow = mdiArea.addSubWindow(new QWidget); mdiArea.show(); QVERIFY(QTest::qWaitForWindowExposed(&mdiArea)); @@ -1807,12 +1822,13 @@ void tst_QMdiSubWindow::closeOnDoubleClick() QVERIFY(systemMenu); QVERIFY(systemMenu->isVisible()); - sendMouseDoubleClick(systemMenu, QPoint(10, 10)); + const QRect actionGeometry = systemMenu->actionGeometry(systemMenu->actions().at(actionIndex)); + sendMouseDoubleClick(systemMenu, actionGeometry.center()); if (qApp->activePopupWidget() == static_cast<QWidget *>(systemMenu)) systemMenu->hide(); qApp->processEvents(); - QVERIFY(!subWindow || !subWindow->isVisible()); QVERIFY(!systemMenu || !systemMenu->isVisible()); + QCOMPARE(subWindow.isNull() || !subWindow->isVisible(), expectClosed); } #endif |