Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# QItemSelection Class Reference

The QItemSelection class manages information about selected items in a model. More...

    #include <QItemSelection>

Inherits QList<QItemSelectionRange>.

- List of all members, including inherited members

### Public Functions

- QItemSelection ()
- QItemSelection ( const QModelIndex & topLeft, const QModelIndex & bottomRight, const QAbstractItemModel * model )
- bool contains ( const QModelIndex & index, const QAbstractItemModel * model ) const
- QModelIndexList items ( QAbstractItemModel * model ) const
- void merge ( const QItemSelection & other, QItemSelectionModel::SelectionFlags command )
- void select ( const QModelIndex & topLeft, const QModelIndex & bottomRight, const QAbstractItemModel * model )

- 56 public functions inherited from QList

### Static Public Members

- void split ( const QItemSelectionRange & range, const QItemSelectionRange & other, QItemSelection * result )

## Detailed Description

The QItemSelection class manages information about selected items in a model.

A QItemSelection describes the items in a model that have been selected by the user. A QItemSelection is basically a list of selection ranges, see QItemSelectionRange. It provides functions for creating and manipulating selections, and selecting a range of items from a model.

An item selection can be constructed and initialized to contain a range of items from an existing model. The following example constructs a selection that contains a range of items from the given `model`, beginning at the `topLeft`, and ending at the `bottomRight`.

        QItemSelection *selection = new QItemSelection(topLeft,
                bottomRight, model);

An empty item selection can be constructed, and later populated as required. So, if the model is going to be unavailable when we construct the item selection, we can rewrite the above code in the following way:

        QItemSelection *selection = new QItemSelection();
        ...
        selection->select(topLeft, bottomRight, model);

QItemSelection saves memory, and avoids unnecessary work, by working with selection ranges rather than recording the model item index for each item in the selection. Generally, an instance of this class will contain a list of non-overlapping selection ranges.

Use merge() to merge one item selection into another without making overlapping ranges. Use split() to split one selection range into smaller ranges based on a another selection range.

See also Model/View Programming and QItemSelectionModel.

## Member Function Documentation

### QItemSelection::QItemSelection ()

Constructs an empty selection.

### QItemSelection::QItemSelection ( const QModelIndex & topLeft, const QModelIndex & bottomRight, const QAbstractItemModel * model )

Constructs an item selection for the model that extends from the top-left model item, specified by the topLeft index, to the bottom-right item, specified by bottomRight.

### bool QItemSelection::contains ( const QModelIndex & index, const QAbstractItemModel * model ) const

Returns true if the model contains the specified index; otherwise returns false.

### QModelIndexList QItemSelection::items ( QAbstractItemModel * model ) const

Returns the list of selected model index items for the given model.

### void QItemSelection::merge ( const QItemSelection & other, QItemSelectionModel::SelectionFlags command )

Merges the other selection with this QItemSelection using the command given. This method guarantees that no ranges are overlapping.

Note that only `QItemSelectionModel::Select`, `QItemSelectionModel::Deselect`, and `QItemSelectionModel::Toggle` are supported.

See also split().

### void QItemSelection::select ( const QModelIndex & topLeft, const QModelIndex & bottomRight, const QAbstractItemModel * model )

Selects the range in the model that extends from the top-left model item, specified by the topLeft index, to the bottom-right item, specified by bottomRight.

### void QItemSelection::split ( const QItemSelectionRange & range, const QItemSelectionRange & other, QItemSelection * result ) `[static]`

Splits the selection range using the selection other range, and puts the resulting selection in result.

See also merge().