blob: 2aab4ca826d82f0a45e7825d8b694aa2bd30eac6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
#include <QtGui>
#include <QtTest>
#include "ui_form.h"
#include "touchwidget.h"
class MultitouchTestWidget : public QWidget, public Ui::Form
{
Q_OBJECT
public:
MultitouchTestWidget(QWidget *parent = 0)
: QWidget(parent)
{
setupUi(this);
}
};
class tst_ManualMultitouch : public QObject
{
Q_OBJECT
public:
tst_ManualMultitouch();
~tst_ManualMultitouch();
private slots:
void touchBeginPropagation();
};
tst_ManualMultitouch::tst_ManualMultitouch()
{ }
tst_ManualMultitouch::~tst_ManualMultitouch()
{ }
void tst_ManualMultitouch::touchBeginPropagation()
{
MultitouchTestWidget testWidget;
testWidget.testNameLabel->setText("Touch event propagation");
testWidget.testDescriptionLabel->setText("Touch, move, and release your finger over the green widget.");
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);
QVERIFY(testWidget.greenWidget->seenTouchUpdate);
QVERIFY(testWidget.greenWidget->seenTouchEnd);
QVERIFY(!testWidget.greenWidget->seenMousePress);
QVERIFY(!testWidget.greenWidget->seenMouseMove);
QVERIFY(!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);
}
QTEST_MAIN(tst_ManualMultitouch)
#include "main.moc"
|