From d19589b90adca7130129b59b662e515226a943e1 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Wed, 8 Aug 2012 15:50:31 +0200 Subject: [PATCH] Make selectAll() do nothing if the mode is NoSelection. Task-number: QTBUG-26687 Change-Id: Iaa0197efe64c61505e22e4a63a1f5c012af0bc78 Reviewed-by: Marc Mutz Reviewed-by: Stephen Kelly --- src/widgets/itemviews/qtreeview.cpp | 2 +- tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp index 36a2c7e..6b0768b 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 8f53a86..bbb51ae 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() -- 2.7.4