- QModelIndex index;
- foreach (const QModelIndex &mappedIndex,
- d->categoriesIndexes[category])
- {
- index = d->proxyModel->mapFromSource(mappedIndex);
-
- if (d->isIndexSelected.contains(index))
- {
- if (!d->isIndexSelected[index])
- selection.select(index, index);
-
- d->isIndexSelected[index] = true;
- }
- else
- {
- d->isIndexSelected.insert(index, true);
- selection.select(index, index);
- }
- }
-
- selectionModel()->select(selection, QItemSelectionModel::Toggle);
+ QItemSelectionRange selectionRange(d->proxyModel->mapFromSource(d->categoriesIndexes[category][0]),
+ d->proxyModel->mapFromSource(d->categoriesIndexes[category][d->categoriesIndexes[category].count() - 1]));
+
+ selection << selectionRange;
+
+ selectionModel()->select(selection, QItemSelectionModel::Select);