diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp index 36a2c7ee817..6b0768bf7a9 100644 --- a/src/widgets/itemviews/qtreeview.cpp +++ b/src/widgets/itemviews/qtreeview.cpp @@ -2599,7 +2599,7 @@ void QTreeView::selectAll() return; SelectionMode mode = d->selectionMode; d->executePostedLayout(); //make sure we lay out the items - if (mode != SingleSelection && !d->viewItems.isEmpty()) { + if (mode != SingleSelection && mode != NoSelection && !d->viewItems.isEmpty()) { const QModelIndex &idx = d->viewItems.last().index; QModelIndex lastItemIndex = idx.sibling(idx.row(), d->model->columnCount(idx.parent()) - 1); d->select(d->viewItems.first().index, lastItemIndex, diff --git a/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp b/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp index 8f53a86b708..bbb51aed5e4 100644 --- a/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp +++ b/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp @@ -2365,6 +2365,12 @@ void tst_QTreeView::selectAll() int selectedCount = view.selectedIndexes().count(); view.selectAll(); QCOMPARE(view.selectedIndexes().count(), selectedCount); + + PublicView view3; + view3.setModel(&model); + view3.setSelectionMode(QAbstractItemView::NoSelection); + view3.selectAll(); + QCOMPARE(view3.selectedIndexes().count(), 0); } void tst_QTreeView::extendedSelection_data()