From c0dfcf9a230d0bcb6783777e3ee0b2f756980f93 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 18 Dec 2009 17:42:20 +1000 Subject: Make sure header/footer are correctly positioned. --- src/declarative/graphicsitems/qmlgraphicslistview.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/declarative/graphicsitems/qmlgraphicslistview.cpp b/src/declarative/graphicsitems/qmlgraphicslistview.cpp index e2eff2b..351364e 100644 --- a/src/declarative/graphicsitems/qmlgraphicslistview.cpp +++ b/src/declarative/graphicsitems/qmlgraphicslistview.cpp @@ -1050,9 +1050,13 @@ void QmlGraphicsListViewPrivate::updateFooter() if (footer) { if (visibleItems.count()) { qreal endPos = endPosition(); - qreal visiblePos = position() + q->height(); - if (endPos <= visiblePos || footer->position() < endPos) + if (lastVisibleIndex() == model->count()-1) { footer->setPosition(endPos); + } else { + qreal visiblePos = position() + q->height(); + if (endPos <= visiblePos || footer->position() < endPos) + footer->setPosition(endPos); + } } else { footer->setPosition(visiblePos); } @@ -1085,8 +1089,12 @@ void QmlGraphicsListViewPrivate::updateHeader() if (header) { if (visibleItems.count()) { qreal startPos = startPosition(); - if (position() <= startPos || header->position() > startPos - header->size()) + if (visibleIndex == 0) { header->setPosition(startPos - header->size()); + } else { + if (position() <= startPos || header->position() > startPos - header->size()) + header->setPosition(startPos - header->size()); + } } else { header->setPosition(0); } -- cgit v0.12