diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2016-04-13 16:00:39 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2016-12-16 12:51:08 +0000 |
commit | a8151ded6f3a6bba640335eb2241435fbeb0eb96 (patch) | |
tree | c0ff2602d43b5ccd7240c04d756de8d9a8986675 /tests/manual/touch | |
parent | ff19ebcc2d9c9668af24fe8add9f70c160776367 (diff) |
touch manual test and TouchPoint qDebug: show horz/vert ellipse diam
Change-Id: Idb42a732e538f202de1e7310f4ca375fd0420b02
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'tests/manual/touch')
-rw-r--r-- | tests/manual/touch/main.cpp | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/tests/manual/touch/main.cpp b/tests/manual/touch/main.cpp index 66ad02f78b..1d00ea5db5 100644 --- a/tests/manual/touch/main.cpp +++ b/tests/manual/touch/main.cpp @@ -50,20 +50,20 @@ bool optIgnoreTouch = false; QVector<Qt::GestureType> optGestures; -static inline void drawCircle(const QPointF ¢er, qreal radius, const QColor &color, QPainter &painter) +static inline void drawEllipse(const QPointF ¢er, qreal hDiameter, qreal vDiameter, const QColor &color, QPainter &painter) { const QPen oldPen = painter.pen(); QPen pen = oldPen; pen.setColor(color); painter.setPen(pen); - painter.drawEllipse(center, radius, radius); + painter.drawEllipse(center, hDiameter / 2, vDiameter / 2); painter.setPen(oldPen); } -static inline void fillCircle(const QPointF ¢er, qreal radius, const QColor &color, QPainter &painter) +static inline void fillEllipse(const QPointF ¢er, qreal hDiameter, qreal vDiameter, const QColor &color, QPainter &painter) { QPainterPath painterPath; - painterPath.addEllipse(center, radius, radius); + painterPath.addEllipse(center, hDiameter / 2, vDiameter / 2); painter.fillPath(painterPath, color); } @@ -236,11 +236,15 @@ enum PointType { struct Point { Point(const QPointF &p = QPoint(), PointType t = TouchPoint, - Qt::MouseEventSource s = Qt::MouseEventNotSynthesized) : pos(p), type(t), source(s) {} + Qt::MouseEventSource s = Qt::MouseEventNotSynthesized, QSizeF diameters = QSizeF(4, 4)) : + pos(p), horizontalDiameter(qMax(2., diameters.width())), + verticalDiameter(qMax(2., diameters.height())), type(t), source(s) {} QColor color() const; QPointF pos; + qreal horizontalDiameter; + qreal verticalDiameter; PointType type; Qt::MouseEventSource source; }; @@ -334,7 +338,7 @@ bool TouchTestWidget::event(QEvent *event) case QEvent::TouchUpdate: if (m_drawPoints) { foreach (const QTouchEvent::TouchPoint &p, static_cast<const QTouchEvent *>(event)->touchPoints()) - m_points.append(Point(p.pos(), TouchPoint)); + m_points.append(Point(p.pos(), TouchPoint, Qt::MouseEventNotSynthesized, p.ellipseDiameters())); update(); } case QEvent::TouchEnd: @@ -387,11 +391,10 @@ void TouchTestWidget::paintEvent(QPaintEvent *) painter.drawRect(QRectF(geom.topLeft(), geom.bottomRight() - QPointF(1, 1))); foreach (const Point &point, m_points) { if (geom.contains(point.pos)) { - const qreal radius = point.type == TouchPoint ? 1 : 4; - if (point.type == MouseRelease) { - drawCircle(point.pos, radius, point.color(), painter); - } else - fillCircle(point.pos, radius, point.color(), painter); + if (point.type == MouseRelease) + drawEllipse(point.pos, point.horizontalDiameter, point.verticalDiameter, point.color(), painter); + else + fillEllipse(point.pos, point.horizontalDiameter, point.verticalDiameter, point.color(), painter); } } foreach (const GesturePtr &gp, m_gestures) |