aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/handlers/qquickdraghandler.cpp
diff options
context:
space:
mode:
authorJan Arve Saether <jan-arve.saether@qt.io>2016-12-23 15:35:43 +0100
committerShawn Rutledge <shawn.rutledge@qt.io>2016-12-29 15:13:08 +0000
commit9aa0e84d974d86cf9366714107e9c84dcde15490 (patch)
tree71247c93da66322cceca7ab1d62c3bedaee77458 /src/quick/handlers/qquickdraghandler.cpp
parentde3896d2ee2a57aad83eea237ef1c39e3581190b (diff)
Add a DragHandler::translation property
This allows the application developer to get the translation of the dragged pointer, and apply it in a custom way. This should usually be combined with setting target to null. This will for instance be needed when we want to drag QtLocations map, where a map is dragged by specifying the geo location of the center of the map. The map2.qml example demonstrates this. Change-Id: I652d9fc92fa9b6dfd3796c7147832f25af0cc5bc Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick/handlers/qquickdraghandler.cpp')
-rw-r--r--src/quick/handlers/qquickdraghandler.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/quick/handlers/qquickdraghandler.cpp b/src/quick/handlers/qquickdraghandler.cpp
index dc3116e300..945d60119d 100644
--- a/src/quick/handlers/qquickdraghandler.cpp
+++ b/src/quick/handlers/qquickdraghandler.cpp
@@ -88,6 +88,7 @@ void QQuickDragHandler::handleEventPoint(QQuickEventPoint *point)
if (!m_yAxis.enabled())
delta.setY(0);
if (active()) {
+ setTranslation(delta);
if (target() && target()->parentItem()) {
QPointF pos = target()->parentItem()->mapFromScene(m_startPos + delta);
enforceAxisConstraints(&pos);
@@ -122,6 +123,15 @@ void QQuickDragHandler::enforceAxisConstraints(QPointF *localPos)
localPos->setY(qBound(m_yAxis.minimum(), localPos->y(), m_yAxis.maximum()));
}
+void QQuickDragHandler::setTranslation(const QPointF &trans)
+{
+ if (trans == m_translation) // fuzzy compare?
+ return;
+ m_translation = trans;
+ emit translationChanged();
+}
+
+
QQuickDragAxis::QQuickDragAxis()
: m_minimum(-DBL_MAX)
, m_maximum(DBL_MAX)