From b14a33ff671b555b3677a012867489e174cb98e7 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Tue, 22 Dec 2020 17:14:21 +0100 Subject: [PATCH] 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 (cherry picked from commit 6fbcfd9164ae23b221ebce7fc3185505a8a1fb6e) Reviewed-by: Qt Cherry-pick Bot --- src/widgets/itemviews/qlistview.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/widgets/itemviews/qlistview.cpp b/src/widgets/itemviews/qlistview.cpp index 5e400e5c8fc..7e472d37c24 100644 --- a/src/widgets/itemviews/qlistview.cpp +++ b/src/widgets/itemviews/qlistview.cpp @@ -3248,13 +3248,9 @@ QList QIconModeViewBase::intersectingSet(const QRect &area) const QRect QIconModeViewBase::itemsRect(const QList &indexes) const { - QList::const_iterator it = indexes.begin(); - QListViewItem item = indexToListViewItem(*it); - QRect rect(item.x, item.y, item.w, item.h); - for (; it != indexes.end(); ++it) { - item = indexToListViewItem(*it); - rect |= viewItemRect(item); - } + QRect rect; + for (const auto &index : indexes) + rect |= viewItemRect(indexToListViewItem(index)); return rect; }