summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-07-23 03:38:44 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-07-23 03:38:44 (GMT)
commit4f35294d737d9059398b2c8f714c8e0ea37079ed (patch)
tree60cd5be8c10e09c5871eaee6a7f9706a2ef517de
parentdd61bcbafd669d77a35d2161880ba915f78bf240 (diff)
parente9dde8b58f6a741c10d8b28a463c467f256bdd8f (diff)
downloadQt-4f35294d737d9059398b2c8f714c8e0ea37079ed.zip
Qt-4f35294d737d9059398b2c8f714c8e0ea37079ed.tar.gz
Qt-4f35294d737d9059398b2c8f714c8e0ea37079ed.tar.bz2
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
-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
-rw-r--r--src/declarative/util/qmltransitionmanager.cpp5
6 files changed, 20 insertions, 8 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();
diff --git a/src/declarative/util/qmltransitionmanager.cpp b/src/declarative/util/qmltransitionmanager.cpp
index 6f1a8e3..4609de8 100644
--- a/src/declarative/util/qmltransitionmanager.cpp
+++ b/src/declarative/util/qmltransitionmanager.cpp
@@ -196,7 +196,10 @@ void QmlTransitionManager::transition(const QList<Action> &list,
// transition
foreach(const Action &action, applyList) {
if (action.event) {
- action.event->execute();
+ if (action.event->isReversable() && action.reverseEvent)
+ action.event->reverse();
+ else
+ action.event->execute();
} else {
action.property.write(action.toValue);
}