summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernd Weimer <bweimer@blackberry.com>2014-06-23 16:29:36 +0200
committerShawn Rutledge <shawn.rutledge@digia.com>2014-08-18 15:38:21 +0200
commitcf32311d7473019f5c13fcc596601d84ac0987a3 (patch)
treea98c57fbc2fe2c43009fac67aa5beaf843645135
parent2289f3ee2955f783baa6e18c7fe3418c302b011c (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.cpp8
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));
}