aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickitemviewtransition_p.h
diff options
context:
space:
mode:
authorBea Lam <bea.lam@nokia.com>2012-03-01 17:37:11 +1000
committerQt by Nokia <qt-info@nokia.com>2012-03-02 06:14:49 +0100
commit3b01983d4f21cbd53745bb9132b9b2fffb019077 (patch)
treec1da90b7573740b189b1f164f75345417df0c920 /src/quick/items/qquickitemviewtransition_p.h
parente8ee323b9f7889ec1423cece7a3ab6f116a6ff14 (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.h10
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);
};