From e05511a3649b046557a61ef21cb1836627ad5449 Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Thu, 9 Jan 2020 12:25:54 +0100 Subject: Pad Navigator example: Remove duplicated property animations The example created two QPropertyAnimation instances that controlled the same property; this caused a clash for some transitions. Remove the smoothFlipXRotation and smoothFlipYRotation animations; they are not needed as equivalent animations are already set as defaults for the state machine. Fixes: QTBUG-28081 Change-Id: Ifa7a09d48cd4905df720e3327914320ed74ebae6 Reviewed-by: Paul Wicking --- examples/widgets/doc/src/padnavigator.qdoc | 21 +++++++++++---------- .../graphicsview/padnavigator/padnavigator.cpp | 8 -------- 2 files changed, 11 insertions(+), 18 deletions(-) (limited to 'examples') diff --git a/examples/widgets/doc/src/padnavigator.qdoc b/examples/widgets/doc/src/padnavigator.qdoc index e59fa3cdbe..d8e83978cf 100644 --- a/examples/widgets/doc/src/padnavigator.qdoc +++ b/examples/widgets/doc/src/padnavigator.qdoc @@ -387,17 +387,12 @@ \snippet graphicsview/padnavigator/padnavigator.cpp 7 We now create the animations that control the flip-effect when you press - the enter key. The main goal is to rotate the pad by 180 degrees or back, - but we also need to make sure the selection item's tilt rotations are reset - back to 0 when the pad is flipped, and restored back to their original - values when flipped back: + the enter key. The main goal is to rotate the pad by 180 degrees or back. \list \li \c smoothFlipRotation: Animates the main 180 degree rotation of the pad. \li \c smoothFlipScale: Scales the pad out and then in again while the pad is rotating. - \li \c smoothFlipXRotation: Animates the selection item's X-tilt to 0 and back. - \li \c smoothFlipYRotation: Animates the selection item's Y-tilt to 0 and back. - \li \c flipAnimation: A parallel animation group that ensures all the above animations are run in parallel. + \li \c flipAnimation: A parallel animation group that ensures the above animations are run in parallel. \endlist All animations are given a 500 millisecond duration and an @@ -447,11 +442,17 @@ Each state assigns specific properties to objects on entry. Most interesting perhaps is the assignment of the value 0.0 to the pad's \c flipRotation angle property when in \c frontState, and 180.0 when in \c - backState. At the end of this section we register default animations with - the state engine; these animations will apply to their respective objects - and properties for any state transition. Otherwise it's common to assign + backState. + + At the end of this section we register default animations with the state + engine; these animations will apply to their respective objects and + properties for any state transition. Otherwise it's common to assign animations to specific transitions. + Specifically, we use default animations to control the selection item's + movement and tilt rotations. The tilt rotations are set to 0 when the pad + is flipped, and restored back to their original values when flipped back. + The \c splashState state is set as the initial state. This is required before we start the state engine. We proceed with creating some transitions. diff --git a/examples/widgets/graphicsview/padnavigator/padnavigator.cpp b/examples/widgets/graphicsview/padnavigator/padnavigator.cpp index b9ce2a47ca..dbf89dd318 100644 --- a/examples/widgets/graphicsview/padnavigator/padnavigator.cpp +++ b/examples/widgets/graphicsview/padnavigator/padnavigator.cpp @@ -142,24 +142,16 @@ PadNavigator::PadNavigator(const QSize &size, QWidget *parent) // Flip animation setup QPropertyAnimation *smoothFlipRotation = new QPropertyAnimation(flipRotation, "angle"); QPropertyAnimation *smoothFlipScale = new QPropertyAnimation(pad, "scale"); - QPropertyAnimation *smoothFlipXRotation = new QPropertyAnimation(xRotation, "angle"); - QPropertyAnimation *smoothFlipYRotation = new QPropertyAnimation(yRotation, "angle"); QParallelAnimationGroup *flipAnimation = new QParallelAnimationGroup(this); smoothFlipScale->setDuration(500); smoothFlipRotation->setDuration(500); - smoothFlipXRotation->setDuration(500); - smoothFlipYRotation->setDuration(500); smoothFlipScale->setEasingCurve(QEasingCurve::InOutQuad); smoothFlipRotation->setEasingCurve(QEasingCurve::InOutQuad); - smoothFlipXRotation->setEasingCurve(QEasingCurve::InOutQuad); - smoothFlipYRotation->setEasingCurve(QEasingCurve::InOutQuad); smoothFlipScale->setKeyValueAt(0, qvariant_cast(1.0)); smoothFlipScale->setKeyValueAt(0.5, qvariant_cast(0.7)); smoothFlipScale->setKeyValueAt(1, qvariant_cast(1.0)); flipAnimation->addAnimation(smoothFlipRotation); flipAnimation->addAnimation(smoothFlipScale); - flipAnimation->addAnimation(smoothFlipXRotation); - flipAnimation->addAnimation(smoothFlipYRotation); //! [7] //! [8] -- cgit v1.2.3