diff options
author | Michael Brasser <michael.brasser@nokia.com> | 2009-07-23 02:06:07 (GMT) |
---|---|---|
committer | Michael Brasser <michael.brasser@nokia.com> | 2009-07-23 02:06:07 (GMT) |
commit | e823da3a9a09a2982b553f4c8dbe82acb87e8f29 (patch) | |
tree | b8e727f02c3a2d0bc43541b5151bef5f39927a69 | |
parent | af965934e6dbf8f581b1f9e241a08a9b2128472a (diff) | |
download | Qt-e823da3a9a09a2982b553f4c8dbe82acb87e8f29.zip Qt-e823da3a9a09a2982b553f4c8dbe82acb87e8f29.tar.gz Qt-e823da3a9a09a2982b553f4c8dbe82acb87e8f29.tar.bz2 |
Stricter matching for ParentChangeAction.
-rw-r--r-- | src/declarative/util/qmlanimation.cpp | 4 | ||||
-rw-r--r-- | src/declarative/util/qmlstate.cpp | 8 | ||||
-rw-r--r-- | src/declarative/util/qmlstate.h | 2 | ||||
-rw-r--r-- | src/declarative/util/qmlstateoperations.cpp | 6 | ||||
-rw-r--r-- | src/declarative/util/qmlstateoperations.h | 3 |
5 files changed, 16 insertions, 7 deletions
diff --git a/src/declarative/util/qmlanimation.cpp b/src/declarative/util/qmlanimation.cpp index 7d9e30f..1ea6575 100644 --- a/src/declarative/util/qmlanimation.cpp +++ b/src/declarative/util/qmlanimation.cpp @@ -1153,7 +1153,9 @@ void QmlParentChangeAction::transition(QmlStateActions &actions, Action &action = actions[ii]; //### should we still use target to filter? - if (action.event /*&& action.event->name() == d->parentChange*/) { //### + //### still need type-specific matching + if (action.event + && action.event->typeName() == QLatin1String("ParentChange")) { Action myAction = action; data->reverse = action.reverseEvent; data->actions << myAction; diff --git a/src/declarative/util/qmlstate.cpp b/src/declarative/util/qmlstate.cpp index 2c44c86..1aa7ffe 100644 --- a/src/declarative/util/qmlstate.cpp +++ b/src/declarative/util/qmlstate.cpp @@ -74,7 +74,7 @@ ActionEvent::~ActionEvent() { } -QString ActionEvent::name() const +QString ActionEvent::typeName() const { return QString(); } @@ -360,13 +360,13 @@ void QmlState::apply(QmlStateGroup *group, QmlTransition *trans, QmlState *rever if (action.event) { if (!action.event->isReversable()) continue; - for (jj = 0; jj < d->revertList.count(); ++jj) { + /*for (jj = 0; jj < d->revertList.count(); ++jj) { ActionEvent *event = d->revertList.at(jj).event; - if (event && event->name() == action.event->name()) { + if (event && event->typeName() == action.event->typeName()) { found = true; break; } - } + }*/ //### not a close enough match } else { action.fromBinding = action.property.binding(); diff --git a/src/declarative/util/qmlstate.h b/src/declarative/util/qmlstate.h index 1c0d67f..e453446 100644 --- a/src/declarative/util/qmlstate.h +++ b/src/declarative/util/qmlstate.h @@ -83,7 +83,7 @@ class ActionEvent { public: virtual ~ActionEvent(); - virtual QString name() const; + virtual QString typeName() const; virtual void execute(); virtual bool isReversable(); virtual void reverse(); diff --git a/src/declarative/util/qmlstateoperations.cpp b/src/declarative/util/qmlstateoperations.cpp index dc7fef6..3e114d2 100644 --- a/src/declarative/util/qmlstateoperations.cpp +++ b/src/declarative/util/qmlstateoperations.cpp @@ -142,6 +142,7 @@ QFxItem *QmlParentChange::object() const Q_D(const QmlParentChange); return d->target; } + void QmlParentChange::setObject(QFxItem *target) { Q_D(QmlParentChange); @@ -196,6 +197,11 @@ void QmlParentChange::reverse() d->doChange(d->origParent); } +QString QmlParentChange::typeName() const +{ + return QLatin1String("ParentChange"); +} + class QmlRunScriptPrivate : public QObjectPrivate { public: diff --git a/src/declarative/util/qmlstateoperations.h b/src/declarative/util/qmlstateoperations.h index acbe05e..67cd1cf 100644 --- a/src/declarative/util/qmlstateoperations.h +++ b/src/declarative/util/qmlstateoperations.h @@ -74,6 +74,7 @@ public: virtual void execute(); virtual bool isReversable(); virtual void reverse(); + virtual QString typeName() const; }; class QmlRunScriptPrivate; @@ -94,7 +95,7 @@ public: QString script() const; void setScript(const QString &); - virtual QString name() const; + QString name() const; void setName(const QString &); virtual void execute(); |