aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickpositioners.cpp
diff options
context:
space:
mode:
authorBea Lam <bea.lam@nokia.com>2012-03-06 09:39:24 +1000
committerQt by Nokia <qt-info@nokia.com>2012-03-07 06:31:56 +0100
commit22a53bcd69d39a5ea128d53231e9e51455a98cc4 (patch)
tree182a6ff3c0871285f437a8470e19d2ad4f83a2cf /src/quick/items/qquickpositioners.cpp
parent83b4f5cc4f2661a41bbed4e17606a5e40bd06b7c (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.cpp16
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;