From 4ffa4881a8e7a8da85029aaf834aadca9ede0b91 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 25 Nov 2011 15:22:09 +1000 Subject: Remove ints from mouse event handling. Change-Id: Icda13ae3644dc274e08e626545df75d3e561cf87 Reviewed-by: Michael Brasser --- src/declarative/items/qquickevents_p_p.h | 18 +++++++++--------- src/declarative/items/qquickflickable.cpp | 6 +++--- .../qquickmousearea/tst_qquickmousearea.cpp | 9 ++++----- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/declarative/items/qquickevents_p_p.h b/src/declarative/items/qquickevents_p_p.h index cbe75ab9bf..cc5ed4f01e 100644 --- a/src/declarative/items/qquickevents_p_p.h +++ b/src/declarative/items/qquickevents_p_p.h @@ -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; diff --git a/src/declarative/items/qquickflickable.cpp b/src/declarative/items/qquickflickable.cpp index 0c24aa35b4..2f7b74453e 100644 --- a/src/declarative/items/qquickflickable.cpp +++ b/src/declarative/items/qquickflickable.cpp @@ -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; diff --git a/tests/auto/declarative/qquickmousearea/tst_qquickmousearea.cpp b/tests/auto/declarative/qquickmousearea/tst_qquickmousearea.cpp index 23b5fa022b..ac1eea7a41 100644 --- a/tests/auto/declarative/qquickmousearea/tst_qquickmousearea.cpp +++ b/tests/auto/declarative/qquickmousearea/tst_qquickmousearea.cpp @@ -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()); -- cgit v1.2.3