aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickitemanimation.cpp
diff options
context:
space:
mode:
authorCharles Yin <charles.yin@nokia.com>2012-05-28 16:09:26 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-29 05:57:48 +0200
commitc187ebb93167e69e9e157cb236ef16e39e1b2fb9 (patch)
tree13f25dddf8f5132a6b30d331f486ea99c3362000 /src/quick/items/qquickitemanimation.cpp
parent0eec47c65982f586a8602af964b454494f0f49f3 (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.cpp11
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)