diff options
author | Bernd Weimer <bweimer@blackberry.com> | 2014-06-23 16:29:36 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@digia.com> | 2014-08-18 15:38:21 +0200 |
commit | cf32311d7473019f5c13fcc596601d84ac0987a3 (patch) | |
tree | a98c57fbc2fe2c43009fac67aa5beaf843645135 | |
parent | 2289f3ee2955f783baa6e18c7fe3418c302b011c (diff) |
fingerpaint example: be sensitive to pressure only when supported
Fix fingerpaint example for platforms that don't support touch device
area and pressure by setting default size of drawn ellipse.
Change-Id: I884c688aa8ef98debf24876dbefaa4cff43a86a2
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
-rw-r--r-- | examples/touch/fingerpaint/scribblearea.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/examples/touch/fingerpaint/scribblearea.cpp b/examples/touch/fingerpaint/scribblearea.cpp index 0d13e4579d..1630f6f112 100644 --- a/examples/touch/fingerpaint/scribblearea.cpp +++ b/examples/touch/fingerpaint/scribblearea.cpp @@ -46,6 +46,9 @@ #include "scribblearea.h" +static const qreal MinimumDiameter = 3.0; +static const qreal MaximumDiameter = 50.0; + //! [0] ScribbleArea::ScribbleArea(QWidget *parent) : QWidget(parent) @@ -179,6 +182,7 @@ bool ScribbleArea::event(QEvent *event) case QEvent::TouchUpdate: case QEvent::TouchEnd: { + QTouchEvent *touch = static_cast<QTouchEvent *>(event); QList<QTouchEvent::TouchPoint> touchPoints = static_cast<QTouchEvent *>(event)->touchPoints(); foreach (const QTouchEvent::TouchPoint &touchPoint, touchPoints) { switch (touchPoint.state()) { @@ -189,7 +193,9 @@ bool ScribbleArea::event(QEvent *event) { QRectF rect = touchPoint.rect(); if (rect.isEmpty()) { - qreal diameter = qreal(50) * touchPoint.pressure(); + qreal diameter = MinimumDiameter; + if (touch->device()->capabilities() & QTouchDevice::Pressure) + diameter = MinimumDiameter + (MaximumDiameter - MinimumDiameter) * touchPoint.pressure(); rect.setSize(QSizeF(diameter, diameter)); } |