diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2019-03-26 10:33:13 +0100 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2019-04-02 14:24:15 +0000 |
commit | 6a21c23bbb33afe3d318e425a6ea676ec260f716 (patch) | |
tree | 5ebca38112cf5e3798dc5e9187b9b7ca04623a5c /src/quick/handlers/qquickpinchhandler.cpp | |
parent | c370bea6b11a16ee83290411b0e2b63b241c1aee (diff) |
Refactor QQuickMultiPointHandler into public and private classes
Change-Id: Iec19664862bfbbf9a6c582dac441dda26eec57db
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Diffstat (limited to 'src/quick/handlers/qquickpinchhandler.cpp')
-rw-r--r-- | src/quick/handlers/qquickpinchhandler.cpp | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/quick/handlers/qquickpinchhandler.cpp b/src/quick/handlers/qquickpinchhandler.cpp index d6aa39dc0d..1bee656fc3 100644 --- a/src/quick/handlers/qquickpinchhandler.cpp +++ b/src/quick/handlers/qquickpinchhandler.cpp @@ -267,8 +267,8 @@ void QQuickPinchHandler::onActiveChanged() { QQuickMultiPointHandler::onActiveChanged(); if (active()) { - m_startAngles = angles(m_centroid.sceneGrabPosition()); - m_startDistance = averageTouchPointDistance(m_centroid.sceneGrabPosition()); + m_startAngles = angles(centroid().sceneGrabPosition()); + m_startDistance = averageTouchPointDistance(centroid().sceneGrabPosition()); m_activeRotation = 0; m_activeTranslation = QVector2D(); if (const QQuickItem *t = target()) { @@ -288,7 +288,7 @@ void QQuickPinchHandler::onActiveChanged() void QQuickPinchHandler::handlePointerEventImpl(QQuickPointerEvent *event) { if (Q_UNLIKELY(lcPinchHandler().isDebugEnabled())) { - for (const QQuickHandlerPoint &p : m_currentPoints) + for (const QQuickHandlerPoint &p : currentPoints()) qCDebug(lcPinchHandler) << hex << p.id() << p.sceneGrabPosition() << "->" << p.scenePosition(); } QQuickMultiPointHandler::handlePointerEventImpl(event); @@ -296,13 +296,13 @@ void QQuickPinchHandler::handlePointerEventImpl(QQuickPointerEvent *event) qreal dist = 0; #if QT_CONFIG(gestures) if (const auto gesture = event->asPointerNativeGestureEvent()) { - m_centroid.reset(event->point(0)); + mutableCentroid().reset(event->point(0)); switch (gesture->type()) { case Qt::EndNativeGesture: m_activeScale = 1; m_activeRotation = 0; m_activeTranslation = QVector2D(); - m_centroid.reset(); + mutableCentroid().reset(); setActive(false); emit updated(); return; @@ -327,7 +327,7 @@ void QQuickPinchHandler::handlePointerEventImpl(QQuickPointerEvent *event) { const bool containsReleasedPoints = event->isReleaseEvent(); QVector<QQuickEventPoint *> chosenPoints; - for (const QQuickHandlerPoint &p : m_currentPoints) { + for (const QQuickHandlerPoint &p : currentPoints()) { QQuickEventPoint *ep = event->pointById(p.id()); chosenPoints << ep; } @@ -335,8 +335,8 @@ void QQuickPinchHandler::handlePointerEventImpl(QQuickPointerEvent *event) // Verify that at least one of the points has moved beyond threshold needed to activate the handler int numberOfPointsDraggedOverThreshold = 0; QVector2D accumulatedDrag; - const QVector2D currentCentroid(m_centroid.scenePosition()); - const QVector2D pressCentroid(m_centroid.scenePressPosition()); + const QVector2D currentCentroid(centroid().scenePosition()); + const QVector2D pressCentroid(centroid().scenePressPosition()); QStyleHints *styleHints = QGuiApplication::styleHints(); const int dragThreshold = styleHints->startDragDistance(); @@ -404,9 +404,9 @@ void QQuickPinchHandler::handlePointerEventImpl(QQuickPointerEvent *event) } const bool requiredNumberOfPointsDraggedOverThreshold = numberOfPointsDraggedOverThreshold >= minimumPointCount() && numberOfPointsDraggedOverThreshold <= maximumPointCount(); - accumulatedMovementMagnitude /= m_currentPoints.count(); + accumulatedMovementMagnitude /= currentPoints().count(); - QVector2D avgDrag = accumulatedDrag / m_currentPoints.count(); + QVector2D avgDrag = accumulatedDrag / currentPoints().count(); if (!xAxis()->enabled()) avgDrag.setX(0); if (!yAxis()->enabled()) @@ -439,12 +439,12 @@ void QQuickPinchHandler::handlePointerEventImpl(QQuickPointerEvent *event) // avoid mapping the minima and maxima, as they might have unmappable values // such as -inf/+inf. Because of this we perform the bounding to min/max in local coords. // 1. scale - dist = averageTouchPointDistance(m_centroid.scenePosition()); + dist = averageTouchPointDistance(centroid().scenePosition()); m_activeScale = dist / m_startDistance; m_activeScale = qBound(m_minimumScale/m_startScale, m_activeScale, m_maximumScale/m_startScale); // 2. rotate - QVector<PointData> newAngles = angles(m_centroid.scenePosition()); + QVector<PointData> newAngles = angles(centroid().scenePosition()); const qreal angleDelta = averageAngleDelta(m_startAngles, newAngles); m_activeRotation += angleDelta; m_startAngles = std::move(newAngles); @@ -459,9 +459,9 @@ void QQuickPinchHandler::handlePointerEventImpl(QQuickPointerEvent *event) m_accumulatedScale = m_startScale * m_activeScale; if (target() && target()->parentItem()) { - const QPointF centroidParentPos = target()->parentItem()->mapFromScene(m_centroid.scenePosition()); + const QPointF centroidParentPos = target()->parentItem()->mapFromScene(centroid().scenePosition()); // 3. Drag/translate - const QPointF centroidStartParentPos = target()->parentItem()->mapFromScene(m_centroid.sceneGrabPosition()); + const QPointF centroidStartParentPos = target()->parentItem()->mapFromScene(centroid().sceneGrabPosition()); m_activeTranslation = QVector2D(centroidParentPos - centroidStartParentPos); // apply rotation + scaling around the centroid - then apply translation. QMatrix4x4 mat, startMatrix; @@ -499,10 +499,10 @@ void QQuickPinchHandler::handlePointerEventImpl(QQuickPointerEvent *event) target()->setRotation(rotation); target()->setScale(m_accumulatedScale); } else { - m_activeTranslation = QVector2D(m_centroid.scenePosition() - m_centroid.scenePressPosition()); + m_activeTranslation = QVector2D(centroid().scenePosition() - centroid().scenePressPosition()); } - qCDebug(lcPinchHandler) << "centroid" << m_centroid.scenePressPosition() << "->" << m_centroid.scenePosition() + qCDebug(lcPinchHandler) << "centroid" << centroid().scenePressPosition() << "->" << centroid().scenePosition() << ", distance" << m_startDistance << "->" << dist << ", startScale" << m_startScale << "->" << m_accumulatedScale << ", activeRotation" << m_activeRotation |