aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/popup
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-04-26 10:35:00 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-04-26 15:53:36 +0000
commitcf67bb976e082105994ff00a2616129833edb857 (patch)
treef3f2cf2d278a12f60e63e14a00d38cb455424013 /tests/auto/popup
parent927b1280bb33a240c33a54d8e72531ab606ac590 (diff)
Popups: fix non-dimming modal background leaking events through
This piece of code, which was thought unnecessary, went missing when moved from mousePressEvent() to handlePress() in 7faafa4. It is needed after all for non-dimming modal popups, because in that case we simply cannot rely on the background dimming blocking the press... Task-number: QTBUG-60405 Change-Id: I53d89133eeae4ad8531b3c1e07c3b22295d438de Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests/auto/popup')
-rw-r--r--tests/auto/popup/tst_popup.cpp32
1 files changed, 28 insertions, 4 deletions
diff --git a/tests/auto/popup/tst_popup.cpp b/tests/auto/popup/tst_popup.cpp
index a6de0c03..0e9b55f7 100644
--- a/tests/auto/popup/tst_popup.cpp
+++ b/tests/auto/popup/tst_popup.cpp
@@ -160,13 +160,26 @@ void tst_popup::state()
void tst_popup::overlay_data()
{
QTest::addColumn<QString>("source");
- QTest::newRow("Window") << "window.qml";
- QTest::newRow("ApplicationWindow") << "applicationwindow.qml";
+ QTest::addColumn<bool>("modal");
+ QTest::addColumn<bool>("dim");
+
+ QTest::newRow("Window") << "window.qml" << false << false;
+ QTest::newRow("Window,dim") << "window.qml" << false << true;
+ QTest::newRow("Window,modal") << "window.qml" << true << false;
+ QTest::newRow("Window,modal,dim") << "window.qml" << true << true;
+
+ QTest::newRow("ApplicationWindow") << "applicationwindow.qml" << false << false;
+ QTest::newRow("ApplicationWindow,dim") << "applicationwindow.qml" << false << true;
+ QTest::newRow("ApplicationWindow,modal") << "applicationwindow.qml" << true << false;
+ QTest::newRow("ApplicationWindow,modal,dim") << "applicationwindow.qml" << true << true;
}
void tst_popup::overlay()
{
QFETCH(QString, source);
+ QFETCH(bool, modal);
+ QFETCH(bool, dim);
+
QQuickApplicationHelper helper(this, source);
QQuickWindow *window = helper.window;
@@ -210,7 +223,8 @@ void tst_popup::overlay()
QVERIFY(!popup->isVisible());
QVERIFY(!overlay->isVisible());
- popup->setModal(true);
+ popup->setDim(dim);
+ popup->setModal(modal);
popup->setClosePolicy(QQuickPopup::CloseOnReleaseOutside);
popup->open();
@@ -223,10 +237,20 @@ void tst_popup::overlay()
QTest::mouseRelease(window, Qt::LeftButton, Qt::NoModifier, QPoint(1, 1));
QCOMPARE(overlayPressedSignal.count(), 2);
+
+ #define comment "Non-modal popups do not yet support CloseOnReleaseXxx"
+ #define QEXPECT_NON_MODAL_POPUP_FAILS() \
+ QEXPECT_FAIL("Window", comment, Continue); \
+ QEXPECT_FAIL("Window,dim", comment, Continue); \
+ QEXPECT_FAIL("ApplicationWindow", comment, Continue); \
+ QEXPECT_FAIL("ApplicationWindow,dim", comment, Continue);
+
+ QEXPECT_NON_MODAL_POPUP_FAILS()
QCOMPARE(overlayReleasedSignal.count(), 1);
+ QEXPECT_NON_MODAL_POPUP_FAILS()
QVERIFY(!popup->isVisible());
- QVERIFY(!overlay->isVisible());
+ QCOMPARE(overlay->isVisible(), popup->isVisible());
}
void tst_popup::zOrder_data()