void QQuickItemViewPrivate::updateViewport()
{
Q_Q(QQuickItemView);
- if (isValid()) {
- qreal extra = headerSize() + footerSize();
- if (layoutOrientation() == Qt::Vertical)
- q->setContentHeight(endPosition() - startPosition() + extra);
- else
- q->setContentWidth(endPosition() - startPosition() + extra);
- }
+ qreal extra = headerSize() + footerSize();
+ qreal contentSize = isValid() ? (endPosition() - startPosition()) : 0.0;
+ if (layoutOrientation() == Qt::Vertical)
+ q->setContentHeight(contentSize + extra);
+ else
+ q->setContentWidth(contentSize + extra);
}
void QQuickItemViewPrivate::layout()
QVERIFY(gridview->currentItem() == 0);
QVERIFY(gridview->contentY() == 0);
QVERIFY(gridview->currentIndex() == -1);
+ QCOMPARE(gridview->contentHeight(), 0.0);
// confirm sanity when adding an item to cleared list
model.addItem("New", "1");
// remove all items
model.clear();
+ if (flow == QQuickGridView::FlowLeftToRight)
+ QTRY_COMPARE(gridview->contentHeight(), footer->height());
+ else
+ QTRY_COMPARE(gridview->contentWidth(), footer->width());
QPointF posWhenNoItems(0, 0);
if (layoutDirection == Qt::RightToLeft)
model.clear();
QTRY_COMPARE(QQuickItemPrivate::get(gridview)->polishScheduled, false);
QCOMPARE(header->pos(), initialHeaderPos); // header should stay where it is
+ if (flow == QQuickGridView::FlowLeftToRight)
+ QCOMPARE(gridview->contentHeight(), header->height());
+ else
+ QCOMPARE(gridview->contentWidth(), header->width());
for (int i = 0; i < 30; i++)
model.addItem("Item" + QString::number(i), "");
QTRY_COMPARE(listview->contentY(), -listview->height());
QVERIFY(listview->currentIndex() == -1);
+ QCOMPARE(listview->contentHeight(), 0.0);
+
// confirm sanity when adding an item to cleared list
model.addItem("New", "1");
QTRY_VERIFY(listview->count() == 1);
model.clear();
QTRY_COMPARE(listview->count(), model.count());
QCOMPARE(header->pos(), initialHeaderPos); // header should stay where it is
+ if (orientation == QQuickListView::Vertical)
+ QCOMPARE(listview->contentHeight(), header->height());
+ else
+ QCOMPARE(listview->contentWidth(), header->width());
for (int i = 0; i < 30; i++)
model.addItem("Item" + QString::number(i), "");
// remove all items
model.clear();
+ if (orientation == QQuickListView::Vertical)
+ QTRY_COMPARE(listview->contentHeight(), footer->height());
+ else
+ QTRY_COMPARE(listview->contentWidth(), footer->width());
QPointF posWhenNoItems(0, 0);
if (orientation == QQuickListView::Horizontal && layoutDirection == Qt::RightToLeft)