summaryrefslogtreecommitdiff
path: root/src/declarative/items/qquickgridview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/items/qquickgridview.cpp')
-rw-r--r--src/declarative/items/qquickgridview.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/declarative/items/qquickgridview.cpp b/src/declarative/items/qquickgridview.cpp
index 4d715a9cb2..1d258b1fa6 100644
--- a/src/declarative/items/qquickgridview.cpp
+++ b/src/declarative/items/qquickgridview.cpp
@@ -182,6 +182,7 @@ public:
virtual void setPosition(qreal pos);
virtual void layoutVisibleItems();
bool applyInsertionChange(const QDeclarativeChangeSet::Insert &, FxViewItem *, InsertionsResult *);
+ virtual bool needsRefillForAddedOrRemovedIndex(int index) const;
virtual qreal headerSize() const;
virtual qreal footerSize() const;
@@ -340,9 +341,6 @@ qreal QQuickGridViewPrivate::snapPosAt(qreal pos) const
qreal snapPos = 0;
if (!visibleItems.isEmpty()) {
qreal highlightStart = highlightRangeStart;
- if (isRightToLeftTopToBottom())
- highlightStart = highlightRangeEndValid ? -size() + highlightRangeEnd : -size();
-
pos += highlightStart;
pos += rowSize()/2;
snapPos = static_cast<FxGridItemSG*>(visibleItems.first())->rowPos() - visibleIndex / columns * rowSize();
@@ -351,8 +349,8 @@ qreal QQuickGridViewPrivate::snapPosAt(qreal pos) const
qreal maxExtent;
qreal minExtent;
if (isRightToLeftTopToBottom()) {
- maxExtent = q->minXExtent();
- minExtent = q->maxXExtent();
+ maxExtent = q->minXExtent()-size();
+ minExtent = q->maxXExtent()-size();
} else {
maxExtent = flow == QQuickGridView::LeftToRight ? -q->maxYExtent() : -q->maxXExtent();
minExtent = flow == QQuickGridView::LeftToRight ? -q->minYExtent() : -q->minXExtent();
@@ -1861,6 +1859,13 @@ bool QQuickGridViewPrivate::applyInsertionChange(const QDeclarativeChangeSet::In
return insertResult->addedItems.count() > prevAddedCount;
}
+bool QQuickGridViewPrivate::needsRefillForAddedOrRemovedIndex(int modelIndex) const
+{
+ // If we add or remove items before visible items, a layout may be
+ // required to ensure item 0 is in the first column.
+ return modelIndex < visibleIndex;
+}
+
/*!
\qmlmethod QtQuick2::GridView::positionViewAtIndex(int index, PositionMode mode)