From 56c9ce5fac873e5c1e20a6a965eb750a81373968 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 8 Jun 2017 11:18:50 +0200 Subject: Fix QQuickContainerPrivate::itemSiblingOrderChanged() Repeaters are not part of the content model. Exclude them when calculating the target index when the order of items changes. Task-number: QTBUG-61310 Change-Id: Iaedd59288ed38e985a34ed8e1f515fdfb50d74e6 Reviewed-by: Mitch Curtis --- src/quicktemplates2/qquickcontainer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/quicktemplates2/qquickcontainer.cpp') diff --git a/src/quicktemplates2/qquickcontainer.cpp b/src/quicktemplates2/qquickcontainer.cpp index 6177d200..919eff70 100644 --- a/src/quicktemplates2/qquickcontainer.cpp +++ b/src/quicktemplates2/qquickcontainer.cpp @@ -332,10 +332,14 @@ void QQuickContainerPrivate::itemSiblingOrderChanged(QQuickItem *) // reorder the restacked items (eg. by a Repeater) Q_Q(QQuickContainer); QList siblings = effectiveContentItem(contentItem)->childItems(); + + int to = 0; for (int i = 0; i < siblings.count(); ++i) { QQuickItem* sibling = siblings.at(i); + if (QQuickItemPrivate::get(sibling)->isTransparentForPositioner()) + continue; int index = contentModel->indexOf(sibling, nullptr); - q->moveItem(index, i); + q->moveItem(index, to++); } } -- cgit v1.2.3