summaryrefslogtreecommitdiff
path: root/src/declarative/items/qquickgridview.cpp
diff options
context:
space:
mode:
authorCharles Yin <charles.yin@nokia.com>2011-11-14 10:35:51 +1000
committerCharles Yin <charles.yin@nokia.com>2011-11-14 10:35:51 +1000
commitfc54db69809a16f613f65a2761fab55d5911b02c (patch)
treea00d9284eb13f81f5b195f8a4c6cfee03edb4f17 /src/declarative/items/qquickgridview.cpp
parent35275892ca8a7046451b8e943985dd779fee4794 (diff)
parent2557ff5a940242b398dee65c3c79cec088164e32 (diff)
downloadqtdeclarative-fc54db69809a16f613f65a2761fab55d5911b02c.tar.gz
Merge branch 'master' into animation-refactor
Conflicts: tools/qmlviewer/qdeclarativetester.cpp tools/qmlviewer/qmlruntime.cpp Change-Id: I48f0eb02df27e4b524f45927939b4c257452b0aa
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)