aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/declarative/util/qdeclarativeanimation.cpp2
-rw-r--r--src/qtquick1/util/qdeclarativeanimation.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/pauseBug.qml7
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp16
-rw-r--r--tests/auto/qtquick1/qdeclarativeanimations/data/pauseBug.qml7
-rw-r--r--tests/auto/qtquick1/qdeclarativeanimations/tst_qdeclarativeanimations.cpp16
6 files changed, 48 insertions, 2 deletions
diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp
index 56867d84ea..977f7fa0d9 100644
--- a/src/declarative/util/qdeclarativeanimation.cpp
+++ b/src/declarative/util/qdeclarativeanimation.cpp
@@ -159,7 +159,7 @@ void QDeclarativeAbstractAnimationPrivate::commence()
q->transition(actions, properties, QDeclarativeAbstractAnimation::Forward);
q->qtAnimation()->start();
- if (q->qtAnimation()->state() != QAbstractAnimation::Running) {
+ if (q->qtAnimation()->state() == QAbstractAnimation::Stopped) {
running = false;
emit q->completed();
}
diff --git a/src/qtquick1/util/qdeclarativeanimation.cpp b/src/qtquick1/util/qdeclarativeanimation.cpp
index 46c3f15a29..89b768b827 100644
--- a/src/qtquick1/util/qdeclarativeanimation.cpp
+++ b/src/qtquick1/util/qdeclarativeanimation.cpp
@@ -162,7 +162,7 @@ void QDeclarative1AbstractAnimationPrivate::commence()
q->transition(actions, properties, QDeclarative1AbstractAnimation::Forward);
q->qtAnimation()->start();
- if (q->qtAnimation()->state() != QAbstractAnimation::Running) {
+ if (q->qtAnimation()->state() == QAbstractAnimation::Stopped) {
running = false;
emit q->completed();
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/pauseBug.qml b/tests/auto/declarative/qdeclarativeanimations/data/pauseBug.qml
new file mode 100644
index 0000000000..fa2c4be4ba
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeanimations/data/pauseBug.qml
@@ -0,0 +1,7 @@
+import QtQuick 2.0
+
+SequentialAnimation {
+ id: animation
+ running: true
+ ScriptAction { script: animation.paused = true }
+}
diff --git a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
index 6461b69198..bd9c3e0d7a 100644
--- a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
+++ b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
@@ -90,6 +90,7 @@ private slots:
void alwaysRunToEndRestartBug();
void transitionAssignmentBug();
void pauseBindingBug();
+ void pauseBug();
};
#define QTIMED_COMPARE(lhs, rhs) do { \
@@ -872,6 +873,21 @@ void tst_qdeclarativeanimations::pauseBindingBug()
delete rect;
}
+//QTBUG-13598
+void tst_qdeclarativeanimations::pauseBug()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent c(&engine, SRCDIR "/data/pauseBug.qml");
+ QDeclarativeAbstractAnimation *anim = qobject_cast<QDeclarativeAbstractAnimation*>(c.create());
+ QVERIFY(anim != 0);
+ QCOMPARE(anim->qtAnimation()->state(), QAbstractAnimation::Paused);
+ QCOMPARE(anim->isPaused(), true);
+ QCOMPARE(anim->isRunning(), true);
+
+ delete anim;
+}
+
QTEST_MAIN(tst_qdeclarativeanimations)
#include "tst_qdeclarativeanimations.moc"
diff --git a/tests/auto/qtquick1/qdeclarativeanimations/data/pauseBug.qml b/tests/auto/qtquick1/qdeclarativeanimations/data/pauseBug.qml
new file mode 100644
index 0000000000..d514cf7c43
--- /dev/null
+++ b/tests/auto/qtquick1/qdeclarativeanimations/data/pauseBug.qml
@@ -0,0 +1,7 @@
+import QtQuick 1.1
+
+SequentialAnimation {
+ id: animation
+ running: true
+ ScriptAction { script: animation.paused = true }
+}
diff --git a/tests/auto/qtquick1/qdeclarativeanimations/tst_qdeclarativeanimations.cpp b/tests/auto/qtquick1/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
index 228f4fdd58..53e5502c5f 100644
--- a/tests/auto/qtquick1/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
+++ b/tests/auto/qtquick1/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
@@ -89,6 +89,7 @@ private slots:
void doubleRegistrationBug();
void alwaysRunToEndRestartBug();
void transitionAssignmentBug();
+ void pauseBug();
};
#define QTIMED_COMPARE(lhs, rhs) do { \
@@ -863,6 +864,21 @@ void tst_qdeclarativeanimations::transitionAssignmentBug()
QCOMPARE(rect->property("nullObject").toBool(), false);
}
+//QTBUG-13598
+void tst_qdeclarativeanimations::pauseBug()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent c(&engine, SRCDIR "/data/pauseBug.qml");
+ QDeclarative1AbstractAnimation *anim = qobject_cast<QDeclarative1AbstractAnimation*>(c.create());
+ QVERIFY(anim != 0);
+ QCOMPARE(anim->qtAnimation()->state(), QAbstractAnimation::Paused);
+ QCOMPARE(anim->isPaused(), true);
+ QCOMPARE(anim->isRunning(), true);
+
+ delete anim;
+}
+
QTEST_MAIN(tst_qdeclarativeanimations)
#include "tst_qdeclarativeanimations.moc"