summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRalf Engels <ralf.engels@nokia.com>2010-05-27 16:05:02 +0200
committerRalf Engels <ralf.engels@nokia.com>2010-05-27 16:05:02 +0200
commite3c1d7d45146fe99ef766a043c9d9eca3b4e22ed (patch)
tree9347f57a1e806ca4e38d89388f0139bee61d0618
parent536b3fb03ace6d49697d0cda19368133672de778 (diff)
Small improvements for flick gesture
-rw-r--r--scroller/qflickgesture.cpp29
-rw-r--r--scroller/qkineticscroller.cpp8
2 files changed, 23 insertions, 14 deletions
diff --git a/scroller/qflickgesture.cpp b/scroller/qflickgesture.cpp
index a1eef75..6fa9dde 100644
--- a/scroller/qflickgesture.cpp
+++ b/scroller/qflickgesture.cpp
@@ -128,7 +128,7 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
event->type() == QEvent::MouseButtonRelease) )
return QGestureRecognizer::Ignore | QGestureRecognizer::ConsumeEventHint;
- qDebug()<<"recognize event: "<<event<<"target:"<<d->target<<"scroller:"<<d->scroller();
+ // qDebug()<<"recognize event: "<<event<<"target:"<<d->target<<"scroller:"<<d->scroller();
QKineticScroller::State oldState = scroller->state();
@@ -158,12 +158,25 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
case QEvent::TouchBegin:
scroller->handleInput(QKineticScroller::InputPress, tp.pos(), timestamp);
break;
+ // return QGestureRecognizer::MayBeGesture;
case QEvent::TouchEnd:
scroller->handleInput(QKineticScroller::InputRelease, tp.pos(), timestamp);
break;
+ /*
+ if (oldState == QKineticScroller::StatePressed)
+ return QGestureRecognizer::CancelGesture;
+ else
+ return QGestureRecognizer::FinishGesture | QGestureRecognizer::ConsumeEventHint;
+ */
case QEvent::TouchUpdate:
scroller->handleInput(QKineticScroller::InputMove, tp.pos(), timestamp);
break;
+ /*
+ if (scroller->state() == QKineticScroller::StatePressed)
+ return QGestureRecognizer::MayBeGesture;
+ else
+ return QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint;
+ */
default:
break;
}
@@ -179,19 +192,19 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
QGestureRecognizer::FinishGesture | QGestureRecognizer::ConsumeEventHint},
// new state pressed
{QGestureRecognizer::MayBeGesture,
- QGestureRecognizer::MayBeGesture,
+ QGestureRecognizer::Ignore,
QGestureRecognizer::FinishGesture | QGestureRecognizer::ConsumeEventHint,
QGestureRecognizer::FinishGesture | QGestureRecognizer::ConsumeEventHint},
// new state dragging
{QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint,
QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint,
- QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint,
- QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint},
+ QGestureRecognizer::Ignore | QGestureRecognizer::ConsumeEventHint,
+ QGestureRecognizer::Ignore | QGestureRecognizer::ConsumeEventHint},
// new state scrolling
{QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint,
QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint,
- QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint,
- QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint}
+ QGestureRecognizer::Ignore | QGestureRecognizer::ConsumeEventHint,
+ QGestureRecognizer::Ignore | QGestureRecognizer::ConsumeEventHint}
};
return resultMatrix[(int)newState][(int)oldState];
@@ -199,9 +212,7 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
void QFlickGestureRecognizer::reset(QGesture *state)
{
- QFlickGesture *flick = static_cast<QFlickGesture*>(state);
- flick->d->target = 0;
- flick->d->timer.start();
+ // carefull here: the gesture is reset if we cancel or finishe the gesture.
QGestureRecognizer::reset(state);
}
diff --git a/scroller/qkineticscroller.cpp b/scroller/qkineticscroller.cpp
index 75556a4..e031ec1 100644
--- a/scroller/qkineticscroller.cpp
+++ b/scroller/qkineticscroller.cpp
@@ -52,7 +52,7 @@ QT_BEGIN_NAMESPACE
bool qt_sendSpontaneousEvent(QObject *receiver, QEvent *event);
-#define KINETIC_SCROLLER_DEBUG
+// #define KINETIC_SCROLLER_DEBUG
#ifdef KINETIC_SCROLLER_DEBUG
# define qKSDebug qDebug
@@ -339,7 +339,6 @@ bool QKineticScroller::handleInput(Input input, const QPointF &position, qint64
{
Q_D(QKineticScroller);
-
qKSDebug() << "QKS::handleInput(" << input << ", " << position << ", " << timestamp << ")";
struct statechange {
State state;
@@ -361,7 +360,7 @@ bool QKineticScroller::handleInput(Input input, const QPointF &position, qint64
statechange *sc = statechanges + i;
if (d->state == sc->state && input == sc->input)
- return (d->*sc->handler)(input, position, timestamp);
+ return (d->*sc->handler)(input, position - d->overshootPosition, timestamp);
}
qWarning() << "Unhandled input: got input " << d->inputName(input) << " while in state " << d->stateName(d->state);
@@ -655,10 +654,9 @@ void QKineticScrollerPrivate::handleDrag(const QPointF &position, qint64 timesta
bool QKineticScrollerPrivate::pressWhileInactive(QKineticScroller::Input, const QPointF &position, qint64 timestamp)
{
QScrollPrepareEvent spe(position);
- qDebug() << "Sending prepare event to "<<receiver;
sendEvent(receiver, &spe);
- qDebug() << "Returned with "<<spe.isAccepted()<<"for"<<spe.target();
+ qKSDebug() << "QScrollPrepareEvent returned with "<<spe.isAccepted()<<"for"<<spe.target();
if (spe.isAccepted() && spe.target()) {
target = spe.target();
viewportSize = spe.viewportSize();