diff options
author | Bea Lam <bea.lam@nokia.com> | 2012-02-27 13:16:11 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-02 06:14:49 +0100 |
commit | 79608d6f72ea5963aed2fa161b9ef6781adbc41e (patch) | |
tree | 2837eb82b5b45a73ead1045d473359b4dcb97592 /src/quick/items/qquickpositioners_p.h | |
parent | 3b01983d4f21cbd53745bb9132b9b2fffb019077 (diff) |
Improved transitions for Row, Column, Grid, Flow
The view transitions functionality for ListView and GridView has been
integrated into the positioner elements. Not all of this
functionality is available for positioners, though, since they don't
have models (and thus cannot identify certain model operations) and
they don't manage the lifetime of their children.
Task-number: QTBUG-24336
Change-Id: I71588de289555d2ef5a763af11358bc0af7b31a7
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
Diffstat (limited to 'src/quick/items/qquickpositioners_p.h')
-rw-r--r-- | src/quick/items/qquickpositioners_p.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/quick/items/qquickpositioners_p.h b/src/quick/items/qquickpositioners_p.h index a4f18cfc21..32dd9030fe 100644 --- a/src/quick/items/qquickpositioners_p.h +++ b/src/quick/items/qquickpositioners_p.h @@ -43,6 +43,7 @@ #define QQUICKPOSITIONERS_P_H #include "qquickimplicitsizeitem_p.h" +#include "qquickitemviewtransition_p.h" #include <QtQuick/private/qdeclarativestate_p.h> #include <private/qpodvector_p.h> @@ -96,6 +97,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickBasePositioner : public QQuickImplicitSizeIte Q_PROPERTY(QDeclarativeTransition *add READ add WRITE setAdd NOTIFY addChanged) public: enum PositionerType { None = 0x0, Horizontal = 0x1, Vertical = 0x2, Both = 0x3 }; + QQuickBasePositioner(PositionerType, QQuickItem *parent); ~QQuickBasePositioner(); @@ -116,7 +118,6 @@ protected: QQuickBasePositioner(QQuickBasePositionerPrivate &dd, PositionerType at, QQuickItem *parent); virtual void componentComplete(); virtual void itemChange(ItemChange, const ItemChangeData &); - void finishApplyTransitions(); virtual void updatePolish(); @@ -131,19 +132,22 @@ protected Q_SLOTS: protected: virtual void doPositioning(QSizeF *contentSize)=0; virtual void reportConflictingAnchors()=0; - class PositionedItem { + + class PositionedItem : public QQuickViewItem + { public : - PositionedItem(QQuickItem *i) : item(i), isNew(false), isVisible(true) {} + PositionedItem(QQuickItem *i) : QQuickViewItem(i), isNew(false), isVisible(true) {} bool operator==(const PositionedItem &other) const { return other.item == item; } - QQuickItem *item; + bool isNew; bool isVisible; }; QPODVector<PositionedItem,8> positionedItems; QPODVector<PositionedItem,8> unpositionedItems;//Still 'in' the positioner, just not positioned - void positionX(qreal,const PositionedItem &target); - void positionY(qreal,const PositionedItem &target); + void positionItem(qreal x, qreal y, PositionedItem *target); + void positionItemX(qreal, PositionedItem *target); + void positionItemY(qreal, PositionedItem *target); private: Q_DISABLE_COPY(QQuickBasePositioner) |