From 66ed5fc90fe44554e852a6f8dca4548154da781c Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Thu, 23 Apr 2009 17:54:17 +0200 Subject: update test to test basic event handling and touch begin propagation --- tests/manual/qtouchevent/form.ui | 572 +++++++++++++++++-------------- tests/manual/qtouchevent/main.cpp | 152 +++++++- tests/manual/qtouchevent/touchwidget.cpp | 7 +- 3 files changed, 460 insertions(+), 271 deletions(-) diff --git a/tests/manual/qtouchevent/form.ui b/tests/manual/qtouchevent/form.ui index 00e15ae..6cf4cba 100644 --- a/tests/manual/qtouchevent/form.ui +++ b/tests/manual/qtouchevent/form.ui @@ -6,16 +6,16 @@ 0 0 - 791 - 499 + 770 + 424 Form - - + + 0 @@ -37,8 +37,8 @@ - 0 - 170 + 170 + 0 0 @@ -46,8 +46,8 @@ - 0 - 255 + 255 + 0 0 @@ -55,8 +55,8 @@ - 0 - 212 + 212 + 0 0 @@ -64,8 +64,8 @@ - 0 - 85 + 85 + 0 0 @@ -73,8 +73,8 @@ - 0 - 113 + 113 + 0 0 @@ -118,8 +118,8 @@ - 0 - 170 + 170 + 0 0 @@ -136,8 +136,8 @@ - 127 - 212 + 212 + 127 127 @@ -174,8 +174,8 @@ - 0 - 170 + 170 + 0 0 @@ -183,8 +183,8 @@ - 0 - 255 + 255 + 0 0 @@ -192,8 +192,8 @@ - 0 - 212 + 212 + 0 0 @@ -201,8 +201,8 @@ - 0 - 85 + 85 + 0 0 @@ -210,8 +210,8 @@ - 0 - 113 + 113 + 0 0 @@ -255,8 +255,8 @@ - 0 - 170 + 170 + 0 0 @@ -273,8 +273,8 @@ - 127 - 212 + 212 + 127 127 @@ -302,8 +302,8 @@ - 0 - 85 + 85 + 0 0 @@ -311,8 +311,8 @@ - 0 - 170 + 170 + 0 0 @@ -320,8 +320,8 @@ - 0 - 255 + 255 + 0 0 @@ -329,8 +329,8 @@ - 0 - 212 + 212 + 0 0 @@ -338,8 +338,8 @@ - 0 - 85 + 85 + 0 0 @@ -347,8 +347,8 @@ - 0 - 113 + 113 + 0 0 @@ -356,8 +356,8 @@ - 0 - 85 + 85 + 0 0 @@ -374,8 +374,8 @@ - 0 - 85 + 85 + 0 0 @@ -383,8 +383,8 @@ - 0 - 170 + 170 + 0 0 @@ -392,8 +392,8 @@ - 0 - 170 + 170 + 0 0 @@ -410,8 +410,8 @@ - 0 - 170 + 170 + 0 0 @@ -440,35 +440,41 @@ true - + - + Qt::Vertical - 20 - 290 + 0 + 0 - + Qt::Horizontal - 84 - 20 + 0 + 0 - + + + + 0 + 0 + + 180 @@ -481,9 +487,9 @@ - 0 - 0 - 0 + 255 + 255 + 255 @@ -492,7 +498,7 @@ 0 0 - 170 + 0 @@ -501,7 +507,7 @@ 0 0 - 255 + 0 @@ -510,7 +516,7 @@ 0 0 - 212 + 0 @@ -519,7 +525,7 @@ 0 0 - 85 + 0 @@ -528,16 +534,16 @@ 0 0 - 113 + 0 - 0 - 0 - 0 + 255 + 255 + 255 @@ -553,18 +559,18 @@ - 0 - 0 - 0 + 255 + 255 + 255 - 255 - 255 - 255 + 0 + 0 + 0 @@ -573,7 +579,7 @@ 0 0 - 170 + 0 @@ -589,9 +595,9 @@ - 127 - 127 - 212 + 0 + 0 + 0 @@ -618,9 +624,9 @@ - 0 - 0 - 0 + 255 + 255 + 255 @@ -629,7 +635,7 @@ 0 0 - 170 + 0 @@ -638,7 +644,7 @@ 0 0 - 255 + 0 @@ -647,7 +653,7 @@ 0 0 - 212 + 0 @@ -656,7 +662,7 @@ 0 0 - 85 + 0 @@ -665,16 +671,16 @@ 0 0 - 113 + 0 - 0 - 0 - 0 + 255 + 255 + 255 @@ -690,18 +696,18 @@ - 0 - 0 - 0 + 255 + 255 + 255 - 255 - 255 - 255 + 0 + 0 + 0 @@ -710,7 +716,7 @@ 0 0 - 170 + 0 @@ -726,9 +732,9 @@ - 127 - 127 - 212 + 0 + 0 + 0 @@ -757,7 +763,7 @@ 0 0 - 85 + 0 @@ -766,7 +772,7 @@ 0 0 - 170 + 0 @@ -775,7 +781,7 @@ 0 0 - 255 + 0 @@ -784,7 +790,7 @@ 0 0 - 212 + 0 @@ -793,7 +799,7 @@ 0 0 - 85 + 0 @@ -802,7 +808,7 @@ 0 0 - 113 + 0 @@ -811,7 +817,7 @@ 0 0 - 85 + 0 @@ -829,7 +835,7 @@ 0 0 - 85 + 0 @@ -838,7 +844,7 @@ 0 0 - 170 + 0 @@ -847,7 +853,7 @@ 0 0 - 170 + 0 @@ -865,7 +871,7 @@ 0 0 - 170 + 0 @@ -896,14 +902,27 @@ - + Qt::Horizontal - 84 - 20 + 0 + 0 + + + + + + + + Qt::Vertical + + + + 0 + 0 @@ -911,8 +930,34 @@ - - + + + + + 16 + 75 + true + + + + Test Name + + + + + + + + 16 + + + + Test description + + + + + 0 @@ -934,8 +979,8 @@ - 170 - 0 + 0 + 170 0 @@ -943,8 +988,8 @@ - 255 - 0 + 0 + 255 0 @@ -952,8 +997,8 @@ - 212 - 0 + 0 + 212 0 @@ -961,8 +1006,8 @@ - 85 - 0 + 0 + 85 0 @@ -970,8 +1015,8 @@ - 113 - 0 + 0 + 113 0 @@ -1015,8 +1060,8 @@ - 170 - 0 + 0 + 170 0 @@ -1033,8 +1078,8 @@ - 212 - 127 + 127 + 212 127 @@ -1071,8 +1116,8 @@ - 170 - 0 + 0 + 170 0 @@ -1080,8 +1125,8 @@ - 255 - 0 + 0 + 255 0 @@ -1089,8 +1134,8 @@ - 212 - 0 + 0 + 212 0 @@ -1098,8 +1143,8 @@ - 85 - 0 + 0 + 85 0 @@ -1107,8 +1152,8 @@ - 113 - 0 + 0 + 113 0 @@ -1152,8 +1197,8 @@ - 170 - 0 + 0 + 170 0 @@ -1170,8 +1215,8 @@ - 212 - 127 + 127 + 212 127 @@ -1199,8 +1244,8 @@ - 85 - 0 + 0 + 85 0 @@ -1208,8 +1253,8 @@ - 170 - 0 + 0 + 170 0 @@ -1217,8 +1262,8 @@ - 255 - 0 + 0 + 255 0 @@ -1226,8 +1271,8 @@ - 212 - 0 + 0 + 212 0 @@ -1235,8 +1280,8 @@ - 85 - 0 + 0 + 85 0 @@ -1244,8 +1289,8 @@ - 113 - 0 + 0 + 113 0 @@ -1253,8 +1298,8 @@ - 85 - 0 + 0 + 85 0 @@ -1271,8 +1316,8 @@ - 85 - 0 + 0 + 85 0 @@ -1280,8 +1325,8 @@ - 170 - 0 + 0 + 170 0 @@ -1289,8 +1334,8 @@ - 170 - 0 + 0 + 170 0 @@ -1307,8 +1352,8 @@ - 170 - 0 + 0 + 170 0 @@ -1337,35 +1382,28 @@ true - - - - - Qt::Vertical - - - - 20 - 290 - - - - + - + Qt::Horizontal - 84 - 20 + 0 + 0 - + + + + 0 + 0 + + 180 @@ -1378,9 +1416,9 @@ - 255 - 255 - 255 + 0 + 0 + 0 @@ -1389,7 +1427,7 @@ 0 0 - 0 + 170 @@ -1398,7 +1436,7 @@ 0 0 - 0 + 255 @@ -1407,7 +1445,7 @@ 0 0 - 0 + 212 @@ -1416,7 +1454,7 @@ 0 0 - 0 + 85 @@ -1425,16 +1463,16 @@ 0 0 - 0 + 113 - 255 - 255 - 255 + 0 + 0 + 0 @@ -1450,18 +1488,18 @@ - 255 - 255 - 255 + 0 + 0 + 0 - 0 - 0 - 0 + 255 + 255 + 255 @@ -1470,7 +1508,7 @@ 0 0 - 0 + 170 @@ -1486,9 +1524,9 @@ - 0 - 0 - 0 + 127 + 127 + 212 @@ -1515,9 +1553,9 @@ - 255 - 255 - 255 + 0 + 0 + 0 @@ -1526,7 +1564,7 @@ 0 0 - 0 + 170 @@ -1535,7 +1573,7 @@ 0 0 - 0 + 255 @@ -1544,7 +1582,7 @@ 0 0 - 0 + 212 @@ -1553,7 +1591,7 @@ 0 0 - 0 + 85 @@ -1562,16 +1600,16 @@ 0 0 - 0 + 113 - 255 - 255 - 255 + 0 + 0 + 0 @@ -1587,18 +1625,18 @@ - 255 - 255 - 255 + 0 + 0 + 0 - 0 - 0 - 0 + 255 + 255 + 255 @@ -1607,7 +1645,7 @@ 0 0 - 0 + 170 @@ -1623,9 +1661,9 @@ - 0 - 0 - 0 + 127 + 127 + 212 @@ -1654,7 +1692,7 @@ 0 0 - 0 + 85 @@ -1663,7 +1701,7 @@ 0 0 - 0 + 170 @@ -1672,7 +1710,7 @@ 0 0 - 0 + 255 @@ -1681,7 +1719,7 @@ 0 0 - 0 + 212 @@ -1690,7 +1728,7 @@ 0 0 - 0 + 85 @@ -1699,7 +1737,7 @@ 0 0 - 0 + 113 @@ -1708,7 +1746,7 @@ 0 0 - 0 + 85 @@ -1726,7 +1764,7 @@ 0 0 - 0 + 85 @@ -1735,7 +1773,7 @@ 0 0 - 0 + 170 @@ -1744,7 +1782,7 @@ 0 0 - 0 + 170 @@ -1762,7 +1800,7 @@ 0 0 - 0 + 170 @@ -1793,14 +1831,40 @@ - + Qt::Horizontal - 83 - 20 + 0 + 0 + + + + + + + + Qt::Vertical + + + + 0 + 0 + + + + + + + + Qt::Vertical + + + + 0 + 0 @@ -1808,26 +1872,6 @@ - - - - - 75 - true - - - - Test Name - - - - - - - Test description - - - diff --git a/tests/manual/qtouchevent/main.cpp b/tests/manual/qtouchevent/main.cpp index 2aab4ca..7ed9b15 100644 --- a/tests/manual/qtouchevent/main.cpp +++ b/tests/manual/qtouchevent/main.cpp @@ -12,8 +12,15 @@ public: MultitouchTestWidget(QWidget *parent = 0) : QWidget(parent) { + setAttribute(Qt::WA_QuitOnClose, false);\ setupUi(this); } + + void closeEvent(QCloseEvent *event) + { + event->accept(); + QTimer::singleShot(1000, qApp, SLOT(quit())); + } }; class tst_ManualMultitouch : public QObject @@ -25,7 +32,8 @@ public: ~tst_ManualMultitouch(); private slots: - void touchBeginPropagation(); + void basicEventHandling(); + void touchEventPropagation(); }; tst_ManualMultitouch::tst_ManualMultitouch() @@ -34,11 +42,99 @@ tst_ManualMultitouch::tst_ManualMultitouch() tst_ManualMultitouch::~tst_ManualMultitouch() { } -void tst_ManualMultitouch::touchBeginPropagation() +void tst_ManualMultitouch::basicEventHandling() +{ + // first, make sure that we get mouse events when not enabling touch events + MultitouchTestWidget testWidget; + testWidget.testNameLabel->setText("Basic QTouchEvent handling test"); + testWidget.testDescriptionLabel->setText("Touch, hold, and release your finger on the green widget."); + testWidget.redWidget->hide(); + testWidget.blueWidget->hide(); + testWidget.greenWidget->closeWindowOnMouseRelease = true; + testWidget.showMaximized(); + + (void) qApp->exec(); + QVERIFY(!testWidget.greenWidget->seenTouchBegin); + QVERIFY(!testWidget.greenWidget->seenTouchUpdate); + QVERIFY(!testWidget.greenWidget->seenTouchEnd); + QVERIFY(testWidget.greenWidget->seenMousePress); + // QVERIFY(testWidget.greenWidget->seenMouseMove); + QVERIFY(testWidget.greenWidget->seenMouseRelease); + + // now enable touch and make sure we get the touch events + testWidget.greenWidget->reset(); + testWidget.greenWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.greenWidget->acceptTouchBegin = true; + testWidget.greenWidget->acceptTouchUpdate = true; + testWidget.greenWidget->acceptTouchEnd = true; + testWidget.greenWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + + (void) qApp->exec(); + QVERIFY(testWidget.greenWidget->seenTouchBegin + && testWidget.greenWidget->seenTouchUpdate + && testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress + && !testWidget.greenWidget->seenMouseMove + && !testWidget.greenWidget->seenMouseRelease); + + // again, ignoring the TouchEnd + testWidget.greenWidget->reset(); + testWidget.greenWidget->acceptTouchBegin = true; + testWidget.greenWidget->acceptTouchUpdate = true; + // testWidget.greenWidget->acceptTouchEnd = true; + testWidget.greenWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + + (void) qApp->exec(); + QVERIFY(testWidget.greenWidget->seenTouchBegin); + QVERIFY(testWidget.greenWidget->seenTouchUpdate); + QVERIFY(testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + + // again, ignoring TouchUpdates + testWidget.greenWidget->reset(); + testWidget.greenWidget->acceptTouchBegin = true; + // testWidget.greenWidget->acceptTouchUpdate = true; + testWidget.greenWidget->acceptTouchEnd = true; + testWidget.greenWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + + (void) qApp->exec(); + QVERIFY(testWidget.greenWidget->seenTouchBegin); + QVERIFY(testWidget.greenWidget->seenTouchUpdate); + QVERIFY(testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + + // last time, ignoring TouchUpdates and TouchEnd + testWidget.greenWidget->reset(); + testWidget.greenWidget->acceptTouchBegin = true; + // testWidget.greenWidget->acceptTouchUpdate = true; + // testWidget.greenWidget->acceptTouchEnd = true; + testWidget.greenWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + + (void) qApp->exec(); + QVERIFY(testWidget.greenWidget->seenTouchBegin); + QVERIFY(testWidget.greenWidget->seenTouchUpdate); + QVERIFY(testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); +} + +void tst_ManualMultitouch::touchEventPropagation() { + // first, make sure the greenWidget gets TouchBegin even though blueWidget is not touch aware MultitouchTestWidget testWidget; - testWidget.testNameLabel->setText("Touch event propagation"); - testWidget.testDescriptionLabel->setText("Touch, move, and release your finger over the green widget."); + testWidget.testNameLabel->setText("QTouchEvent propagation test"); + testWidget.testDescriptionLabel->setText("Touch, hold, and release your finger on the blue widget."); + testWidget.redWidget->hide(); + // testWidget.blueWidget->setAttribute(Qt::WA_AcceptTouchEvents); testWidget.greenWidget->setAttribute(Qt::WA_AcceptTouchEvents); testWidget.greenWidget->acceptTouchBegin = true; testWidget.greenWidget->acceptTouchUpdate = true; @@ -47,6 +143,36 @@ void tst_ManualMultitouch::touchBeginPropagation() testWidget.showMaximized(); (void) qApp->exec(); + QVERIFY(!testWidget.blueWidget->seenTouchBegin); + QVERIFY(!testWidget.blueWidget->seenTouchUpdate); + QVERIFY(!testWidget.blueWidget->seenTouchEnd); + QVERIFY(!testWidget.blueWidget->seenMousePress); + QVERIFY(!testWidget.blueWidget->seenMouseMove); + QVERIFY(!testWidget.blueWidget->seenMouseRelease); + QVERIFY(testWidget.greenWidget->seenTouchBegin); + QVERIFY(testWidget.greenWidget->seenTouchUpdate); + QVERIFY(testWidget.greenWidget->seenTouchEnd); + QVERIFY(!testWidget.greenWidget->seenMousePress); + QVERIFY(!testWidget.greenWidget->seenMouseMove); + QVERIFY(!testWidget.greenWidget->seenMouseRelease); + + // again, but this time blueWidget should see the TouchBegin + testWidget.blueWidget->reset(); + testWidget.greenWidget->reset(); + testWidget.blueWidget->setAttribute(Qt::WA_AcceptTouchEvents); + testWidget.greenWidget->acceptTouchBegin = true; + testWidget.greenWidget->acceptTouchUpdate = true; + testWidget.greenWidget->acceptTouchEnd = true; + testWidget.greenWidget->closeWindowOnTouchEnd = true; + testWidget.showMaximized(); + + (void) qApp->exec(); + QVERIFY(testWidget.blueWidget->seenTouchBegin); + QVERIFY(!testWidget.blueWidget->seenTouchUpdate); + QVERIFY(!testWidget.blueWidget->seenTouchEnd); + QVERIFY(!testWidget.blueWidget->seenMousePress); + QVERIFY(!testWidget.blueWidget->seenMouseMove); + QVERIFY(!testWidget.blueWidget->seenMouseRelease); QVERIFY(testWidget.greenWidget->seenTouchBegin); QVERIFY(testWidget.greenWidget->seenTouchUpdate); QVERIFY(testWidget.greenWidget->seenTouchEnd); @@ -63,6 +189,12 @@ void tst_ManualMultitouch::touchBeginPropagation() testWidget.showMaximized(); (void) qApp->exec(); + QVERIFY(testWidget.blueWidget->seenTouchBegin); + QVERIFY(!testWidget.blueWidget->seenTouchUpdate); + QVERIFY(!testWidget.blueWidget->seenTouchEnd); + QVERIFY(!testWidget.blueWidget->seenMousePress); + QVERIFY(!testWidget.blueWidget->seenMouseMove); + QVERIFY(!testWidget.blueWidget->seenMouseRelease); QVERIFY(testWidget.greenWidget->seenTouchBegin); QVERIFY(testWidget.greenWidget->seenTouchUpdate); QVERIFY(testWidget.greenWidget->seenTouchEnd); @@ -79,6 +211,12 @@ void tst_ManualMultitouch::touchBeginPropagation() testWidget.showMaximized(); (void) qApp->exec(); + QVERIFY(testWidget.blueWidget->seenTouchBegin); + QVERIFY(!testWidget.blueWidget->seenTouchUpdate); + QVERIFY(!testWidget.blueWidget->seenTouchEnd); + QVERIFY(!testWidget.blueWidget->seenMousePress); + QVERIFY(!testWidget.blueWidget->seenMouseMove); + QVERIFY(!testWidget.blueWidget->seenMouseRelease); QVERIFY(testWidget.greenWidget->seenTouchBegin); QVERIFY(testWidget.greenWidget->seenTouchUpdate); QVERIFY(testWidget.greenWidget->seenTouchEnd); @@ -95,6 +233,12 @@ void tst_ManualMultitouch::touchBeginPropagation() testWidget.showMaximized(); (void) qApp->exec(); + QVERIFY(testWidget.blueWidget->seenTouchBegin); + QVERIFY(!testWidget.blueWidget->seenTouchUpdate); + QVERIFY(!testWidget.blueWidget->seenTouchEnd); + QVERIFY(!testWidget.blueWidget->seenMousePress); + QVERIFY(!testWidget.blueWidget->seenMouseMove); + QVERIFY(!testWidget.blueWidget->seenMouseRelease); QVERIFY(testWidget.greenWidget->seenTouchBegin); QVERIFY(testWidget.greenWidget->seenTouchUpdate); QVERIFY(testWidget.greenWidget->seenTouchEnd); diff --git a/tests/manual/qtouchevent/touchwidget.cpp b/tests/manual/qtouchevent/touchwidget.cpp index 54ca685..1e57c36 100644 --- a/tests/manual/qtouchevent/touchwidget.cpp +++ b/tests/manual/qtouchevent/touchwidget.cpp @@ -1,9 +1,10 @@ #include "touchwidget.h" -#include +#include +#include +#include #include - void TouchWidget::reset() { acceptTouchBegin @@ -69,7 +70,7 @@ bool TouchWidget::event(QEvent *event) case QEvent::MouseButtonRelease: seenMouseRelease = true; if (closeWindowOnMouseRelease) - window()->close(); + window()->close(); if (acceptMouseRelease) { event->accept(); return true; -- cgit v0.12