diff options
author | Bea Lam <bea.lam@nokia.com> | 2012-03-06 09:39:24 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-07 06:31:56 +0100 |
commit | 22a53bcd69d39a5ea128d53231e9e51455a98cc4 (patch) | |
tree | 182a6ff3c0871285f437a8470e19d2ad4f83a2cf /src/quick/items/qquickpositioners.cpp | |
parent | 83b4f5cc4f2661a41bbed4e17606a5e40bd06b7c (diff) |
Fix setting of target lists when target Transition is not set
Target items are now set from QQuickViewItem::prepareTransition()
instead of QQuickItemView and QQuickPositioner to ensure they are
for a displaced transition even if there is no matching target
transition.
Task-number: QTBUG-24535
Change-Id: I0a6c7e3c6198786527014d421b96fc562c6186dc
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/quick/items/qquickpositioners.cpp')
-rw-r--r-- | src/quick/items/qquickpositioners.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/quick/items/qquickpositioners.cpp b/src/quick/items/qquickpositioners.cpp index e1d0457916..e9a0c179e0 100644 --- a/src/quick/items/qquickpositioners.cpp +++ b/src/quick/items/qquickpositioners.cpp @@ -246,11 +246,8 @@ void QQuickBasePositioner::prePositioning() if (addedIndex < 0) addedIndex = posItem.index; PositionedItem *theItem = &positionedItems[positionedItems.count()-1]; - d->transitioner->transitionNextReposition(theItem, QQuickItemViewTransitioner::AddTransition, true); - d->transitioner->addTransitionIndexes << posItem.index; - d->transitioner->addTransitionTargets << posItem.item; } } } else { @@ -273,8 +270,6 @@ void QQuickBasePositioner::prePositioning() addedIndex = item->index; d->transitioner->transitionNextReposition(&positionedItems[positionedItems.count()-1], QQuickItemViewTransitioner::AddTransition, true); - d->transitioner->addTransitionIndexes << item->index; - d->transitioner->addTransitionTargets << item->item; } } else { item->isNew = false; @@ -307,12 +302,11 @@ void QQuickBasePositioner::prePositioning() if (d->transitioner) { QRectF viewBounds; - for (int i=0; i<positionedItems.count(); i++) { - if (positionedItems[i].prepareTransition(viewBounds)) - positionedItems[i].startTransition(d->transitioner); - } - d->transitioner->addTransitionIndexes.clear(); - d->transitioner->addTransitionTargets.clear(); + for (int i=0; i<positionedItems.count(); i++) + positionedItems[i].prepareTransition(d->transitioner, viewBounds); + for (int i=0; i<positionedItems.count(); i++) + positionedItems[i].startTransition(d->transitioner); + d->transitioner->resetTargetLists(); } d->doingPositioning = false; |