QListView: don't crash when an empty container is passed to itemsRect()

QIconModeViewBase::itemsRect() is crashing with Qt6 when an empty
container is passed.

Fixes: QTBUG-89434
Change-Id: I324f1a34b62e67c7bbd3fe33227f4174df7d3d37
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
(cherry picked from commit 6fbcfd9164ae23b221ebce7fc3185505a8a1fb6e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Christian Ehrlicher 2020-12-22 17:14:21 +01:00 committed by Qt Cherry-pick Bot
parent e0121157db
commit b14a33ff67

View File

@ -3248,13 +3248,9 @@ QList<QModelIndex> QIconModeViewBase::intersectingSet(const QRect &area) const
QRect QIconModeViewBase::itemsRect(const QList<QModelIndex> &indexes) const QRect QIconModeViewBase::itemsRect(const QList<QModelIndex> &indexes) const
{ {
QList<QModelIndex>::const_iterator it = indexes.begin(); QRect rect;
QListViewItem item = indexToListViewItem(*it); for (const auto &index : indexes)
QRect rect(item.x, item.y, item.w, item.h); rect |= viewItemRect(indexToListViewItem(index));
for (; it != indexes.end(); ++it) {
item = indexToListViewItem(*it);
rect |= viewItemRect(item);
}
return rect; return rect;
} }