From: Martin Jones Date: Wed, 27 Jul 2011 06:56:08 +0000 (+1000) Subject: Fix insertion of one item in ListView. X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=a8d3802938df60a74990c2c915446061b047057d;p=konrad%2Fqtdeclarative.git Fix insertion of one item in ListView. Off-by-one meant that the item was not created by the ListView. Change-Id: If9658487a615e189c21c419e4d29e7e709e05cef Fixes: QTBUG-19675 Reviewed-on: http://codereview.qt.nokia.com/2251 Reviewed-by: Qt Sanity Bot Reviewed-by: Bea Lam --- diff --git a/src/qtquick1/graphicsitems/qdeclarativelistview.cpp b/src/qtquick1/graphicsitems/qdeclarativelistview.cpp index 8fafdbe..e24b630 100644 --- a/src/qtquick1/graphicsitems/qdeclarativelistview.cpp +++ b/src/qtquick1/graphicsitems/qdeclarativelistview.cpp @@ -3287,7 +3287,7 @@ void QDeclarative1ListView::itemsInserted(int modelIndex, int count) } } else { int i = 0; - int to = d->buffer+tempPos+d->size()-1; + int to = d->buffer+tempPos+d->size(); for (i = 0; i < count && pos <= to; ++i) { if (!addedVisible) { d->scheduleLayout(); diff --git a/tests/auto/declarative/qsglistview/tst_qsglistview.cpp b/tests/auto/declarative/qsglistview/tst_qsglistview.cpp index a3b5cd6..e2e4b04 100644 --- a/tests/auto/declarative/qsglistview/tst_qsglistview.cpp +++ b/tests/auto/declarative/qsglistview/tst_qsglistview.cpp @@ -620,6 +620,14 @@ void tst_QSGListView::inserted() // QTRY_COMPARE(listview->contentItemHeight(), model.count() * 20.0); + // QTBUG-19675 + model.clear(); + model.insertItem(0, "Hello", "1234"); + QSGItem *item = findItem(contentItem, "wrapper", 0); + QVERIFY(item); + QCOMPARE(item->y(), 0.); + QVERIFY(listview->contentY() == 0); + delete canvas; delete testObject; } diff --git a/tests/auto/qtquick1/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/qtquick1/qdeclarativelistview/tst_qdeclarativelistview.cpp index d55a851..0742673 100644 --- a/tests/auto/qtquick1/qdeclarativelistview/tst_qdeclarativelistview.cpp +++ b/tests/auto/qtquick1/qdeclarativelistview/tst_qdeclarativelistview.cpp @@ -557,6 +557,14 @@ void tst_QDeclarative1ListView::inserted() // QTRY_COMPARE(listview->contentItemHeight(), model.count() * 20.0); + // QTBUG-19675 + model.clear(); + model.insertItem(0, "Hello", "1234"); + QDeclarativeItem *item = findItem(contentItem, "wrapper", 0); + QVERIFY(item); + QCOMPARE(item->y(), 0.); + QVERIFY(listview->contentY() == 0); + delete canvas; delete testObject; }