aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorBea Lam <bea.lam@nokia.com>2012-04-20 17:02:38 +1000
committerQt by Nokia <qt-info@nokia.com>2012-04-23 08:31:47 +0200
commita0adcc6480bce8ca4f91afc792176d313f92ecee (patch)
tree509d2db557f954346d8abf9aaf0dd2785e44a92e /src/quick
parent13ded224ed2c8847101f325e92a7283615f6a73a (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.cpp6
-rw-r--r--src/quick/items/qquickitemviewtransition.cpp4
-rw-r--r--src/quick/items/qquickitemviewtransition_p.h2
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;