Correctly set duration and easing for AnchorAnimation.
authorMichael Brasser <michael.brasser@nokia.com>
Mon, 27 Feb 2012 23:48:27 +0000 (09:48 +1000)
committerQt by Nokia <qt-info@nokia.com>
Tue, 28 Feb 2012 00:42:05 +0000 (01:42 +0100)
Task-number: QTBUG-24532
Change-Id: I3aad9cd8281b954896c2c1d44b2dcae68f913928
Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
src/quick/items/qquickanimation.cpp
tests/auto/qtquick2/qdeclarativeanimations/tst_qdeclarativeanimations.cpp

index 4880190..641fbb2 100644 (file)
@@ -551,6 +551,8 @@ QAbstractAnimationJob* QQuickAnchorAnimation::transition(QDeclarativeStateAction
         delete data;
     }
 
+    animator->setDuration(d->duration);
+    animator->setEasingCurve(d->easing);
     return initInstance(animator);
 }
 
index c7a0717..348586c 100644 (file)
@@ -45,6 +45,7 @@
 #include <QtDeclarative/private/qanimationgroupjob_p.h>
 #include <QtQuick/private/qquickrectangle_p.h>
 #include <QtQuick/private/qdeclarativeanimation_p.h>
+#include <QtQuick/private/qdeclarativeanimation_p_p.h>
 #include <QtQuick/private/qdeclarativetransition_p.h>
 #include <QtQuick/private/qquickanimation_p.h>
 #include <QtQuick/private/qdeclarativepathinterpolator_p.h>
@@ -105,6 +106,7 @@ private slots:
     void pauseBindingBug();
     void pauseBug();
     void loopingBug();
+    void anchorBug();
 };
 
 #define QTIMED_COMPARE(lhs, rhs) do { \
@@ -1314,6 +1316,19 @@ void tst_qdeclarativeanimations::loopingBug()
     delete obj;
 }
 
+//QTBUG-24532
+void tst_qdeclarativeanimations::anchorBug()
+{
+    QQuickAnchorAnimation animation;
+    animation.setDuration(5000);
+    animation.setEasing(QEasingCurve(QEasingCurve::InOutBack));
+    animation.start();
+    animation.pause();
+
+    QCOMPARE(animation.qtAnimation()->duration(), 5000);
+    QCOMPARE(static_cast<QDeclarativeBulkValueAnimator*>(animation.qtAnimation())->easingCurve(), QEasingCurve(QEasingCurve::InOutBack));
+}
+
 QTEST_MAIN(tst_qdeclarativeanimations)
 
 #include "tst_qdeclarativeanimations.moc"