aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorBea Lam <bea.lam@nokia.com>2012-02-01 16:48:03 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-02 04:56:27 +0100
commit67ebd7014134df8c7981b815a99cd9d749e167db (patch)
tree75af05e865545cbf5611779143853d089184aa09 /src/quick
parentc1e668a96764d1a252322ebae3af72097c27dfe1 (diff)
Must update columns when GridView geometry changes
Regression from changes in 80d85e0017cb5cc4b0a0df6c19d4126bf5062731 Also remove shared duplicate code in visibleItemsChanged() in ListView and GridView. Change-Id: Ic3ab3ba070ddf9901a232ed5b3250c725797cf69 Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/quick')
-rw-r--r--src/quick/items/qquickgridview.cpp29
-rw-r--r--src/quick/items/qquickgridview_p.h1
-rw-r--r--src/quick/items/qquickitemview.cpp3
-rw-r--r--src/quick/items/qquickitemview_p_p.h2
-rw-r--r--src/quick/items/qquicklistview.cpp3
5 files changed, 23 insertions, 15 deletions
diff --git a/src/quick/items/qquickgridview.cpp b/src/quick/items/qquickgridview.cpp
index 8f8fac7cc8..80ab2ac55a 100644
--- a/src/quick/items/qquickgridview.cpp
+++ b/src/quick/items/qquickgridview.cpp
@@ -167,9 +167,10 @@ public:
FxViewItem *snapItemAt(qreal pos) const;
int snapIndex() const;
+ void resetColumns();
+
virtual bool addVisibleItems(qreal fillFrom, qreal fillTo, bool doBuffer);
virtual bool removeNonVisibleItems(qreal bufferFrom, qreal bufferTo);
- virtual void visibleItemsChanged();
virtual FxViewItem *newViewItem(int index, QQuickItem *item);
virtual void repositionPackageItemAt(QQuickItem *item, int index);
@@ -395,6 +396,13 @@ int QQuickGridViewPrivate::snapIndex() const
return index;
}
+void QQuickGridViewPrivate::resetColumns()
+{
+ Q_Q(QQuickGridView);
+ qreal length = flow == QQuickGridView::LeftToRight ? q->width() : q->height();
+ columns = (int)qMax((length + colSize()/2) / colSize(), qreal(1.));
+}
+
FxViewItem *QQuickGridViewPrivate::newViewItem(int modelIndex, QQuickItem *item)
{
Q_Q(QQuickGridView);
@@ -535,18 +543,9 @@ bool QQuickGridViewPrivate::removeNonVisibleItems(qreal bufferFrom, qreal buffer
return changed;
}
-void QQuickGridViewPrivate::visibleItemsChanged()
-{
- updateHeader();
- updateFooter();
- updateViewport();
-}
-
void QQuickGridViewPrivate::updateViewport()
{
- Q_Q(QQuickGridView);
- qreal length = flow == QQuickGridView::LeftToRight ? q->width() : q->height();
- columns = (int)qMax((length + colSize()/2) / colSize(), qreal(1.));
+ resetColumns();
QQuickItemViewPrivate::updateViewport();
}
@@ -1620,6 +1619,14 @@ void QQuickGridView::keyPressEvent(QKeyEvent *event)
event->ignore();
QQuickItemView::keyPressEvent(event);
}
+
+void QQuickGridView::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)
+{
+ Q_D(QQuickGridView);
+ d->resetColumns();
+ QQuickItemView::geometryChanged(newGeometry, oldGeometry);
+}
+
/*!
\qmlmethod QtQuick2::GridView::moveCurrentIndexUp()
diff --git a/src/quick/items/qquickgridview_p.h b/src/quick/items/qquickgridview_p.h
index 204e2744ab..8a2487bb07 100644
--- a/src/quick/items/qquickgridview_p.h
+++ b/src/quick/items/qquickgridview_p.h
@@ -108,6 +108,7 @@ Q_SIGNALS:
protected:
virtual void viewportMoved();
virtual void keyPressEvent(QKeyEvent *);
+ virtual void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry);
};
class QQuickGridViewAttached : public QQuickItemViewAttached
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp
index 3b264ab96b..a90d7cc8a0 100644
--- a/src/quick/items/qquickitemview.cpp
+++ b/src/quick/items/qquickitemview.cpp
@@ -1331,6 +1331,9 @@ void QQuickItemViewPrivate::refill(qreal from, qreal to)
markExtentsDirty();
updateBeginningEnd();
visibleItemsChanged();
+ updateHeader();
+ updateFooter();
+ updateViewport();
}
if (prevCount != itemCount)
diff --git a/src/quick/items/qquickitemview_p_p.h b/src/quick/items/qquickitemview_p_p.h
index 870baa04bc..56a22437ad 100644
--- a/src/quick/items/qquickitemview_p_p.h
+++ b/src/quick/items/qquickitemview_p_p.h
@@ -243,7 +243,7 @@ protected:
virtual bool addVisibleItems(qreal fillFrom, qreal fillTo, bool doBuffer) = 0;
virtual bool removeNonVisibleItems(qreal bufferFrom, qreal bufferTo) = 0;
- virtual void visibleItemsChanged() = 0;
+ virtual void visibleItemsChanged() {}
virtual FxViewItem *newViewItem(int index, QQuickItem *item) = 0;
virtual void repositionPackageItemAt(QQuickItem *item, int index) = 0;
diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp
index 21ff2c76a8..129db0c3cf 100644
--- a/src/quick/items/qquicklistview.cpp
+++ b/src/quick/items/qquicklistview.cpp
@@ -695,9 +695,6 @@ void QQuickListViewPrivate::visibleItemsChanged()
}
if (sectionCriteria)
updateCurrentSection();
- updateHeader();
- updateFooter();
- updateViewport();
updateUnrequestedPositions();
}