aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickslider.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-01-02 17:42:29 +0100
committerJ-P Nurmi <jpnurmi@qt.io>2017-01-03 09:43:00 +0000
commit76483fe4cfae782c045119d660e77627b4fc9a25 (patch)
treebe5e6e772cb39be621ef0ea21f636e1cb9aafad2 /src/quicktemplates2/qquickslider.cpp
parentf15468cf9e5c440518a7af9a265234bff8e6c627 (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.cpp20
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);
}