diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-01-02 17:42:29 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-01-03 09:43:00 +0000 |
commit | 76483fe4cfae782c045119d660e77627b4fc9a25 (patch) | |
tree | be5e6e772cb39be621ef0ea21f636e1cb9aafad2 /src/quicktemplates2/qquickslider.cpp | |
parent | f15468cf9e5c440518a7af9a265234bff8e6c627 (diff) |
QQuickSlider: operate on floating point coordinates
Store the press point as QPointF, and pass also QPointF to
QQuickSliderPrivate::positionAt(). This makes it easier to
add touch event handling later.
Change-Id: I4555350002ff35cafe4d3260ba702b662286d1bd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickslider.cpp')
-rw-r--r-- | src/quicktemplates2/qquickslider.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/quicktemplates2/qquickslider.cpp b/src/quicktemplates2/qquickslider.cpp index 6084bed7..d9d5eaf6 100644 --- a/src/quicktemplates2/qquickslider.cpp +++ b/src/quicktemplates2/qquickslider.cpp @@ -95,7 +95,7 @@ public: } qreal snapPosition(qreal position) const; - qreal positionAt(const QPoint &point) const; + qreal positionAt(const QPointF &point) const; void setPosition(qreal position); void updatePosition(); @@ -106,7 +106,7 @@ public: qreal stepSize; bool live; bool pressed; - QPoint pressPoint; + QPointF pressPoint; Qt::Orientation orientation; QQuickSlider::SnapMode snapMode; QQuickItem *handle; @@ -125,7 +125,7 @@ qreal QQuickSliderPrivate::snapPosition(qreal position) const return qRound(position / effectiveStep) * effectiveStep; } -qreal QQuickSliderPrivate::positionAt(const QPoint &point) const +qreal QQuickSliderPrivate::positionAt(const QPointF &point) const { Q_Q(const QQuickSlider); qreal pos = 0.0; @@ -560,7 +560,7 @@ void QQuickSlider::mousePressEvent(QMouseEvent *event) { Q_D(QQuickSlider); QQuickControl::mousePressEvent(event); - d->pressPoint = event->pos(); + d->pressPoint = event->localPos(); setPressed(true); } @@ -570,13 +570,13 @@ void QQuickSlider::mouseMoveEvent(QMouseEvent *event) QQuickControl::mouseMoveEvent(event); if (!keepMouseGrab()) { if (d->orientation == Qt::Horizontal) - setKeepMouseGrab(QQuickWindowPrivate::dragOverThreshold(event->pos().x() - d->pressPoint.x(), Qt::XAxis, event)); + setKeepMouseGrab(QQuickWindowPrivate::dragOverThreshold(event->localPos().x() - d->pressPoint.x(), Qt::XAxis, event)); else - setKeepMouseGrab(QQuickWindowPrivate::dragOverThreshold(event->pos().y() - d->pressPoint.y(), Qt::YAxis, event)); + setKeepMouseGrab(QQuickWindowPrivate::dragOverThreshold(event->localPos().y() - d->pressPoint.y(), Qt::YAxis, event)); } if (keepMouseGrab()) { const qreal oldPos = d->position; - qreal pos = d->positionAt(event->pos()); + qreal pos = d->positionAt(event->localPos()); if (d->snapMode == SnapAlways) pos = d->snapPosition(pos); if (d->live) @@ -592,9 +592,9 @@ void QQuickSlider::mouseReleaseEvent(QMouseEvent *event) { Q_D(QQuickSlider); QQuickControl::mouseReleaseEvent(event); - d->pressPoint = QPoint(); + d->pressPoint = QPointF(); const qreal oldPos = d->position; - qreal pos = d->positionAt(event->pos()); + qreal pos = d->positionAt(event->localPos()); if (d->snapMode != NoSnap) pos = d->snapPosition(pos); qreal val = valueAt(pos); @@ -612,7 +612,7 @@ void QQuickSlider::mouseUngrabEvent() { Q_D(QQuickSlider); QQuickControl::mouseUngrabEvent(); - d->pressPoint = QPoint(); + d->pressPoint = QPointF(); setPressed(false); } |