From 5405740678314389e6e5477a3ed76819a60aeb37 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 9 Apr 2010 11:41:18 +1000 Subject: Ensure GridView content position is stable when moving items. Task-number: QTBUG-9697 --- src/declarative/graphicsitems/qdeclarativegridview.cpp | 2 ++ .../declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp index f832f12..9be025a 100644 --- a/src/declarative/graphicsitems/qdeclarativegridview.cpp +++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp @@ -2166,6 +2166,8 @@ void QDeclarativeGridView::itemsMoved(int from, int to, int count) if (!movedItem) movedItem = d->createItem(item->index); it = d->visibleItems.insert(it, movedItem); + if (it == d->visibleItems.begin() && firstItem) + movedItem->setPosition(firstItem->colPos(), firstItem->rowPos()); ++it; --remaining; } else { diff --git a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp index dd594774..7add9c6 100644 --- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp +++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp @@ -578,6 +578,11 @@ void tst_QDeclarativeGridView::moved() QCOMPARE(number->text(), model.number(i)); } + // ensure content position is stable + gridview->setContentY(0); + model.moveItem(10, 0); + QVERIFY(gridview->contentY() == 0); + delete canvas; } -- cgit v0.12