aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Guminiak <michal.guminiak@teleca.com>2011-01-07 10:30:55 +0100
committerDominik Kapusta <dominik.kapusta@teleca.com>2011-01-07 10:38:58 +0100
commitf5eea42b7c3ebe31fcd22e0bf9e397f3261ede7a (patch)
treed37f11cd7f57a01c7b62f154eae200357b4c6e32
parent007270faed92e3ca9d2631d490c0a757a1f668b4 (diff)
Fixes: NB#216528 - MSwipeRecognizer should use QElapsedTimer instead of QTime
RevBy: to be done Details: changes the swipe recognizer so that it uses QElapsedTimer instead of QTime. Also updates unittest for it.
-rw-r--r--src/corelib/events/mswipegesture.cpp2
-rw-r--r--src/corelib/events/mswipegesture_p.h3
-rw-r--r--src/corelib/events/mswiperecognizer.cpp8
-rw-r--r--tests/ut_mswiperecognizer/ut_mswiperecognizer.cpp10
4 files changed, 16 insertions, 7 deletions
diff --git a/src/corelib/events/mswipegesture.cpp b/src/corelib/events/mswipegesture.cpp
index b9d0711e..8882d30e 100644
--- a/src/corelib/events/mswipegesture.cpp
+++ b/src/corelib/events/mswipegesture.cpp
@@ -24,7 +24,7 @@ MSwipeGesture::MSwipeGesture(QObject* parent) :
recognizedAngle(0),
prevDistance(0),
startPosition(QPointF()),
- time(QTime())
+ timer(QElapsedTimer())
{
}
diff --git a/src/corelib/events/mswipegesture_p.h b/src/corelib/events/mswipegesture_p.h
index 14636e01..300f4862 100644
--- a/src/corelib/events/mswipegesture_p.h
+++ b/src/corelib/events/mswipegesture_p.h
@@ -21,6 +21,7 @@
#define MSWIPEGESTURE_P_H
#include <QSwipeGesture>
+#include <QElapsedTimer>
//! \internal
@@ -66,7 +67,7 @@ private:
/*!
Time of the initial mousepress used to check if the swipe gesture is fast enough.
*/
- QTime time;
+ QElapsedTimer timer;
friend class MSwipeRecognizer;
friend class MSwipeRecognizerPrivate;
diff --git a/src/corelib/events/mswiperecognizer.cpp b/src/corelib/events/mswiperecognizer.cpp
index ab69cd10..c487d1e4 100644
--- a/src/corelib/events/mswiperecognizer.cpp
+++ b/src/corelib/events/mswiperecognizer.cpp
@@ -26,7 +26,7 @@
#include "mtheme.h"
#include <QEvent>
-#include <QBasicTimer>
+#include <QElapsedTimer>
#include <QGraphicsSceneMouseEvent>
#include <QTouchEvent>
#include <QLineF>
@@ -69,7 +69,7 @@ void MSwipeRecognizerPrivate::snapToRightAngle(MSwipeGesture *swipeGesture)
QGestureRecognizer::Result MSwipeRecognizerPrivate::startRecognition(MSwipeGesture *swipeGesture, const QMouseEvent *mouseEvent)
{
- swipeGesture->time = QTime::currentTime();
+ swipeGesture->timer.start();
swipeGesture->startPosition = mouseEvent->globalPos();
swipeGesture->setHotSpot(mouseEvent->globalPos());
@@ -83,7 +83,7 @@ QGestureRecognizer::Result MSwipeRecognizerPrivate::updateRecognition(MSwipeGest
//Swipe angle is equal to the angle of a line between starting position and current position.
swipeGesture->setSwipeAngle(QLineF(swipeGesture->startPosition, mouseEvent->globalPos()).angle());
- int elapsedTime = swipeGesture->time.msecsTo(QTime::currentTime());
+ int elapsedTime = swipeGesture->timer.elapsed();
if (swipeGesture->state() != Qt::NoGesture) {
//The gesture has already been recognized, check if the user didn't change direction.
@@ -189,7 +189,7 @@ void MSwipeRecognizer::reset(QGesture* state)
swipeGesture->recognizedAngle = 0;
swipeGesture->prevDistance = 0;
swipeGesture->startPosition = QPointF();
- swipeGesture->time = QTime();
+ swipeGesture->timer.invalidate();
QGestureRecognizer::reset(swipeGesture);
}
diff --git a/tests/ut_mswiperecognizer/ut_mswiperecognizer.cpp b/tests/ut_mswiperecognizer/ut_mswiperecognizer.cpp
index 65ec460f..af04de30 100644
--- a/tests/ut_mswiperecognizer/ut_mswiperecognizer.cpp
+++ b/tests/ut_mswiperecognizer/ut_mswiperecognizer.cpp
@@ -127,6 +127,12 @@ void Ut_MSwipeRecognizer::testFastTap()
QCOMPARE( currentState, QGestureRecognizer::CancelGesture);
}
+qint64 elapsedTime = 0;
+qint64 QElapsedTimer::elapsed() const
+{
+ return elapsedTime;
+}
+
void Ut_MSwipeRecognizer::testTimedout()
{
QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(0,0), QPoint(0,0), Qt::LeftButton, Qt::LeftButton, 0);
@@ -136,11 +142,13 @@ void Ut_MSwipeRecognizer::testTimedout()
currentState = recognizer->recognize(swipeGesture, 0, &pressEvent);
QCOMPARE( currentState, QGestureRecognizer::MayBeGesture);
- swipeGesture->time = QTime().currentTime().addSecs(-3);
+ elapsedTime = 3000;
currentState = recognizer->recognize(swipeGesture, 0, &moveEvent);
QCOMPARE( currentState, QGestureRecognizer::CancelGesture);
+ elapsedTime = 0;
+
}
void Ut_MSwipeRecognizer::testZigzagged()