diff options
author | Bea Lam <bea.lam@nokia.com> | 2012-01-25 17:24:05 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-01 08:37:49 +0100 |
commit | 279e4ae7dd9c0b60c2e4dccb31363eb6bac04918 (patch) | |
tree | 64da3fa74828ce2e292c9de176aaaa95bd6a22a4 /src/quick/items/qquickgridview.cpp | |
parent | e77ea6f2fa8e98cb4a03144664a31b6070635a63 (diff) |
Fixes for removing before visible
Account for removing multiple items over visible and non-visible items
and calculate these using the index of the first visible item rather
than the visibleIndex (which can be above the visible position).
Also, don't take the changeBeforeVisible into account if the first
visible is already being adjusted, otherwise it moves back one more row
than it should.
Change-Id: Iea7247102e06697d10eb41301ca689c0cdc35ece
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/quick/items/qquickgridview.cpp')
-rw-r--r-- | src/quick/items/qquickgridview.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/quick/items/qquickgridview.cpp b/src/quick/items/qquickgridview.cpp index 60514b27f8..8f8fac7cc8 100644 --- a/src/quick/items/qquickgridview.cpp +++ b/src/quick/items/qquickgridview.cpp @@ -609,9 +609,8 @@ void QQuickGridViewPrivate::adjustFirstItem(qreal forwards, qreal backwards, int return; int moveCount = (forwards - backwards) / rowSize(); - - if (changeBeforeVisible) - moveCount += (changeBeforeVisible%columns) - (columns - 1); + if (moveCount == 0 && changeBeforeVisible != 0) + moveCount += (changeBeforeVisible % columns) - (columns - 1); FxGridItemSG *gridItem = static_cast<FxGridItemSG*>(visibleItems.first()); gridItem->setPosition(gridItem->colPos(), gridItem->rowPos() + ((moveCount / columns) * rowSize())); |