summaryrefslogtreecommitdiffstats
path: root/tests/manual/qtabletevent/regular_widgets/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/qtabletevent/regular_widgets/main.cpp')
-rw-r--r--tests/manual/qtabletevent/regular_widgets/main.cpp37
1 files changed, 36 insertions, 1 deletions
diff --git a/tests/manual/qtabletevent/regular_widgets/main.cpp b/tests/manual/qtabletevent/regular_widgets/main.cpp
index 339d1d3633..caf8c70c6f 100644
--- a/tests/manual/qtabletevent/regular_widgets/main.cpp
+++ b/tests/manual/qtabletevent/regular_widgets/main.cpp
@@ -82,7 +82,7 @@ class EventReportWidget : public QWidget
{
Q_OBJECT
public:
- EventReportWidget() { startTimer(1000); }
+ EventReportWidget();
public slots:
void clearPoints() { m_points.clear(); update(); }
@@ -98,6 +98,8 @@ protected:
void tabletEvent(QTabletEvent *) override;
+ bool event(QEvent *event) override;
+
void paintEvent(QPaintEvent *) override;
void timerEvent(QTimerEvent *) override;
@@ -108,10 +110,17 @@ private:
bool m_lastIsTabletMove = false;
Qt::MouseButton m_lastButton = Qt::NoButton;
QVector<TabletPoint> m_points;
+ QVector<QPointF> m_touchPoints;
int m_tabletMoveCount = 0;
int m_paintEventCount = 0;
};
+EventReportWidget::EventReportWidget()
+{
+ setAttribute(Qt::WA_AcceptTouchEvents);
+ startTimer(1000);
+}
+
void EventReportWidget::paintEvent(QPaintEvent *)
{
QPainter p(this);
@@ -160,6 +169,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;
}
@@ -198,6 +212,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) {