summaryrefslogtreecommitdiffstats
path: root/tests/manual
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2017-05-29 10:37:33 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2017-10-18 14:21:11 +0000
commit84f006b671ace23d851fea9045ee727552e041b0 (patch)
tree50fd7ccedce0a32bbc536965e3708f90db068e07 /tests/manual
parenta75d42eebee0a280d6f68255506b505649ce190d (diff)
Add touchpoint feedback to regular_widgets tablet manual test
We need to ensure that simultaneous touch and tablet input is possible. Change-Id: I0c0d06e382b6b89e11ed06c1e4ad0db63b3b7c82 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'tests/manual')
-rw-r--r--tests/manual/qtabletevent/regular_widgets/main.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/manual/qtabletevent/regular_widgets/main.cpp b/tests/manual/qtabletevent/regular_widgets/main.cpp
index fd3c385b97..891d7bcab6 100644
--- a/tests/manual/qtabletevent/regular_widgets/main.cpp
+++ b/tests/manual/qtabletevent/regular_widgets/main.cpp
@@ -79,6 +79,8 @@ protected:
void tabletEvent(QTabletEvent *);
+ bool event(QEvent *event);
+
void paintEvent(QPaintEvent *);
void timerEvent(QTimerEvent *);
@@ -89,6 +91,7 @@ private:
bool m_lastIsTabletMove;
Qt::MouseButton m_lastButton;
QVector<TabletPoint> m_points;
+ QVector<QPointF> m_touchPoints;
int m_tabletMoveCount;
int m_paintEventCount;
};
@@ -100,6 +103,7 @@ EventReportWidget::EventReportWidget()
, m_tabletMoveCount(0)
, m_paintEventCount(0)
{
+ setAttribute(Qt::WA_AcceptTouchEvents);
startTimer(1000);
}
@@ -151,6 +155,11 @@ void EventReportWidget::paintEvent(QPaintEvent *)
}
}
}
+ p.setPen(Qt::blue);
+ for (QPointF t : m_touchPoints) {
+ p.drawLine(t.x() - 40, t.y(), t.x() + 40, t.y());
+ p.drawLine(t.x(), t.y() - 40, t.x(), t.y() + 40);
+ }
++m_paintEventCount;
}
@@ -193,6 +202,27 @@ void EventReportWidget::tabletEvent(QTabletEvent *event)
m_lastIsTabletMove = isMove;
}
+bool EventReportWidget::event(QEvent *event)
+{
+ switch (event->type()) {
+ case QEvent::TouchBegin:
+ case QEvent::TouchUpdate:
+ event->accept();
+ m_touchPoints.clear();
+ for (const QTouchEvent::TouchPoint &p : static_cast<const QTouchEvent *>(event)->touchPoints())
+ m_touchPoints.append(p.pos());
+ update();
+ break;
+ case QEvent::TouchEnd:
+ m_touchPoints.clear();
+ update();
+ break;
+ default:
+ return QWidget::event(event);
+ }
+ return true;
+}
+
void EventReportWidget::outputMouseEvent(QMouseEvent *event)
{
if (event->type() == QEvent::MouseMove) {