summaryrefslogtreecommitdiffstats
path: root/src/declarative/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/util')
-rw-r--r--src/declarative/util/qdeclarativeanimation.cpp241
-rw-r--r--src/declarative/util/qdeclarativeanimation_p.h40
-rw-r--r--src/declarative/util/qdeclarativeanimation_p_p.h18
-rw-r--r--src/declarative/util/qdeclarativebehavior.cpp3
-rw-r--r--src/declarative/util/qdeclarativepixmapcache.cpp2
-rw-r--r--src/declarative/util/qdeclarativepropertychanges.cpp2
-rw-r--r--src/declarative/util/qdeclarativestate_p_p.h4
-rw-r--r--src/declarative/util/qdeclarativestateoperations.cpp9
-rw-r--r--src/declarative/util/qdeclarativetransition.cpp14
-rw-r--r--src/declarative/util/qdeclarativetransition_p.h11
-rw-r--r--src/declarative/util/qdeclarativeutilmodule.cpp3
-rw-r--r--src/declarative/util/qdeclarativeview.cpp12
-rw-r--r--src/declarative/util/qfxperf.cpp67
-rw-r--r--src/declarative/util/qfxperf_p_p.h90
-rw-r--r--src/declarative/util/qperformancelog.cpp181
-rw-r--r--src/declarative/util/qperformancelog_p_p.h141
-rw-r--r--src/declarative/util/util.pri7
17 files changed, 66 insertions, 779 deletions
diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp
index d47dcc5..1fb3d99 100644
--- a/src/declarative/util/qdeclarativeanimation.cpp
+++ b/src/declarative/util/qdeclarativeanimation.cpp
@@ -1006,212 +1006,6 @@ void QDeclarativePropertyAction::transition(QDeclarativeStateActions &actions,
}
}
-
-
-/*!
- \qmlclass ParentAction QDeclarativeParentAction
- \since 4.7
- \inherits Animation
- \brief The ParentAction element allows parent changes during animation.
-
- ParentAction provides a way to specify at what point in a Transition a ParentChange should
- occur.
- \qml
- State {
- ParentChange {
- target: myItem
- parent: newParent
- }
- }
- Transition {
- SequentialAnimation {
- PropertyAnimation { ... }
- ParentAction {} //reparent myItem now
- PropertyAnimation { ... }
- }
- }
- \endqml
-
- It also provides a way to explicitly reparent an item during an animation.
- \qml
- SequentialAnimation {
- ParentAction { target: myItem; parent: newParent }
- PropertyAnimation {}
- }
- \endqml
-
- The ParentAction is immediate - it is not animated in any way.
-*/
-
-QDeclarativeParentAction::QDeclarativeParentAction(QObject *parent)
-: QDeclarativeAbstractAnimation(*(new QDeclarativeParentActionPrivate), parent)
-{
- Q_D(QDeclarativeParentAction);
- d->init();
-}
-
-QDeclarativeParentAction::~QDeclarativeParentAction()
-{
-}
-
-void QDeclarativeParentActionPrivate::init()
-{
- Q_Q(QDeclarativeParentAction);
- cpa = new QActionAnimation;
- QDeclarative_setParent_noEvent(cpa, q);
-}
-
-/*!
- \qmlproperty Item ParentAction::target
-
- This property holds a target item to reparent.
-
- In the following example, \c myItem will be reparented by the ParentAction, while
- \c myOtherItem will not.
- \qml
- State {
- ParentChange {
- target: myItem
- parent: newParent
- }
- ParentChange {
- target: myOtherItem
- parent: otherNewParent
- }
- }
- Transition {
- SequentialAnimation {
- PropertyAnimation { ... }
- ParentAction { target: myItem }
- PropertyAnimation { ... }
- }
- }
- \endqml
-
- */
-QDeclarativeItem *QDeclarativeParentAction::object() const
-{
- Q_D(const QDeclarativeParentAction);
- return d->pcTarget;
-}
-
-void QDeclarativeParentAction::setObject(QDeclarativeItem *target)
-{
- Q_D(QDeclarativeParentAction);
- d->pcTarget = target;
-}
-
-/*!
- \qmlproperty Item ParentAction::parent
-
- The item to reparent to (i.e. the new parent).
- */
-QDeclarativeItem *QDeclarativeParentAction::parent() const
-{
- Q_D(const QDeclarativeParentAction);
- return d->pcParent;
-}
-
-void QDeclarativeParentAction::setParent(QDeclarativeItem *parent)
-{
- Q_D(QDeclarativeParentAction);
- d->pcParent = parent;
-}
-
-void QDeclarativeParentActionPrivate::doAction()
-{
- QDeclarativeParentChange pc;
- pc.setObject(pcTarget);
- pc.setParent(pcParent);
- pc.execute();
-}
-
-QAbstractAnimation *QDeclarativeParentAction::qtAnimation()
-{
- Q_D(QDeclarativeParentAction);
- return d->cpa;
-}
-
-void QDeclarativeParentAction::transition(QDeclarativeStateActions &actions,
- QDeclarativeProperties &modified,
- TransitionDirection direction)
-{
- Q_D(QDeclarativeParentAction);
- Q_UNUSED(modified);
- Q_UNUSED(direction);
-
- struct QDeclarativeParentActionData : public QAbstractAnimationAction
- {
- QDeclarativeParentActionData(): pc(0) {}
- ~QDeclarativeParentActionData() { delete pc; }
-
- QDeclarativeStateActions actions;
- bool reverse;
- QDeclarativeParentChange *pc;
- virtual void doAction()
- {
- for (int ii = 0; ii < actions.count(); ++ii) {
- const QDeclarativeAction &action = actions.at(ii);
- if (reverse)
- action.event->reverse();
- else
- action.event->execute();
- }
- }
- };
-
- QDeclarativeParentActionData *data = new QDeclarativeParentActionData;
-
- //### need to correctly handle modified/done
-
- bool hasExplicit = false;
- if (d->pcTarget && d->pcParent) {
- data->reverse = false;
- QDeclarativeAction myAction;
- QDeclarativeParentChange *pc = new QDeclarativeParentChange;
- pc->setObject(d->pcTarget);
- pc->setParent(d->pcParent);
- myAction.event = pc;
- data->pc = pc;
- data->actions << myAction;
- hasExplicit = true;
- }
-
- if (!hasExplicit)
- for (int ii = 0; ii < actions.count(); ++ii) {
- QDeclarativeAction &action = actions[ii];
-
- if (action.event && action.event->typeName() == QLatin1String("ParentChange")
- && (!d->pcTarget || static_cast<QDeclarativeParentChange*>(action.event)->object() == d->pcTarget)) {
- QDeclarativeAction myAction = action;
- data->reverse = action.reverseEvent;
- //### this logic differs from PropertyAnimation
- // (probably a result of modified vs. done)
- if (d->pcParent) {
- //### should we disallow this case?
- QDeclarativeParentChange *pc = new QDeclarativeParentChange;
- pc->setObject(d->pcTarget);
- pc->setParent(static_cast<QDeclarativeParentChange*>(action.event)->parent());
- myAction.event = pc;
- data->pc = pc;
- data->actions << myAction;
- break; //only match one
- } else {
- action.actionDone = true;
- data->actions << myAction;
- }
- }
- }
-
- if (data->actions.count()) {
- d->cpa->setAnimAction(data, QAbstractAnimation::DeleteWhenStopped);
- } else {
- delete data;
- }
-}
-
-
-
/*!
\qmlclass NumberAnimation QDeclarativeNumberAnimation
\since 4.7
@@ -1342,9 +1136,10 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t)
\brief The RotationAnimation element allows you to animate rotations.
RotationAnimation is a specialized PropertyAnimation that gives control
- over the direction of rotation. By default, it will rotate
- via the shortest path; for example, a rotation from 20 to 340 degrees will
- rotation 40 degrees counterclockwise.
+ over the direction of rotation. By default, it will rotate in the direction
+ of the numerical change; a rotation from 0 to 240 will rotate 220 degrees
+ clockwise, while a rotation from 240 to 0 will rotate 220 degrees
+ counterclockwise.
When used in a transition RotationAnimation will rotate all
properties named "rotation" or "angle". You can override this by providing
@@ -1359,7 +1154,7 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t)
State { name: "-90"; PropertyChanges { target: myItem; rotation: -90 } }
}
transition: Transition {
- RotationAnimation { }
+ RotationAnimation { direction: RotationAnimation.Shortest }
}
\endqml
*/
@@ -1411,7 +1206,7 @@ QDeclarativeRotationAnimation::QDeclarativeRotationAnimation(QObject *parent)
{
Q_D(QDeclarativeRotationAnimation);
d->interpolatorType = QMetaType::QReal;
- d->interpolator = reinterpret_cast<QVariantAnimation::Interpolator>(&_q_interpolateShortestRotation);
+ d->interpolator = QVariantAnimationPrivate::getInterpolator(d->interpolatorType);
d->defaultProperties = QLatin1String("rotation,angle");
}
@@ -1474,7 +1269,7 @@ void QDeclarativeRotationAnimation::setTo(qreal t)
A rotation from 10 to 350 will rotate 20 degrees counterclockwise.
\endtable
- The default direction is Shortest.
+ The default direction is Numerical.
*/
QDeclarativeRotationAnimation::RotationDirection QDeclarativeRotationAnimation::direction() const
{
@@ -2483,7 +2278,11 @@ QDeclarativeItem *QDeclarativeParentAnimation::target() const
void QDeclarativeParentAnimation::setTarget(QDeclarativeItem *target)
{
Q_D(QDeclarativeParentAnimation);
+ if (target == d->target)
+ return;
+
d->target = target;
+ emit targetChanged();
}
/*!
@@ -2501,7 +2300,11 @@ QDeclarativeItem *QDeclarativeParentAnimation::newParent() const
void QDeclarativeParentAnimation::setNewParent(QDeclarativeItem *newParent)
{
Q_D(QDeclarativeParentAnimation);
+ if (newParent == d->newParent)
+ return;
+
d->newParent = newParent;
+ emit newParentChanged();
}
/*!
@@ -2526,7 +2329,11 @@ QDeclarativeItem *QDeclarativeParentAnimation::via() const
void QDeclarativeParentAnimation::setVia(QDeclarativeItem *via)
{
Q_D(QDeclarativeParentAnimation);
+ if (via == d->via)
+ return;
+
d->via = via;
+ emit viaChanged();
}
//### mirrors same-named function in QDeclarativeItem
@@ -2561,10 +2368,10 @@ void QDeclarativeParentAnimation::transition(QDeclarativeStateActions &actions,
{
Q_D(QDeclarativeParentAnimation);
- struct QDeclarativeParentActionData : public QAbstractAnimationAction
+ struct QDeclarativeParentAnimationData : public QAbstractAnimationAction
{
- QDeclarativeParentActionData() {}
- ~QDeclarativeParentActionData() { qDeleteAll(pc); }
+ QDeclarativeParentAnimationData() {}
+ ~QDeclarativeParentAnimationData() { qDeleteAll(pc); }
QDeclarativeStateActions actions;
//### reverse should probably apply on a per-action basis
@@ -2582,8 +2389,8 @@ void QDeclarativeParentAnimation::transition(QDeclarativeStateActions &actions,
}
};
- QDeclarativeParentActionData *data = new QDeclarativeParentActionData;
- QDeclarativeParentActionData *viaData = new QDeclarativeParentActionData;
+ QDeclarativeParentAnimationData *data = new QDeclarativeParentAnimationData;
+ QDeclarativeParentAnimationData *viaData = new QDeclarativeParentAnimationData;
bool hasExplicit = false;
if (d->target && d->newParent) {
diff --git a/src/declarative/util/qdeclarativeanimation_p.h b/src/declarative/util/qdeclarativeanimation_p.h
index eb339f6..356b015 100644
--- a/src/declarative/util/qdeclarativeanimation_p.h
+++ b/src/declarative/util/qdeclarativeanimation_p.h
@@ -72,7 +72,7 @@ class Q_AUTOTEST_EXPORT QDeclarativeAbstractAnimation : public QObject, public Q
Q_INTERFACES(QDeclarativePropertyValueSource)
Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY runningChanged)
Q_PROPERTY(bool paused READ isPaused WRITE setPaused NOTIFY pausedChanged)
- Q_PROPERTY(bool alwaysRunToEnd READ alwaysRunToEnd WRITE setAlwaysRunToEnd NOTIFY alwaysRunToEndChanged())
+ Q_PROPERTY(bool alwaysRunToEnd READ alwaysRunToEnd WRITE setAlwaysRunToEnd NOTIFY alwaysRunToEndChanged)
Q_PROPERTY(bool repeat READ repeat WRITE setRepeat NOTIFY repeatChanged)
Q_CLASSINFO("DefaultMethod", "start()")
@@ -227,32 +227,6 @@ protected:
};
class QDeclarativeItem;
-class QDeclarativeParentActionPrivate;
-class QDeclarativeParentAction : public QDeclarativeAbstractAnimation
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QDeclarativeParentAction)
-
- Q_PROPERTY(QDeclarativeItem *target READ object WRITE setObject)
- Q_PROPERTY(QDeclarativeItem *parent READ parent WRITE setParent) //### newParent
-
-public:
- QDeclarativeParentAction(QObject *parent=0);
- virtual ~QDeclarativeParentAction();
-
- QDeclarativeItem *object() const;
- void setObject(QDeclarativeItem *);
-
- QDeclarativeItem *parent() const;
- void setParent(QDeclarativeItem *);
-
-protected:
- virtual void transition(QDeclarativeStateActions &actions,
- QDeclarativeProperties &modified,
- TransitionDirection direction);
- virtual QAbstractAnimation *qtAnimation();
-};
-
class QDeclarativePropertyAnimationPrivate;
class Q_AUTOTEST_EXPORT QDeclarativePropertyAnimation : public QDeclarativeAbstractAnimation
{
@@ -456,9 +430,9 @@ class QDeclarativeParentAnimation : public QDeclarativeAnimationGroup
Q_OBJECT
Q_DECLARE_PRIVATE(QDeclarativeParentAnimation)
- Q_PROPERTY(QDeclarativeItem *target READ target WRITE setTarget)
- Q_PROPERTY(QDeclarativeItem *newParent READ newParent WRITE setNewParent)
- Q_PROPERTY(QDeclarativeItem *via READ via WRITE setVia)
+ Q_PROPERTY(QDeclarativeItem *target READ target WRITE setTarget NOTIFY targetChanged)
+ Q_PROPERTY(QDeclarativeItem *newParent READ newParent WRITE setNewParent NOTIFY newParentChanged)
+ Q_PROPERTY(QDeclarativeItem *via READ via WRITE setVia NOTIFY viaChanged)
public:
QDeclarativeParentAnimation(QObject *parent=0);
@@ -473,6 +447,11 @@ public:
QDeclarativeItem *via() const;
void setVia(QDeclarativeItem *);
+Q_SIGNALS:
+ void targetChanged();
+ void newParentChanged();
+ void viaChanged();
+
protected:
virtual void transition(QDeclarativeStateActions &actions,
QDeclarativeProperties &modified,
@@ -506,7 +485,6 @@ QML_DECLARE_TYPE(QDeclarativeAbstractAnimation)
QML_DECLARE_TYPE(QDeclarativePauseAnimation)
QML_DECLARE_TYPE(QDeclarativeScriptAction)
QML_DECLARE_TYPE(QDeclarativePropertyAction)
-QML_DECLARE_TYPE(QDeclarativeParentAction)
QML_DECLARE_TYPE(QDeclarativePropertyAnimation)
QML_DECLARE_TYPE(QDeclarativeColorAnimation)
QML_DECLARE_TYPE(QDeclarativeNumberAnimation)
diff --git a/src/declarative/util/qdeclarativeanimation_p_p.h b/src/declarative/util/qdeclarativeanimation_p_p.h
index 0460312..55aacfa 100644
--- a/src/declarative/util/qdeclarativeanimation_p_p.h
+++ b/src/declarative/util/qdeclarativeanimation_p_p.h
@@ -300,22 +300,6 @@ public:
QActionAnimation *spa;
};
-class QDeclarativeParentActionPrivate : public QDeclarativeAbstractAnimationPrivate
-{
- Q_DECLARE_PUBLIC(QDeclarativeParentAction)
-public:
- QDeclarativeParentActionPrivate()
- : QDeclarativeAbstractAnimationPrivate(), pcTarget(0), pcParent(0) {}
-
- void init();
-
- QDeclarativeItem *pcTarget;
- QDeclarativeItem *pcParent;
-
- void doAction();
- QActionAnimation *cpa;
-};
-
class QDeclarativeAnimationGroupPrivate : public QDeclarativeAbstractAnimationPrivate
{
Q_DECLARE_PUBLIC(QDeclarativeAnimationGroup)
@@ -369,7 +353,7 @@ class QDeclarativeRotationAnimationPrivate : public QDeclarativePropertyAnimatio
{
Q_DECLARE_PUBLIC(QDeclarativeRotationAnimation)
public:
- QDeclarativeRotationAnimationPrivate() : direction(QDeclarativeRotationAnimation::Shortest) {}
+ QDeclarativeRotationAnimationPrivate() : direction(QDeclarativeRotationAnimation::Numerical) {}
QDeclarativeRotationAnimation::RotationDirection direction;
};
diff --git a/src/declarative/util/qdeclarativebehavior.cpp b/src/declarative/util/qdeclarativebehavior.cpp
index d90ca33..1e000df 100644
--- a/src/declarative/util/qdeclarativebehavior.cpp
+++ b/src/declarative/util/qdeclarativebehavior.cpp
@@ -83,7 +83,8 @@ public:
y: 200 // initial value
Behavior on y {
NumberAnimation {
- easing: "easeOutBounce(amplitude:100)"
+ easing.type: "OutBounce"
+ easing.amplitude: 100
duration: 200
}
}
diff --git a/src/declarative/util/qdeclarativepixmapcache.cpp b/src/declarative/util/qdeclarativepixmapcache.cpp
index 942d5f6..e78fdf1 100644
--- a/src/declarative/util/qdeclarativepixmapcache.cpp
+++ b/src/declarative/util/qdeclarativepixmapcache.cpp
@@ -43,8 +43,6 @@
#include "qdeclarativenetworkaccessmanagerfactory.h"
#include "qdeclarativeimageprovider.h"
-#include "qfxperf_p_p.h"
-
#include <qdeclarativeengine.h>
#include <private/qdeclarativeglobal_p.h>
#include <private/qdeclarativeengine_p.h>
diff --git a/src/declarative/util/qdeclarativepropertychanges.cpp b/src/declarative/util/qdeclarativepropertychanges.cpp
index 8865e04..6ceec5d 100644
--- a/src/declarative/util/qdeclarativepropertychanges.cpp
+++ b/src/declarative/util/qdeclarativepropertychanges.cpp
@@ -227,6 +227,8 @@ QDeclarativePropertyChangesParser::compileList(QList<QPair<QByteArray, QVariant>
const QVariant &value = values.at(ii);
if (value.userType() == qMetaTypeId<QDeclarativeCustomParserNode>()) {
+ error(qvariant_cast<QDeclarativeCustomParserNode>(value),
+ QDeclarativePropertyChanges::tr("PropertyChanges does not support creating state-specific objects."));
continue;
} else if(value.userType() == qMetaTypeId<QDeclarativeCustomParserProperty>()) {
diff --git a/src/declarative/util/qdeclarativestate_p_p.h b/src/declarative/util/qdeclarativestate_p_p.h
index 6f52219..558c99b 100644
--- a/src/declarative/util/qdeclarativestate_p_p.h
+++ b/src/declarative/util/qdeclarativestate_p_p.h
@@ -58,8 +58,8 @@
#include "qdeclarativeanimation_p_p.h"
#include "qdeclarativetransitionmanager_p_p.h"
-#include <qdeclarativeproperty_p.h>
-#include <qdeclarativeguard_p.h>
+#include <private/qdeclarativeproperty_p.h>
+#include <private/qdeclarativeguard_p.h>
#include <private/qobject_p.h>
diff --git a/src/declarative/util/qdeclarativestateoperations.cpp b/src/declarative/util/qdeclarativestateoperations.cpp
index 6f5bb66..163d220 100644
--- a/src/declarative/util/qdeclarativestateoperations.cpp
+++ b/src/declarative/util/qdeclarativestateoperations.cpp
@@ -168,7 +168,7 @@ void QDeclarativeParentChangePrivate::doChange(QDeclarativeItem *targetParent, Q
for the original and new parent).
You can specify at which point in a transition you want a ParentChange to occur by
- using a ParentAnimation or ParentAction.
+ using a ParentAnimation.
*/
@@ -456,11 +456,10 @@ void QDeclarativeParentChange::saveCurrentValues()
}
d->rewindParent = d->target->parentItem();
+ d->rewindStackBefore = 0;
- if (!d->rewindParent) {
- d->rewindStackBefore = 0;
+ if (!d->rewindParent)
return;
- }
//try to determine the item's original stack position so we can restore it
int siblingIndex = ((AccessibleFxItem*)d->target)->siblingIndex() + 1;
@@ -944,7 +943,7 @@ void QDeclarativeAnchorChanges::saveOriginals()
d->origBaseline = d->target->anchors()->baseline();
d->applyOrigLeft = d->applyOrigRight = d->applyOrigHCenter = d->applyOrigTop
- = d->applyOrigBottom = d->applyOrigHCenter = d->applyOrigBaseline = false;
+ = d->applyOrigBottom = d->applyOrigVCenter = d->applyOrigBaseline = false;
saveCurrentValues();
}
diff --git a/src/declarative/util/qdeclarativetransition.cpp b/src/declarative/util/qdeclarativetransition.cpp
index ac07b10..4326a55 100644
--- a/src/declarative/util/qdeclarativetransition.cpp
+++ b/src/declarative/util/qdeclarativetransition.cpp
@@ -67,7 +67,7 @@ QT_BEGIN_NAMESPACE
\ingroup group_states
*/
-//ParallelAnimationWrapperallows us to do a "callback" when the animation finishes, rather than connecting
+//ParallelAnimationWrapper allows us to do a "callback" when the animation finishes, rather than connecting
//and disconnecting signals and slots frequently
class ParallelAnimationWrapper : public QParallelAnimationGroup
{
@@ -195,7 +195,11 @@ QString QDeclarativeTransition::fromState() const
void QDeclarativeTransition::setFromState(const QString &f)
{
Q_D(QDeclarativeTransition);
+ if (f == d->fromState)
+ return;
+
d->fromState = f;
+ emit fromChanged();
}
/*!
@@ -213,7 +217,11 @@ bool QDeclarativeTransition::reversible() const
void QDeclarativeTransition::setReversible(bool r)
{
Q_D(QDeclarativeTransition);
+ if (r == d->reversible)
+ return;
+
d->reversible = r;
+ emit reversibleChanged();
}
QString QDeclarativeTransition::toState() const
@@ -225,7 +233,11 @@ QString QDeclarativeTransition::toState() const
void QDeclarativeTransition::setToState(const QString &t)
{
Q_D(QDeclarativeTransition);
+ if (t == d->toState)
+ return;
+
d->toState = t;
+ emit toChanged();
}
/*!
diff --git a/src/declarative/util/qdeclarativetransition_p.h b/src/declarative/util/qdeclarativetransition_p.h
index 861111a..2f9e7b5 100644
--- a/src/declarative/util/qdeclarativetransition_p.h
+++ b/src/declarative/util/qdeclarativetransition_p.h
@@ -62,9 +62,9 @@ class Q_DECLARATIVE_EXPORT QDeclarativeTransition : public QObject
Q_OBJECT
Q_DECLARE_PRIVATE(QDeclarativeTransition)
- Q_PROPERTY(QString from READ fromState WRITE setFromState)
- Q_PROPERTY(QString to READ toState WRITE setToState)
- Q_PROPERTY(bool reversible READ reversible WRITE setReversible)
+ Q_PROPERTY(QString from READ fromState WRITE setFromState NOTIFY fromChanged)
+ Q_PROPERTY(QString to READ toState WRITE setToState NOTIFY toChanged)
+ Q_PROPERTY(bool reversible READ reversible WRITE setReversible NOTIFY reversibleChanged)
Q_PROPERTY(QDeclarativeListProperty<QDeclarativeAbstractAnimation> animations READ animations)
Q_CLASSINFO("DefaultProperty", "animations")
Q_CLASSINFO("DeferredPropertyNames", "animations")
@@ -90,6 +90,11 @@ public:
void setReversed(bool r);
void stop();
+
+Q_SIGNALS:
+ void fromChanged();
+ void toChanged();
+ void reversibleChanged();
};
QT_END_NAMESPACE
diff --git a/src/declarative/util/qdeclarativeutilmodule.cpp b/src/declarative/util/qdeclarativeutilmodule.cpp
index 4d4678a..46c9b73 100644
--- a/src/declarative/util/qdeclarativeutilmodule.cpp
+++ b/src/declarative/util/qdeclarativeutilmodule.cpp
@@ -40,7 +40,6 @@
****************************************************************************/
#include "qdeclarativeutilmodule_p.h"
-#include "qfxperf_p_p.h"
#include "qdeclarativeanimation_p.h"
#include "qdeclarativeanimation_p_p.h"
#include "qdeclarativebehavior_p.h"
@@ -71,7 +70,6 @@
#ifndef QT_NO_XMLPATTERNS
#include "qdeclarativexmllistmodel_p.h"
#endif
-#include "qperformancelog_p_p.h"
void QDeclarativeUtilModule::defineModule()
{
@@ -87,7 +85,6 @@ void QDeclarativeUtilModule::defineModule()
qmlRegisterType<QDeclarativeNumberAnimation>("Qt",4,6,"NumberAnimation");
qmlRegisterType<QDeclarativePackage>("Qt",4,6,"Package");
qmlRegisterType<QDeclarativeParallelAnimation>("Qt",4,6,"ParallelAnimation");
- qmlRegisterType<QDeclarativeParentAction>("Qt",4,6,"ParentAction");
qmlRegisterType<QDeclarativeParentAnimation>("Qt",4,6,"ParentAnimation");
qmlRegisterType<QDeclarativeParentChange>("Qt",4,6,"ParentChange");
qmlRegisterType<QDeclarativePauseAnimation>("Qt",4,6,"PauseAnimation");
diff --git a/src/declarative/util/qdeclarativeview.cpp b/src/declarative/util/qdeclarativeview.cpp
index 59a062a..c2dbf92 100644
--- a/src/declarative/util/qdeclarativeview.cpp
+++ b/src/declarative/util/qdeclarativeview.cpp
@@ -41,9 +41,6 @@
#include "qdeclarativeview.h"
-#include "qperformancelog_p_p.h"
-#include "qfxperf_p_p.h"
-
#include <qdeclarative.h>
#include <qdeclarativeitem.h>
#include <qdeclarativeengine.h>
@@ -251,13 +248,6 @@ QDeclarativeView::QDeclarativeView(const QUrl &source, QWidget *parent)
void QDeclarativeViewPrivate::init()
{
-#ifdef Q_ENABLE_PERFORMANCE_LOG
- {
- QDeclarativePerfTimer<QDeclarativePerf::FontDatabase> perf;
- QFontDatabase database;
- }
-#endif
-
q->setScene(&scene);
q->setOptimizationFlags(QGraphicsView::DontSavePainterState);
@@ -455,8 +445,6 @@ void QDeclarativeView::setRootObject(QObject *obj)
if (QDeclarativeItem *item = qobject_cast<QDeclarativeItem *>(obj)) {
d->scene.addItem(item);
- QPerformanceLog::displayData();
- QPerformanceLog::clear();
d->root = item;
d->qmlRoot = item;
connect(item, SIGNAL(widthChanged(qreal)), this, SLOT(sizeChanged()));
diff --git a/src/declarative/util/qfxperf.cpp b/src/declarative/util/qfxperf.cpp
deleted file mode 100644
index 5611c49..0000000
--- a/src/declarative/util/qfxperf.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qfxperf_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-Q_DEFINE_PERFORMANCE_LOG(QDeclarativePerf, "QDeclarativeGraphics") {
- Q_DEFINE_PERFORMANCE_METRIC(QDeclarativeParsing, "Compilation: QML Parsing")
- Q_DEFINE_PERFORMANCE_METRIC(Compilation, " QML Compilation")
- Q_DEFINE_PERFORMANCE_METRIC(VMEExecution, "Execution: QML VME Execution")
- Q_DEFINE_PERFORMANCE_METRIC(BindInit, "BindValue Initialization")
- Q_DEFINE_PERFORMANCE_METRIC(BindValue, "BindValue execution")
- Q_DEFINE_PERFORMANCE_METRIC(BindValueSSE, "BindValue execution SSE")
- Q_DEFINE_PERFORMANCE_METRIC(BindValueQt, "BindValue execution QtScript")
- Q_DEFINE_PERFORMANCE_METRIC(BindableValueUpdate, "QDeclarativeBinding::update")
- Q_DEFINE_PERFORMANCE_METRIC(PixmapLoad, "Pixmap loading")
- Q_DEFINE_PERFORMANCE_METRIC(FontDatabase, "Font database creation")
- Q_DEFINE_PERFORMANCE_METRIC(QDeclarativePathViewPathCache, "FX Items: QDeclarativePathView: Path cache")
- Q_DEFINE_PERFORMANCE_METRIC(CreateParticle, " QDeclarativeParticles: Particle creation")
- Q_DEFINE_PERFORMANCE_METRIC(ItemComponentComplete, " QDeclarativeItem::componentComplete")
- Q_DEFINE_PERFORMANCE_METRIC(ImageComponentComplete, " QDeclarativeImage::componentComplete")
- Q_DEFINE_PERFORMANCE_METRIC(BaseLayoutComponentComplete, " QDeclarativeBasePositioner::componentComplete")
- Q_DEFINE_PERFORMANCE_METRIC(TextComponentComplete, " QDeclarativeText::componentComplete")
- Q_DEFINE_PERFORMANCE_METRIC(QDeclarativeText_setText, " QDeclarativeText::setText")
- Q_DEFINE_PERFORMANCE_METRIC(AddScript, "QDeclarativeScript::addScriptToEngine")
-}
-
-QT_END_NAMESPACE
diff --git a/src/declarative/util/qfxperf_p_p.h b/src/declarative/util/qfxperf_p_p.h
deleted file mode 100644
index 8b65821..0000000
--- a/src/declarative/util/qfxperf_p_p.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef QFXPERF_H
-#define QFXPERF_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qperformancelog_p_p.h"
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Declarative)
-
-Q_DECLARE_PERFORMANCE_LOG(QDeclarativePerf) {
- Q_DECLARE_PERFORMANCE_METRIC(QDeclarativeParsing)
-
- Q_DECLARE_PERFORMANCE_METRIC(Compilation)
- Q_DECLARE_PERFORMANCE_METRIC(VMEExecution)
-
- Q_DECLARE_PERFORMANCE_METRIC(BindInit)
- Q_DECLARE_PERFORMANCE_METRIC(BindValue)
- Q_DECLARE_PERFORMANCE_METRIC(BindValueSSE)
- Q_DECLARE_PERFORMANCE_METRIC(BindValueQt)
- Q_DECLARE_PERFORMANCE_METRIC(BindableValueUpdate)
- Q_DECLARE_PERFORMANCE_METRIC(PixmapLoad)
- Q_DECLARE_PERFORMANCE_METRIC(FontDatabase)
- Q_DECLARE_PERFORMANCE_METRIC(QDeclarativePathViewPathCache)
- Q_DECLARE_PERFORMANCE_METRIC(CreateParticle)
- Q_DECLARE_PERFORMANCE_METRIC(ItemComponentComplete)
- Q_DECLARE_PERFORMANCE_METRIC(ImageComponentComplete)
- Q_DECLARE_PERFORMANCE_METRIC(BaseLayoutComponentComplete)
- Q_DECLARE_PERFORMANCE_METRIC(TextComponentComplete)
- Q_DECLARE_PERFORMANCE_METRIC(QDeclarativeText_setText)
- Q_DECLARE_PERFORMANCE_METRIC(AddScript)
-}
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QFXPERF_H
diff --git a/src/declarative/util/qperformancelog.cpp b/src/declarative/util/qperformancelog.cpp
deleted file mode 100644
index 83cc919..0000000
--- a/src/declarative/util/qperformancelog.cpp
+++ /dev/null
@@ -1,181 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qperformancelog_p_p.h"
-
-#include <QHash>
-#include <QDebug>
-
-QT_BEGIN_NAMESPACE
-
-#ifdef Q_ENABLE_PERFORMANCE_LOG
-
-struct QPerformanceLogData
-{
- struct Log
- {
- Log()
- : logDescription(0), maxId(-1) {}
-
- QHash<int, const char *> descriptions;
- const char *logDescription;
- int maxId;
- };
-
- typedef QHash<QPerformanceLog::LogData *, Log> Logs;
- Logs logs;
-};
-Q_GLOBAL_STATIC(QPerformanceLogData, performanceLogData);
-
-QPerformanceLog::LogData::LogData(const char *desc)
-: sumTime(0), data(0)
-{
- QPerformanceLogData *logData = performanceLogData();
-
- QPerformanceLogData::Log log;
- log.logDescription = desc;
- logData->logs.insert(this, log);
-
- timer.start();
-}
-
-QPerformanceLog::LogMetric::LogMetric(LogData *l, int id, const char *desc)
-{
- if (id < 0)
- qFatal("QPerformanceLog: Invalid log id %d ('%s')", id, desc);
-
- QPerformanceLogData *logData = performanceLogData();
-
- QPerformanceLogData::Logs::Iterator logIter = logData->logs.find(l);
- if (logIter == logData->logs.end())
- qFatal("QPerformanceLog: Unable to locate log for metric '%s'", desc);
- QPerformanceLogData::Log &log = *logIter;
- if (log.descriptions.contains(id))
- qFatal("QPerformanceLog: Duplicate log metric %d ('%s')", id, desc);
- log.descriptions.insert(id, desc);
-
- if (log.maxId < id) {
- log.maxId = id;
- if (l->data) delete [] l->data;
- l->data = new unsigned int[2 * (log.maxId + 1)];
- ::memset(l->data, 0, 2 * (log.maxId + 1) * sizeof(unsigned int));
- }
-}
-
-static void QPerformanceLog_clear(QPerformanceLog::LogData *l, const QPerformanceLogData::Log *pl)
-{
- ::memset(l->data, 0, 2 * (pl->maxId + 1) * sizeof(unsigned int));
-}
-
-static void QPerformanceLog_displayData(const QPerformanceLog::LogData *l, const QPerformanceLogData::Log *pl)
-{
- qWarning() << pl->logDescription << "performance data";
- unsigned int total = 0;
- for (QHash<int, const char *>::ConstIterator iter = pl->descriptions.begin();
- iter != pl->descriptions.end();
- ++iter) {
-
- int id = iter.key();
- unsigned int ms = l->data[id * 2];
- total += ms;
- unsigned int inst = l->data[id * 2 + 1];
- float pi = float(ms) / float(inst);
- qWarning().nospace() << " " << *iter << ": " << ms << " ms over "
- << inst << " instances (" << pi << " ms/instance)";
- }
- qWarning().nospace() << " TOTAL: " << total;
-}
-
-void QPerformanceLog::displayData()
-{
- QPerformanceLogData *logData = performanceLogData();
-
- for (QPerformanceLogData::Logs::ConstIterator iter = logData->logs.begin();
- iter != logData->logs.end();
- ++iter) {
- QPerformanceLog_displayData(iter.key(), &(*iter));
- }
-}
-
-void QPerformanceLog::clear()
-{
- QPerformanceLogData *logData = performanceLogData();
-
- for (QPerformanceLogData::Logs::ConstIterator iter = logData->logs.begin();
- iter != logData->logs.end();
- ++iter) {
- QPerformanceLog_clear(iter.key(), &(*iter));
- }
-}
-
-void QPerformanceLog::displayData(LogData *l)
-{
- QPerformanceLogData *logData = performanceLogData();
- QPerformanceLogData::Logs::ConstIterator iter = logData->logs.find(l);
- if (iter == logData->logs.end())
- qFatal("QPerformanceLog: Internal corruption - unable to locate log");
-
- QPerformanceLog_displayData(iter.key(), &(*iter));
-}
-
-void QPerformanceLog::clear(LogData *l)
-{
- QPerformanceLogData *logData = performanceLogData();
- QPerformanceLogData::Logs::ConstIterator iter = logData->logs.find(l);
- if (iter == logData->logs.end())
- qFatal("QPerformanceLog: Internal corruption - unable to locate log");
-
- QPerformanceLog_clear(iter.key(), &(*iter));
-}
-
-#else // Q_ENABLE_PERFORMANCE_LOG
-
-void QPerformanceLog::displayData()
-{
-}
-
-void QPerformanceLog::clear()
-{
-}
-
-#endif // Q_ENABLE_PERFORMANCE_LOG
-
-QT_END_NAMESPACE
diff --git a/src/declarative/util/qperformancelog_p_p.h b/src/declarative/util/qperformancelog_p_p.h
deleted file mode 100644
index a212f28..0000000
--- a/src/declarative/util/qperformancelog_p_p.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QPERFORMANCELOG_H
-#define QPERFORMANCELOG_H
-
-#include <QtCore/qdatetime.h>
-
-QT_BEGIN_NAMESPACE
-
-namespace QPerformanceLog
-{
- Q_DECLARATIVE_EXPORT void displayData();
- Q_DECLARATIVE_EXPORT void clear();
-
-#ifdef Q_ENABLE_PERFORMANCE_LOG
- struct LogData {
- LogData(const char *);
- QTime timer;
- int sumTime;
- unsigned int *data;
- };
-
- struct LogMetric {
- LogMetric(LogData *, int, const char *);
- };
-
- // Internal
- void displayData(LogData *);
- void clear(LogData *);
-#endif
-}
-
-#ifdef Q_ENABLE_PERFORMANCE_LOG
-
-#define Q_DECLARE_PERFORMANCE_METRIC(name) \
- enum { name = ValueChoice<0, ValueTracker<0, __LINE__>::value, __LINE__>::value }; \
- template<int L> \
- struct ValueTracker<name, L> \
- { \
- enum { value = name }; \
- }; \
- extern QPerformanceLog::LogMetric metric ## name;
-
-#define Q_DECLARE_PERFORMANCE_LOG(name) \
- namespace name { \
- extern QPerformanceLog::LogData log; \
- inline void displayData() { QPerformanceLog::displayData(&log); } \
- inline void clear() { QPerformanceLog::clear(&log); } \
- } \
- template<int N> \
- class name ## Timer { \
- public: \
- name ## Timer() { \
- lastSum = name::log.sumTime + name::log.timer.restart(); \
- name::log.sumTime = 0; \
- } \
- ~ name ## Timer() { \
- name::log.data[2 * N] += name::log.sumTime + name::log.timer.restart(); \
- ++name::log.data[2 * N + 1]; \
- name::log.sumTime = lastSum; \
- } \
- private: \
- int lastSum; \
- }; \
- namespace name { \
- template<int N, int L> \
- struct ValueTracker \
- { \
- enum { value = -1 }; \
- }; \
- template<int DefNextValue, int NextValue, int L> \
- struct ValueChoice \
- { \
- enum { value = ValueChoice<DefNextValue + 1, ValueTracker<DefNextValue + 1, L>::value, L>::value }; \
- }; \
- template<int DefNextValue, int L> \
- struct ValueChoice<DefNextValue, -1, L> \
- { \
- enum { value = DefNextValue }; \
- }; \
- } \
- namespace name
-
-#define Q_DEFINE_PERFORMANCE_LOG(name, desc) \
- QPerformanceLog::LogData name::log(desc); \
- namespace name
-
-#define Q_DEFINE_PERFORMANCE_METRIC(name, desc) \
- QPerformanceLog::LogMetric metrix ## name(&log, name, desc);
-
-#else // Q_ENABLE_PERFORMANCE_LOG
-
-#define Q_DECLARE_PERFORMANCE_METRIC(name)
-#define Q_DECLARE_PERFORMANCE_LOG(name) namespace name
-#define Q_DEFINE_PERFORMANCE_LOG(name, desc) namespace name
-#define Q_DEFINE_PERFORMANCE_METRIC(name, desc)
-
-#endif // Q_ENABLE_PERFORMANCE_LOG
-
-QT_END_NAMESPACE
-
-#endif // QPERFORMANCELOG_H
diff --git a/src/declarative/util/util.pri b/src/declarative/util/util.pri
index ddf00ea..f537806 100644
--- a/src/declarative/util/util.pri
+++ b/src/declarative/util/util.pri
@@ -3,8 +3,6 @@ INCLUDEPATH += $$PWD
SOURCES += \
$$PWD/qdeclarativeutilmodule.cpp\
$$PWD/qdeclarativeview.cpp \
- $$PWD/qfxperf.cpp \
- $$PWD/qperformancelog.cpp \
$$PWD/qdeclarativeconnections.cpp \
$$PWD/qdeclarativepackage.cpp \
$$PWD/qdeclarativeanimation.cpp \
@@ -33,8 +31,6 @@ SOURCES += \
HEADERS += \
$$PWD/qdeclarativeutilmodule_p.h\
$$PWD/qdeclarativeview.h \
- $$PWD/qfxperf_p_p.h \
- $$PWD/qperformancelog_p_p.h \
$$PWD/qdeclarativeconnections_p.h \
$$PWD/qdeclarativepackage_p.h \
$$PWD/qdeclarativeanimation_p.h \
@@ -62,8 +58,7 @@ HEADERS += \
$$PWD/qdeclarativebehavior_p.h \
$$PWD/qdeclarativefontloader_p.h \
$$PWD/qdeclarativestyledtext_p.h \
- $$PWD/qdeclarativelistmodelworkeragent_p.h \
- $$PWD/qdeclarativelistmodelworkeragent_p_p.h
+ $$PWD/qdeclarativelistmodelworkeragent_p.h
contains(QT_CONFIG, xmlpatterns) {
QT+=xmlpatterns