summaryrefslogtreecommitdiffstats
path: root/tests/manual/gestures
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/gestures')
-rw-r--r--tests/manual/gestures/graphicsview/main.cpp8
-rw-r--r--tests/manual/gestures/graphicsview/mousepangesturerecognizer.cpp35
-rw-r--r--tests/manual/gestures/scrollarea/main.cpp36
-rw-r--r--tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp10
4 files changed, 54 insertions, 35 deletions
diff --git a/tests/manual/gestures/graphicsview/main.cpp b/tests/manual/gestures/graphicsview/main.cpp
index 263a963..e9065eb 100644
--- a/tests/manual/gestures/graphicsview/main.cpp
+++ b/tests/manual/gestures/graphicsview/main.cpp
@@ -66,11 +66,11 @@ protected:
default: qDebug("view: Pan: <unknown state>"); break;
}
- const QSizeF offset = pan->offset();
+ const QPointF offset = pan->offset();
QScrollBar *vbar = verticalScrollBar();
QScrollBar *hbar = horizontalScrollBar();
- vbar->setValue(vbar->value() - offset.height());
- hbar->setValue(hbar->value() - offset.width());
+ vbar->setValue(vbar->value() - offset.y());
+ hbar->setValue(hbar->value() - offset.x());
ge->accept(pan);
return true;
}
@@ -126,6 +126,8 @@ public:
scene = new QGraphicsScene(this);
scene->setSceneRect(-2000, -2000, 4000, 4000);
view = new QGraphicsView(scene, 0);
+ view->viewport()->grabGesture(Qt::PanGesture);
+ view->viewport()->grabGesture(ThreeFingerSlideGesture::Type);
QVBoxLayout *l = new QVBoxLayout(this);
l->addWidget(view);
}
diff --git a/tests/manual/gestures/graphicsview/mousepangesturerecognizer.cpp b/tests/manual/gestures/graphicsview/mousepangesturerecognizer.cpp
index 0e7f538..6cdbe12 100644
--- a/tests/manual/gestures/graphicsview/mousepangesturerecognizer.cpp
+++ b/tests/manual/gestures/graphicsview/mousepangesturerecognizer.cpp
@@ -42,6 +42,8 @@
#include "mousepangesturerecognizer.h"
#include <QEvent>
+#include <QVariant>
+#include <QGraphicsSceneMouseEvent>
#include <QMouseEvent>
#include <QGesture>
@@ -57,21 +59,36 @@ QGesture* MousePanGestureRecognizer::createGesture(QObject *)
QGestureRecognizer::Result MousePanGestureRecognizer::filterEvent(QGesture *state, QObject *, QEvent *event)
{
QPanGesture *g = static_cast<QPanGesture *>(state);
- QMouseEvent *me = static_cast<QMouseEvent *>(event);
+ QPoint globalPos;
+ switch (event->type()) {
+ case QEvent::GraphicsSceneMousePress:
+ case QEvent::GraphicsSceneMouseDoubleClick:
+ case QEvent::GraphicsSceneMouseMove:
+ case QEvent::GraphicsSceneMouseRelease:
+ globalPos = static_cast<QGraphicsSceneMouseEvent *>(event)->screenPos();
+ break;
+ case QEvent::MouseButtonPress:
+ case QEvent::MouseMove:
+ case QEvent::MouseButtonRelease:
+ globalPos = static_cast<QMouseEvent *>(event)->globalPos();
+ break;
+ default:
+ break;
+ }
if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonDblClick
|| event->type() == QEvent::GraphicsSceneMousePress || event->type() == QEvent::GraphicsSceneMouseDoubleClick) {
- g->setHotSpot(me->globalPos());
- g->setProperty("lastPos", me->globalPos());
+ g->setHotSpot(globalPos);
+ g->setProperty("lastPos", globalPos);
g->setProperty("pressed", QVariant::fromValue<bool>(true));
return QGestureRecognizer::GestureTriggered | QGestureRecognizer::ConsumeEventHint;
} else if (event->type() == QEvent::MouseMove || event->type() == QEvent::GraphicsSceneMouseMove) {
if (g->property("pressed").toBool()) {
- QPoint pos = me->globalPos();
+ QPoint pos = globalPos;
QPoint lastPos = g->property("lastPos").toPoint();
g->setLastOffset(g->offset());
lastPos = pos - lastPos;
- g->setOffset(QSizeF(lastPos.x(), lastPos.y()));
- g->setTotalOffset(g->totalOffset() + QSizeF(lastPos.x(), lastPos.y()));
+ g->setOffset(QPointF(lastPos.x(), lastPos.y()));
+ g->setTotalOffset(g->totalOffset() + QPointF(lastPos.x(), lastPos.y()));
g->setProperty("lastPos", pos);
return QGestureRecognizer::GestureTriggered | QGestureRecognizer::ConsumeEventHint;
}
@@ -85,9 +102,9 @@ QGestureRecognizer::Result MousePanGestureRecognizer::filterEvent(QGesture *stat
void MousePanGestureRecognizer::reset(QGesture *state)
{
QPanGesture *g = static_cast<QPanGesture *>(state);
- g->setTotalOffset(QSizeF());
- g->setLastOffset(QSizeF());
- g->setOffset(QSizeF());
+ g->setTotalOffset(QPointF());
+ g->setLastOffset(QPointF());
+ g->setOffset(QPointF());
g->setAcceleration(0);
g->setProperty("lastPos", QVariant());
g->setProperty("pressed", QVariant::fromValue<bool>(false));
diff --git a/tests/manual/gestures/scrollarea/main.cpp b/tests/manual/gestures/scrollarea/main.cpp
index 2796637..f90f6c6 100644
--- a/tests/manual/gestures/scrollarea/main.cpp
+++ b/tests/manual/gestures/scrollarea/main.cpp
@@ -87,23 +87,23 @@ protected:
if (outside)
return;
- const QSizeF offset = pan->offset();
- const QSizeF totalOffset = pan->totalOffset();
+ const QPointF offset = pan->offset();
+ const QPointF totalOffset = pan->totalOffset();
QScrollBar *vbar = verticalScrollBar();
QScrollBar *hbar = horizontalScrollBar();
- if ((vbar->value() == vbar->minimum() && totalOffset.height() > 10) ||
- (vbar->value() == vbar->maximum() && totalOffset.height() < -10)) {
+ if ((vbar->value() == vbar->minimum() && totalOffset.y() > 10) ||
+ (vbar->value() == vbar->maximum() && totalOffset.y() < -10)) {
outside = true;
return;
}
- if ((hbar->value() == hbar->minimum() && totalOffset.width() > 10) ||
- (hbar->value() == hbar->maximum() && totalOffset.width() < -10)) {
+ if ((hbar->value() == hbar->minimum() && totalOffset.x() > 10) ||
+ (hbar->value() == hbar->maximum() && totalOffset.x() < -10)) {
outside = true;
return;
}
- vbar->setValue(vbar->value() - offset.height());
- hbar->setValue(hbar->value() - offset.width());
+ vbar->setValue(vbar->value() - offset.y());
+ hbar->setValue(hbar->value() - offset.x());
event->accept(pan);
}
}
@@ -147,28 +147,28 @@ protected:
event->ignore(pan);
if (outside)
return;
- const QSizeF offset = pan->offset();
- const QSizeF totalOffset = pan->totalOffset();
+ const QPointF offset = pan->offset();
+ const QPointF totalOffset = pan->totalOffset();
if (orientation() == Qt::Horizontal) {
- if ((value() == minimum() && totalOffset.width() < -10) ||
- (value() == maximum() && totalOffset.width() > 10)) {
+ if ((value() == minimum() && totalOffset.x() < -10) ||
+ (value() == maximum() && totalOffset.x() > 10)) {
outside = true;
return;
}
- if (totalOffset.height() < 40 && totalOffset.height() > -40) {
- setValue(value() + offset.width());
+ if (totalOffset.y() < 40 && totalOffset.y() > -40) {
+ setValue(value() + offset.x());
event->accept(pan);
} else {
outside = true;
}
} else if (orientation() == Qt::Vertical) {
- if ((value() == maximum() && totalOffset.height() < -10) ||
- (value() == minimum() && totalOffset.height() > 10)) {
+ if ((value() == maximum() && totalOffset.y() < -10) ||
+ (value() == minimum() && totalOffset.y() > 10)) {
outside = true;
return;
}
- if (totalOffset.width() < 40 && totalOffset.width() > -40) {
- setValue(value() - offset.height());
+ if (totalOffset.x() < 40 && totalOffset.x() > -40) {
+ setValue(value() - offset.y());
event->accept(pan);
} else {
outside = true;
diff --git a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp
index 79b633e..5f94dbc 100644
--- a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp
+++ b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp
@@ -69,8 +69,8 @@ QGestureRecognizer::Result MousePanGestureRecognizer::filterEvent(QGesture *stat
QPoint lastPos = g->property("lastPos").toPoint();
g->setLastOffset(g->offset());
lastPos = pos - lastPos;
- g->setOffset(QSizeF(lastPos.x(), lastPos.y()));
- g->setTotalOffset(g->totalOffset() + QSizeF(lastPos.x(), lastPos.y()));
+ g->setOffset(QPointF(lastPos.x(), lastPos.y()));
+ g->setTotalOffset(g->totalOffset() + QPointF(lastPos.x(), lastPos.y()));
g->setProperty("lastPos", pos);
return QGestureRecognizer::GestureTriggered | QGestureRecognizer::ConsumeEventHint;
}
@@ -84,9 +84,9 @@ QGestureRecognizer::Result MousePanGestureRecognizer::filterEvent(QGesture *stat
void MousePanGestureRecognizer::reset(QGesture *state)
{
QPanGesture *g = static_cast<QPanGesture *>(state);
- g->setTotalOffset(QSizeF());
- g->setLastOffset(QSizeF());
- g->setOffset(QSizeF());
+ g->setTotalOffset(QPointF());
+ g->setLastOffset(QPointF());
+ g->setOffset(QPointF());
g->setAcceleration(0);
g->setProperty("lastPos", QVariant());
g->setProperty("pressed", QVariant::fromValue<bool>(false));