Skip to content

Commit

Permalink
ListView.contentHeight does not include header and footer item heights
Browse files Browse the repository at this point in the history
Task-number: QTBUG-24664

Change-Id: I2a2fe144835e61665b8693d58ca4fb9ba506e8a8
Reviewed-by: Bea Lam <bea.lam@nokia.com>
  • Loading branch information
Martin Jones authored and Qt by Nokia committed Mar 13, 2012
1 parent c71db2c commit a4d22cb
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/quick/items/qquickitemview.cpp
Expand Up @@ -1658,10 +1658,11 @@ void QQuickItemViewPrivate::updateViewport()
{
Q_Q(QQuickItemView);
if (isValid()) {
qreal extra = headerSize() + footerSize();
if (layoutOrientation() == Qt::Vertical)
q->setContentHeight(endPosition() - startPosition());
q->setContentHeight(endPosition() - startPosition() + extra);
else
q->setContentWidth(endPosition() - startPosition());
q->setContentWidth(endPosition() - startPosition() + extra);
}
}

Expand Down
10 changes: 10 additions & 0 deletions tests/auto/quick/qquickgridview/tst_qquickgridview.cpp
Expand Up @@ -2810,6 +2810,11 @@ void tst_QQuickGridView::footer()
QCOMPARE(footer->height(), 30.);
QCOMPARE(QPointF(gridview->contentX(), gridview->contentY()), initialContentPos);

if (flow == QQuickGridView::LeftToRight)
QCOMPARE(gridview->contentHeight(), (model.count()+2) / 3 * 60. + footer->height());
else
QCOMPARE(gridview->contentWidth(), (model.count()+3) / 5 * 80. + footer->width());

QQuickItem *item = findItem<QQuickItem>(contentItem, "wrapper", 0);
QVERIFY(item);
QCOMPARE(item->pos(), firstDelegatePos);
Expand Down Expand Up @@ -2971,6 +2976,11 @@ void tst_QQuickGridView::header()
QCOMPARE(header->height(), 30.);
QCOMPARE(QPointF(gridview->contentX(), gridview->contentY()), initialContentPos);

if (flow == QQuickGridView::LeftToRight)
QCOMPARE(gridview->contentHeight(), (model.count()+2) / 3 * 60. + header->height());
else
QCOMPARE(gridview->contentWidth(), (model.count()+3) / 5 * 80. + header->width());

QQuickItem *item = findItem<QQuickItem>(contentItem, "wrapper", 0);
QVERIFY(item);
QCOMPARE(item->pos(), firstDelegatePos);
Expand Down
10 changes: 10 additions & 0 deletions tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
Expand Up @@ -3057,6 +3057,11 @@ void tst_QQuickListView::header()
QCOMPARE(header->pos(), initialHeaderPos);
QCOMPARE(QPointF(listview->contentX(), listview->contentY()), initialContentPos);

if (orientation == QQuickListView::Vertical)
QCOMPARE(listview->contentHeight(), model.count() * 30. + header->height());
else
QCOMPARE(listview->contentWidth(), model.count() * 240. + header->width());

QQuickItem *item = findItem<QQuickItem>(contentItem, "wrapper", 0);
QVERIFY(item);
QCOMPARE(item->pos(), firstDelegatePos);
Expand Down Expand Up @@ -3241,6 +3246,11 @@ void tst_QQuickListView::footer()
QCOMPARE(footer->height(), 30.);
QCOMPARE(QPointF(listview->contentX(), listview->contentY()), initialContentPos);

if (orientation == QQuickListView::Vertical)
QCOMPARE(listview->contentHeight(), model.count() * 20. + footer->height());
else
QCOMPARE(listview->contentWidth(), model.count() * 40. + footer->width());

QQuickItem *item = findItem<QQuickItem>(contentItem, "wrapper", 0);
QVERIFY(item);
QCOMPARE(item->pos(), firstDelegatePos);
Expand Down

0 comments on commit a4d22cb

Please sign in to comment.