diff options
author | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2019-02-09 11:14:37 +0100 |
---|---|---|
committer | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2019-02-23 07:18:38 +0000 |
commit | 656ce9fa9dd1a5cb268f8e3225b2ed65c05365db (patch) | |
tree | 9950d35c02e1808fee65b5d029f45f7c529e9b28 /src/widgets/graphicsview | |
parent | 2be7746e0922fa404da567fd0bc0cbc00c6215cb (diff) |
QGraphicsItemAnimation: add transformAt() an deprecate matrixAt()
Replace QGraphicsItemAnimation::matrixAt(qreal) with transformAt(qreal)
to avoid the usage of QMatrix which is deprecated.
Change-Id: Iafcdf8b9b2fbffffa61417601a3ae4272d0176c6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/widgets/graphicsview')
-rw-r--r-- | src/widgets/graphicsview/qgraphicsitemanimation.cpp | 33 | ||||
-rw-r--r-- | src/widgets/graphicsview/qgraphicsitemanimation.h | 5 |
2 files changed, 29 insertions, 9 deletions
diff --git a/src/widgets/graphicsview/qgraphicsitemanimation.cpp b/src/widgets/graphicsview/qgraphicsitemanimation.cpp index 78b91d5c39..ad77e2f260 100644 --- a/src/widgets/graphicsview/qgraphicsitemanimation.cpp +++ b/src/widgets/graphicsview/qgraphicsitemanimation.cpp @@ -115,7 +115,7 @@ public: QGraphicsItem *item; QPointF startPos; - QMatrix startMatrix; + QTransform startTransform; qreal step; @@ -294,23 +294,38 @@ QList<QPair<qreal, QPointF> > QGraphicsItemAnimation::posList() const return list; } +#if QT_DEPRECATED_SINCE(5, 14) /*! Returns the matrix used to transform the item at the specified \a step value. + + \obsolete Use transformAt() instead */ QMatrix QGraphicsItemAnimation::matrixAt(qreal step) const { check_step_valid(step, "matrixAt"); + return transformAt(step).toAffine(); +} +#endif + +/*! + Returns the transform used for the item at the specified \a step value. + + \since 5.14 +*/ +QTransform QGraphicsItemAnimation::transformAt(qreal step) const +{ + check_step_valid(step, "transformAt"); - QMatrix matrix; + QTransform transform; if (!d->rotation.isEmpty()) - matrix.rotate(rotationAt(step)); + transform.rotate(rotationAt(step)); if (!d->verticalScale.isEmpty()) - matrix.scale(horizontalScaleAt(step), verticalScaleAt(step)); + transform.scale(horizontalScaleAt(step), verticalScaleAt(step)); if (!d->verticalShear.isEmpty()) - matrix.shear(horizontalShearAt(step), verticalShearAt(step)); + transform.shear(horizontalShearAt(step), verticalShearAt(step)); if (!d->xTranslation.isEmpty()) - matrix.translate(xTranslationAt(step), yTranslationAt(step)); - return matrix; + transform.translate(xTranslationAt(step), yTranslationAt(step)); + return transform; } /*! @@ -542,7 +557,7 @@ void QGraphicsItemAnimation::setStep(qreal step) || !d->horizontalShear.isEmpty() || !d->xTranslation.isEmpty() || !d->yTranslation.isEmpty()) { - d->item->setMatrix(d->startMatrix * matrixAt(step)); + d->item->setTransform(d->startTransform * transformAt(step)); } } @@ -562,7 +577,7 @@ void QGraphicsItemAnimation::reset() if (!d->item) return; d->startPos = d->item->pos(); - d->startMatrix = d->item->matrix(); + d->startTransform = d->item->transform(); } #endif diff --git a/src/widgets/graphicsview/qgraphicsitemanimation.h b/src/widgets/graphicsview/qgraphicsitemanimation.h index f983bd8026..3051fb2e2b 100644 --- a/src/widgets/graphicsview/qgraphicsitemanimation.h +++ b/src/widgets/graphicsview/qgraphicsitemanimation.h @@ -51,6 +51,7 @@ class QGraphicsItem; class QMatrix; class QPointF; class QTimeLine; +class QTransform; template <class T1, class T2> struct QPair; class QGraphicsItemAnimationPrivate; @@ -71,7 +72,11 @@ public: QList<QPair<qreal, QPointF> > posList() const; void setPosAt(qreal step, const QPointF &pos); +#if QT_DEPRECATED_SINCE(5, 14) + QT_DEPRECATED_X("Use transformAt() instead") QMatrix matrixAt(qreal step) const; +#endif + QTransform transformAt(qreal step) const; qreal rotationAt(qreal step) const; QList<QPair<qreal, qreal> > rotationList() const; |