diff options
author | Bea Lam <bea.lam@nokia.com> | 2012-04-20 17:02:38 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-23 08:31:47 +0200 |
commit | a0adcc6480bce8ca4f91afc792176d313f92ecee (patch) | |
tree | 509d2db557f954346d8abf9aaf0dd2785e44a92e /src/quick | |
parent | 13ded224ed2c8847101f325e92a7283615f6a73a (diff) |
Only run populate for items in model at creation
Don't run for items added in Component.onCompleted.
Change-Id: I58745ab989efae168d036875cb2fb88e3e2db0c3
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/qquickitemview.cpp | 6 | ||||
-rw-r--r-- | src/quick/items/qquickitemviewtransition.cpp | 4 | ||||
-rw-r--r-- | src/quick/items/qquickitemviewtransition_p.h | 2 |
3 files changed, 7 insertions, 5 deletions
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp index 95c7ed5f78..2a26e853cb 100644 --- a/src/quick/items/qquickitemview.cpp +++ b/src/quick/items/qquickitemview.cpp @@ -1752,8 +1752,10 @@ void QQuickItemViewPrivate::layout() forceLayout = false; if (transitioner && transitioner->canTransition(QQuickItemViewTransitioner::PopulateTransition, true)) { - for (int i=0; i<visibleItems.count(); i++) - visibleItems.at(i)->transitionNextReposition(transitioner, QQuickItemViewTransitioner::PopulateTransition, true); + for (int i=0; i<visibleItems.count(); i++) { + if (!visibleItems.at(i)->transitionScheduledOrRunning()) + visibleItems.at(i)->transitionNextReposition(transitioner, QQuickItemViewTransitioner::PopulateTransition, true); + } } layoutVisibleItems(); diff --git a/src/quick/items/qquickitemviewtransition.cpp b/src/quick/items/qquickitemviewtransition.cpp index cdc1c19518..c680945e04 100644 --- a/src/quick/items/qquickitemviewtransition.cpp +++ b/src/quick/items/qquickitemviewtransition.cpp @@ -189,8 +189,6 @@ bool QQuickItemViewTransitioner::canTransition(QQuickItemViewTransitioner::Trans return usePopulateTransition && populateTransition && populateTransition->enabled(); case AddTransition: - if (usePopulateTransition) - return false; if (asTarget) return addTransition && addTransition->enabled(); else @@ -437,7 +435,7 @@ bool QQuickItemViewTransitionableItem::prepareTransition(QQuickItemViewTransitio } case QQuickItemViewTransitioner::PopulateTransition: { - doTransition = true; + doTransition = viewBounds.intersects(QRectF(nextTransitionTo.x(), nextTransitionTo.y(), item->width(), item->height())); break; } case QQuickItemViewTransitioner::AddTransition: diff --git a/src/quick/items/qquickitemviewtransition_p.h b/src/quick/items/qquickitemviewtransition_p.h index 0ec87ba51c..76f5cc9c59 100644 --- a/src/quick/items/qquickitemviewtransition_p.h +++ b/src/quick/items/qquickitemviewtransition_p.h @@ -90,6 +90,8 @@ public: const QList<QObject *> &targetItems(QQuickItemViewTransitioner::TransitionType type) const; inline void setPopulateTransitionEnabled(bool b) { usePopulateTransition = b; } + inline bool populateTransitionEnabled() const { return usePopulateTransition; } + inline void setChangeListener(QQuickItemViewTransitionChangeListener *obj) { changeListener = obj; } QSet<QQuickItemViewTransitionJob *> runningJobs; |