diff options
author | Charles Yin <charles.yin@nokia.com> | 2012-05-28 16:09:26 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-29 05:57:48 +0200 |
commit | c187ebb93167e69e9e157cb236ef16e39e1b2fb9 (patch) | |
tree | 13f25dddf8f5132a6b30d331f486ea99c3362000 /src/quick/items/qquickitemanimation.cpp | |
parent | 0eec47c65982f586a8602af964b454494f0f49f3 (diff) |
Don't use deleted QQuickPathAnimationAnimator
1) If QQuickPathAnimationAnimator was deleted, just return 0 for transition
2) Add Null checking for all animation::transition() calls
Change-Id: I1248d08fe05da5c9ff58f7b812ff11545959032f
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'src/quick/items/qquickitemanimation.cpp')
-rw-r--r-- | src/quick/items/qquickitemanimation.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/quick/items/qquickitemanimation.cpp b/src/quick/items/qquickitemanimation.cpp index e79b9c3bc1..a0437b271e 100644 --- a/src/quick/items/qquickitemanimation.cpp +++ b/src/quick/items/qquickitemanimation.cpp @@ -389,7 +389,8 @@ QAbstractAnimationJob* QQuickParentAnimation::transition(QQuickStateActions &act if (valid) d->animations.at(ii)->setDefaultTarget(d->defaultProperty); anim = d->animations.at(ii)->transition(actions, modified, direction, defaultTarget); - ag->appendAnimation(anim); + if (anim) + ag->appendAnimation(anim); } //TODO: simplify/clarify logic @@ -913,16 +914,16 @@ QAbstractAnimationJob* QQuickPathAnimation::transition(QQuickStateActions &actio } pa->setFromSourcedValue(&data->fromSourced); pa->setAnimValue(data); + pa->setDuration(d->duration); + pa->setEasingCurve(d->easingCurve); + return initInstance(pa); } else { pa->setFromSourcedValue(0); pa->setAnimValue(0); delete pa; delete data; } - - pa->setDuration(d->duration); - pa->setEasingCurve(d->easingCurve); - return initInstance(pa); + return 0; } void QQuickPathAnimationUpdater::setValue(qreal v) |