summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brasser <michael.brasser@nokia.com>2009-07-23 02:06:07 (GMT)
committerMichael Brasser <michael.brasser@nokia.com>2009-07-23 02:06:07 (GMT)
commite823da3a9a09a2982b553f4c8dbe82acb87e8f29 (patch)
treeb8e727f02c3a2d0bc43541b5151bef5f39927a69
parentaf965934e6dbf8f581b1f9e241a08a9b2128472a (diff)
downloadQt-e823da3a9a09a2982b553f4c8dbe82acb87e8f29.zip
Qt-e823da3a9a09a2982b553f4c8dbe82acb87e8f29.tar.gz
Qt-e823da3a9a09a2982b553f4c8dbe82acb87e8f29.tar.bz2
Stricter matching for ParentChangeAction.
-rw-r--r--src/declarative/util/qmlanimation.cpp4
-rw-r--r--src/declarative/util/qmlstate.cpp8
-rw-r--r--src/declarative/util/qmlstate.h2
-rw-r--r--src/declarative/util/qmlstateoperations.cpp6
-rw-r--r--src/declarative/util/qmlstateoperations.h3
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();