diff options
-rw-r--r-- | src/widgets/itemviews/qlistview.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/widgets/itemviews/qlistview.cpp b/src/widgets/itemviews/qlistview.cpp index 8e4d94d2f0..646ab58e3d 100644 --- a/src/widgets/itemviews/qlistview.cpp +++ b/src/widgets/itemviews/qlistview.cpp @@ -1440,13 +1440,11 @@ QModelIndexList QListView::selectedIndexes() const return QModelIndexList(); QModelIndexList viewSelected = d->selectionModel->selectedIndexes(); - for (int i = 0; i < viewSelected.count();) { - const QModelIndex &index = viewSelected.at(i); - if (!isIndexHidden(index) && index.parent() == d->root && index.column() == d->column) - ++i; - else - viewSelected.removeAt(i); - } + auto ignorable = [this, d](const QModelIndex &index) { + return index.column() != d->column || index.parent() != d->root || isIndexHidden(index); + }; + viewSelected.erase(std::remove_if(viewSelected.begin(), viewSelected.end(), ignorable), + viewSelected.end()); return viewSelected; } |