PinchHandler: fix pedantic warnings

- qreal<->float conversions are explicit
- use qFuzzyCompare rather than ==
- remove padding between variables (but the class still needs padding)

Change-Id: I9a9eb01f5a4108592b34e4b2f018c720ba19beb0
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
This commit is contained in:
Shawn Rutledge 2019-01-25 10:42:45 +01:00
parent 63bbaf8379
commit dea0f1b1e6
2 changed files with 19 additions and 20 deletions

View File

@ -99,7 +99,7 @@ QQuickPinchHandler::QQuickPinchHandler(QQuickItem *parent)
*/ */
void QQuickPinchHandler::setMinimumScale(qreal minimumScale) void QQuickPinchHandler::setMinimumScale(qreal minimumScale)
{ {
if (m_minimumScale == minimumScale) if (qFuzzyCompare(m_minimumScale, minimumScale))
return; return;
m_minimumScale = minimumScale; m_minimumScale = minimumScale;
@ -114,7 +114,7 @@ void QQuickPinchHandler::setMinimumScale(qreal minimumScale)
*/ */
void QQuickPinchHandler::setMaximumScale(qreal maximumScale) void QQuickPinchHandler::setMaximumScale(qreal maximumScale)
{ {
if (m_maximumScale == maximumScale) if (qFuzzyCompare(m_maximumScale, maximumScale))
return; return;
m_maximumScale = maximumScale; m_maximumScale = maximumScale;
@ -129,7 +129,7 @@ void QQuickPinchHandler::setMaximumScale(qreal maximumScale)
*/ */
void QQuickPinchHandler::setMinimumRotation(qreal minimumRotation) void QQuickPinchHandler::setMinimumRotation(qreal minimumRotation)
{ {
if (m_minimumRotation == minimumRotation) if (qFuzzyCompare(m_minimumRotation, minimumRotation))
return; return;
m_minimumRotation = minimumRotation; m_minimumRotation = minimumRotation;
@ -144,7 +144,7 @@ void QQuickPinchHandler::setMinimumRotation(qreal minimumRotation)
*/ */
void QQuickPinchHandler::setMaximumRotation(qreal maximumRotation) void QQuickPinchHandler::setMaximumRotation(qreal maximumRotation)
{ {
if (m_maximumRotation == maximumRotation) if (qFuzzyCompare(m_maximumRotation, maximumRotation))
return; return;
m_maximumRotation = maximumRotation; m_maximumRotation = maximumRotation;
@ -158,7 +158,7 @@ void QQuickPinchHandler::setMaximumRotation(qreal maximumRotation)
*/ */
void QQuickPinchHandler::setMinimumX(qreal minX) void QQuickPinchHandler::setMinimumX(qreal minX)
{ {
if (m_minimumX == minX) if (qFuzzyCompare(m_minimumX, minX))
return; return;
m_minimumX = minX; m_minimumX = minX;
emit minimumXChanged(); emit minimumXChanged();
@ -171,7 +171,7 @@ void QQuickPinchHandler::setMinimumX(qreal minX)
*/ */
void QQuickPinchHandler::setMaximumX(qreal maxX) void QQuickPinchHandler::setMaximumX(qreal maxX)
{ {
if (m_maximumX == maxX) if (qFuzzyCompare(m_maximumX, maxX))
return; return;
m_maximumX = maxX; m_maximumX = maxX;
emit maximumXChanged(); emit maximumXChanged();
@ -184,7 +184,7 @@ void QQuickPinchHandler::setMaximumX(qreal maxX)
*/ */
void QQuickPinchHandler::setMinimumY(qreal minY) void QQuickPinchHandler::setMinimumY(qreal minY)
{ {
if (m_minimumY == minY) if (qFuzzyCompare(m_minimumY, minY))
return; return;
m_minimumY = minY; m_minimumY = minY;
emit minimumYChanged(); emit minimumYChanged();
@ -197,7 +197,7 @@ void QQuickPinchHandler::setMinimumY(qreal minY)
*/ */
void QQuickPinchHandler::setMaximumY(qreal maxY) void QQuickPinchHandler::setMaximumY(qreal maxY)
{ {
if (m_maximumY == maxY) if (qFuzzyCompare(m_maximumY, maxY))
return; return;
m_maximumY = maxY; m_maximumY = maxY;
emit maximumYChanged(); emit maximumYChanged();
@ -258,10 +258,10 @@ void QQuickPinchHandler::onActiveChanged()
m_startScale = t->scale(); // TODO incompatible with independent x/y scaling m_startScale = t->scale(); // TODO incompatible with independent x/y scaling
m_startRotation = t->rotation(); m_startRotation = t->rotation();
QVector3D xformOrigin(t->transformOriginPoint()); QVector3D xformOrigin(t->transformOriginPoint());
m_startMatrix.translate(t->x(), t->y()); m_startMatrix.translate(float(t->x()), float(t->y()));
m_startMatrix.translate(xformOrigin); m_startMatrix.translate(xformOrigin);
m_startMatrix.scale(m_startScale); m_startMatrix.scale(float(m_startScale));
m_startMatrix.rotate(m_startRotation, 0, 0, -1); m_startMatrix.rotate(float(m_startRotation), 0, 0, -1);
m_startMatrix.translate(-xformOrigin); m_startMatrix.translate(-xformOrigin);
} else { } else {
m_startScale = m_accumulatedScale; m_startScale = m_accumulatedScale;
@ -377,9 +377,9 @@ void QQuickPinchHandler::handlePointerEventImpl(QQuickPointerEvent *event)
QVector2D centroidRelativeMovement = currentCentroidRelativePosition - pressCentroidRelativePosition; QVector2D centroidRelativeMovement = currentCentroidRelativePosition - pressCentroidRelativePosition;
accumulatedMovementMagnitude += centroidRelativeMovement.length(); accumulatedMovementMagnitude += centroidRelativeMovement.length();
accumulatedCentroidDistance += pressCentroidRelativePosition.length(); accumulatedCentroidDistance += qreal(pressCentroidRelativePosition.length());
if (event->isPressEvent()) if (event->isPressEvent())
m_accumulatedStartCentroidDistance += (QVector2D(point->scenePressPosition()) - pressCentroid).length(); m_accumulatedStartCentroidDistance += qreal((QVector2D(point->scenePressPosition()) - pressCentroid).length());
} else { } else {
setPassiveGrab(point); setPassiveGrab(point);
} }
@ -400,7 +400,7 @@ void QQuickPinchHandler::handlePointerEventImpl(QQuickPointerEvent *event)
if (!yAxis()->enabled()) if (!yAxis()->enabled())
avgDrag.setY(0); avgDrag.setY(0);
const qreal centroidMovementDelta = (currentCentroid - pressCentroid).length(); const qreal centroidMovementDelta = qreal((currentCentroid - pressCentroid).length());
qreal distanceToCentroidDelta = qAbs(accumulatedCentroidDistance - m_accumulatedStartCentroidDistance); // Used to detect scale qreal distanceToCentroidDelta = qAbs(accumulatedCentroidDistance - m_accumulatedStartCentroidDistance); // Used to detect scale
if (numberOfPointsDraggedOverThreshold >= 1) { if (numberOfPointsDraggedOverThreshold >= 1) {
@ -456,8 +456,8 @@ void QQuickPinchHandler::handlePointerEventImpl(QQuickPointerEvent *event)
const QVector3D centroidParentVector(centroidParentPos); const QVector3D centroidParentVector(centroidParentPos);
mat.translate(centroidParentVector); mat.translate(centroidParentVector);
mat.rotate(m_activeRotation, 0, 0, 1); mat.rotate(float(m_activeRotation), 0, 0, 1);
mat.scale(m_activeScale); mat.scale(float(m_activeScale));
mat.translate(-centroidParentVector); mat.translate(-centroidParentVector);
mat.translate(QVector3D(m_activeTranslation)); mat.translate(QVector3D(m_activeTranslation));
@ -470,11 +470,11 @@ void QQuickPinchHandler::handlePointerEventImpl(QQuickPointerEvent *event)
if (xAxis()->enabled()) if (xAxis()->enabled())
pos.setX(qBound(xAxis()->minimum(), pos.x(), xAxis()->maximum())); pos.setX(qBound(xAxis()->minimum(), pos.x(), xAxis()->maximum()));
else else
pos.rx() -= m_activeTranslation.x(); pos.rx() -= qreal(m_activeTranslation.x());
if (yAxis()->enabled()) if (yAxis()->enabled())
pos.setY(qBound(yAxis()->minimum(), pos.y(), yAxis()->maximum())); pos.setY(qBound(yAxis()->minimum(), pos.y(), yAxis()->maximum()));
else else
pos.ry() -= m_activeTranslation.y(); pos.ry() -= qreal(m_activeTranslation.y());
target()->setPosition(pos); target()->setPosition(pos);
target()->setRotation(rotation); target()->setRotation(rotation);

View File

@ -150,10 +150,9 @@ private:
qreal m_startDistance = 0; qreal m_startDistance = 0;
QPointF m_startPos; QPointF m_startPos;
qreal m_accumulatedStartCentroidDistance = 0; qreal m_accumulatedStartCentroidDistance = 0;
QVector<PointData> m_startAngles; QVector<PointData> m_startAngles;
QMatrix4x4 m_startMatrix;
QQuickMatrix4x4 m_transform; QQuickMatrix4x4 m_transform;
QMatrix4x4 m_startMatrix;
}; };
QT_END_NAMESPACE QT_END_NAMESPACE