aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2012-02-03 10:55:19 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-07 01:15:25 +0100
commit201edf3a34c7a69f5ab905c286ab12b975cdc3da (patch)
treee86369415b0ecf3685c58c4ab18d6e4701e7af45
parent41462816074b3309efa31febf224120aa66237df (diff)
Section header is not made visible when changing currentIndex.
Make section header visible when setting currentIndex to an item on a section boundary. Could also affect initial position if view size started at 0. Change-Id: Ie65f91826311d34a290d369d8956f1c88f7efb70 Reviewed-by: Bea Lam <bea.lam@nokia.com>
-rw-r--r--src/quick/items/qquickitemview.cpp8
-rw-r--r--tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp7
2 files changed, 12 insertions, 3 deletions
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp
index 513a600046..f09be2b54f 100644
--- a/src/quick/items/qquickitemview.cpp
+++ b/src/quick/items/qquickitemview.cpp
@@ -817,9 +817,6 @@ void QQuickItemView::trackedPositionChanged()
if (d->moveReason == QQuickItemViewPrivate::SetIndex) {
qreal trackedPos = d->trackedItem->position();
qreal trackedSize = d->trackedItem->size();
- if (d->trackedItem != d->currentItem) {
- trackedSize += d->currentItem->sectionSize();
- }
qreal viewPos = d->isContentFlowReversed() ? -d->position()-d->size() : d->position();
qreal pos = viewPos;
if (d->haveHighlightRange) {
@@ -834,6 +831,11 @@ void QQuickItemView::trackedPositionChanged()
pos = d->startPosition();
}
} else {
+ if (d->trackedItem != d->currentItem) {
+ // also make section header visible
+ trackedPos -= d->currentItem->sectionSize();
+ trackedSize += d->currentItem->sectionSize();
+ }
qreal trackedEndPos = d->trackedItem->endPosition();
qreal toItemPos = d->currentItem->position();
qreal toItemEndPos = d->currentItem->endPosition();
diff --git a/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp b/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp
index 9dd72aeeaf..3915d13de5 100644
--- a/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp
+++ b/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp
@@ -2118,6 +2118,13 @@ void tst_QQuickListView::sectionsDelegate()
QTRY_COMPARE(item->y(), qreal(i*20*6));
}
+ // ensure section header is maintained in view
+ listview->setCurrentIndex(20);
+ QTRY_VERIFY(listview->contentY() >= 200.0);
+ listview->setCurrentIndex(0);
+ QTRY_COMPARE(listview->contentY(), 0.0);
+
+ // change section
model.modifyItem(0, "One", "aaa");
model.modifyItem(1, "Two", "aaa");
model.modifyItem(2, "Three", "aaa");