summaryrefslogtreecommitdiffstats
path: root/src/widgets/itemviews
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2018-02-11 09:13:21 +0100
committerLiang Qi <liang.qi@qt.io>2018-02-11 09:13:21 +0100
commit8dd22d9255287bad17823d8738ac05dbffca33ab (patch)
tree94cc700070d567960260171e7edfad9d587d1b6e /src/widgets/itemviews
parent7a342372bb1ecbe4146811cff48ede974c7761b5 (diff)
parent9b800b55c1c4f2b3e6ed365736e357eb31423c95 (diff)
Merge remote-tracking branch 'origin/5.11' into dev
Diffstat (limited to 'src/widgets/itemviews')
-rw-r--r--src/widgets/itemviews/qlistview.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/widgets/itemviews/qlistview.cpp b/src/widgets/itemviews/qlistview.cpp
index 7f027595b7..6777b09043 100644
--- a/src/widgets/itemviews/qlistview.cpp
+++ b/src/widgets/itemviews/qlistview.cpp
@@ -980,9 +980,18 @@ void QListView::paintEvent(QPaintEvent *e)
? qMax(viewport()->size().width(), d->contentsSize().width()) - 2 * d->spacing()
: qMax(viewport()->size().height(), d->contentsSize().height()) - 2 * d->spacing();
+ const int rowCount = d->commonListView->rowCount();
QVector<QModelIndex>::const_iterator end = toBeRendered.constEnd();
for (QVector<QModelIndex>::const_iterator it = toBeRendered.constBegin(); it != end; ++it) {
Q_ASSERT((*it).isValid());
+ if (rowCount == 1)
+ option.viewItemPosition = QStyleOptionViewItem::OnlyOne;
+ else if ((*it).row() == 0)
+ option.viewItemPosition = QStyleOptionViewItem::Beginning;
+ else if ((*it).row() == rowCount - 1)
+ option.viewItemPosition = QStyleOptionViewItem::End;
+ else
+ option.viewItemPosition = QStyleOptionViewItem::Middle;
option.rect = visualRect(*it);
if (flow() == TopToBottom)