Make selectAll() do nothing if the mode is NoSelection.
authorStephen Kelly <stephen.kelly@kdab.com>
Wed, 8 Aug 2012 13:50:31 +0000 (15:50 +0200)
committerQt by Nokia <qt-info@nokia.com>
Wed, 15 Aug 2012 09:38:37 +0000 (11:38 +0200)
Task-number: QTBUG-26687

Change-Id: Iaa0197efe64c61505e22e4a63a1f5c012af0bc78
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
src/widgets/itemviews/qtreeview.cpp
tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp

index 36a2c7e..6b0768b 100644 (file)
@@ -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,
index 8f53a86..bbb51ae 100644 (file)
@@ -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()