Remove ints from mouse event handling.
authorMartin Jones <martin.jones@nokia.com>
Fri, 25 Nov 2011 05:22:09 +0000 (15:22 +1000)
committerQt by Nokia <qt-info@nokia.com>
Fri, 25 Nov 2011 07:10:20 +0000 (08:10 +0100)
Change-Id: Icda13ae3644dc274e08e626545df75d3e561cf87
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
src/declarative/items/qquickevents_p_p.h
src/declarative/items/qquickflickable.cpp
tests/auto/declarative/qquickmousearea/tst_qquickmousearea.cpp

index cbe75ab..cc5ed4f 100644 (file)
@@ -94,8 +94,8 @@ private:
 class Q_DECLARATIVE_EXPORT QQuickMouseEvent : public QObject
 {
     Q_OBJECT
-    Q_PROPERTY(int x READ x)
-    Q_PROPERTY(int y READ y)
+    Q_PROPERTY(qreal x READ x)
+    Q_PROPERTY(qreal y READ y)
     Q_PROPERTY(int button READ button)
     Q_PROPERTY(int buttons READ buttons)
     Q_PROPERTY(int modifiers READ modifiers)
@@ -104,13 +104,13 @@ class Q_DECLARATIVE_EXPORT QQuickMouseEvent : public QObject
     Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted)
 
 public:
-    QQuickMouseEvent(int x, int y, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers
+    QQuickMouseEvent(qreal x, qreal y, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers
                   , bool isClick=false, bool wasHeld=false)
         : _x(x), _y(y), _button(button), _buttons(buttons), _modifiers(modifiers)
           , _wasHeld(wasHeld), _isClick(isClick), _accepted(true) {}
 
-    int x() const { return _x; }
-    int y() const { return _y; }
+    qreal x() const { return _x; }
+    qreal y() const { return _y; }
     int button() const { return _button; }
     int buttons() const { return _buttons; }
     int modifiers() const { return _modifiers; }
@@ -118,16 +118,16 @@ public:
     bool isClick() const { return _isClick; }
 
     // only for internal usage
-    void setX(int x) { _x = x; }
-    void setY(int y) { _y = y; }
+    void setX(qreal x) { _x = x; }
+    void setY(qreal y) { _y = y; }
     void setPosition(const QPointF &point) { _x = point.x(); _y = point.y(); }
 
     bool isAccepted() { return _accepted; }
     void setAccepted(bool accepted) { _accepted = accepted; }
 
 private:
-    int _x;
-    int _y;
+    qreal _x;
+    qreal _y;
     Qt::MouseButton _button;
     Qt::MouseButtons _buttons;
     Qt::KeyboardModifiers _modifiers;
index 0c24aa3..2f7b744 100644 (file)
@@ -812,7 +812,7 @@ void QQuickFlickablePrivate::handleMousePressEvent(QMouseEvent *event)
     hData.dragMaxBound = q->maxXExtent();
     vData.dragMaxBound = q->maxYExtent();
     fixupMode = Normal;
-    lastPos = QPoint();
+    lastPos = QPointF();
     QQuickItemPrivate::start(lastPosTime);
     pressPos = event->localPos();
     hData.pressPos = hData.move.value();
@@ -835,7 +835,7 @@ void QQuickFlickablePrivate::handleMouseMoveEvent(QMouseEvent *event)
     bool stealX = stealMouse;
 
     if (q->yflick()) {
-        int dy = int(event->localPos().y() - pressPos.y());
+        qreal dy = event->localPos().y() - pressPos.y();
         if (qAbs(dy) > qApp->styleHints()->startDragDistance() || QQuickItemPrivate::elapsed(pressTime) > 200) {
             if (!vMoved)
                 vData.dragStartOffset = dy;
@@ -867,7 +867,7 @@ void QQuickFlickablePrivate::handleMouseMoveEvent(QMouseEvent *event)
     }
 
     if (q->xflick()) {
-        int dx = int(event->localPos().x() - pressPos.x());
+        qreal dx = event->localPos().x() - pressPos.x();
         if (qAbs(dx) > qApp->styleHints()->startDragDistance() || QQuickItemPrivate::elapsed(pressTime) > 200) {
             if (!hMoved)
                 hData.dragStartOffset = dx;
index 23b5fa0..ac1eea7 100644 (file)
@@ -326,12 +326,11 @@ void tst_QQuickMouseArea::updateMouseAreaPosOnResize()
     QVERIFY(!mouseRegion->property("emitPositionChanged").toBool());
     QVERIFY(mouseRegion->property("mouseMatchesPos").toBool());
 
-    QCOMPARE(mouseRegion->property("x1").toInt(), 0);
-    QCOMPARE(mouseRegion->property("y1").toInt(), 0);
+    QCOMPARE(mouseRegion->property("x1").toReal(), 0.0);
+    QCOMPARE(mouseRegion->property("y1").toReal(), 0.0);
 
-    // XXX: is it on purpose that mouseX is real and mouse.x is int?
-    QCOMPARE(mouseRegion->property("x2").toInt(), (int) rect->x());
-    QCOMPARE(mouseRegion->property("y2").toInt(), (int) rect->y());
+    QCOMPARE(mouseRegion->property("x2").toReal(), rect->x());
+    QCOMPARE(mouseRegion->property("y2").toReal(), rect->y());
 
     QCOMPARE(mouseRegion->mouseX(), rect->x());
     QCOMPARE(mouseRegion->mouseY(), rect->y());