diff options
author | Bea Lam <bea.lam@nokia.com> | 2012-03-01 17:37:11 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-02 06:14:49 +0100 |
commit | 3b01983d4f21cbd53745bb9132b9b2fffb019077 (patch) | |
tree | c1da90b7573740b189b1f164f75345417df0c920 /src/quick/items/qquickitemviewtransition_p.h | |
parent | e8ee323b9f7889ec1423cece7a3ab6f116a6ff14 (diff) |
Fix if transitioner is deleted before transition job finishes
Don't let TransitionJob call finishedTransition() on a deleted
transitioner. Also don't use target transitions that are not
enabled.
Change-Id: I94d58e8c7b072f7f3d76533956cac2d63ac33ff6
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
Diffstat (limited to 'src/quick/items/qquickitemviewtransition_p.h')
-rw-r--r-- | src/quick/items/qquickitemviewtransition_p.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/quick/items/qquickitemviewtransition_p.h b/src/quick/items/qquickitemviewtransition_p.h index 8dd2f86899..1ebc52c185 100644 --- a/src/quick/items/qquickitemviewtransition_p.h +++ b/src/quick/items/qquickitemviewtransition_p.h @@ -77,14 +77,20 @@ public: }; QQuickItemViewTransitioner(); - virtual ~QQuickItemViewTransitioner() {} + virtual ~QQuickItemViewTransitioner(); bool canTransition(QQuickItemViewTransitioner::TransitionType type, bool asTarget) const; void transitionNextReposition(QQuickViewItem *item, QQuickItemViewTransitioner::TransitionType type, bool isTarget); + QDeclarativeTransition *transitionObject(QQuickItemViewTransitioner::TransitionType type, bool asTarget); + const QList<int> &targetIndexes(QQuickItemViewTransitioner::TransitionType type) const; + const QList<QObject *> &targetItems(QQuickItemViewTransitioner::TransitionType type) const; + inline void setPopulateTransitionEnabled(bool b) { usePopulateTransition = b; } inline void setChangeListener(QQuickItemViewTransitionChangeListener *obj) { changeListener = obj; } + QSet<QQuickItemViewTransitionJob *> runningJobs; + QList<int> addTransitionIndexes; QList<int> moveTransitionIndexes; QList<int> removeTransitionIndexes; @@ -107,7 +113,7 @@ private: QQuickItemViewTransitionChangeListener *changeListener; bool usePopulateTransition; - void finishedTransition(QQuickViewItem *item); + void finishedTransition(QQuickItemViewTransitionJob *job, QQuickViewItem *item); }; |