From 47d2bf3fa091dd3dfb4fcc593b36ba20645cde27 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 28 Aug 2009 14:25:03 +1000 Subject: Support explicit ParentAction changes --- src/declarative/util/qmlanimation.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/declarative/util/qmlanimation.cpp b/src/declarative/util/qmlanimation.cpp index c535045..02b747f 100644 --- a/src/declarative/util/qmlanimation.cpp +++ b/src/declarative/util/qmlanimation.cpp @@ -1168,6 +1168,8 @@ void QmlParentAction::transition(QmlStateActions &actions, QmlParentActionData *data = new QmlParentActionData; + bool explicitMatchFound = false; + for (int ii = 0; ii < actions.count(); ++ii) { Action &action = actions[ii]; @@ -1182,6 +1184,7 @@ void QmlParentAction::transition(QmlStateActions &actions, myAction.event = pc; data->pc = pc; data->actions << myAction; + if (d->target) explicitMatchFound = true; break; //only match one } else { action.actionDone = true; @@ -1190,6 +1193,17 @@ void QmlParentAction::transition(QmlStateActions &actions, } } + if (!explicitMatchFound && d->pcTarget && d->pcParent) { + data->reverse = false; + Action myAction; + QmlParentChange *pc = new QmlParentChange; + pc->setObject(d->pcTarget); + pc->setParent(d->pcParent); + myAction.event = pc; + data->pc = pc; + data->actions << myAction; + } + if (data->actions.count()) { d->cpa->setAnimAction(data, QAbstractAnimation::DeleteWhenStopped); } else { -- cgit v0.12