title: Purpose and usage of ItemSelectionModel in QML
body: <p>While skimming the QML Documentation, I found this commendable documented class: <a href="http://doc.qt.io/qt-5/qml-qtqml-models-itemselectionmodel.html" rel="noreferrer"><code>ItemSelectionModel</code></a></p>
  
  <p>There is the C++-Class <a href="http://doc.qt.io/qt-5/qitemselectionmodel.html" rel="noreferrer"><code>QItemSelectionModel</code></a> which provides some more detail on it's purpose to keep track on the selection of Items within a model.</p>
  
  <p>However on the QML-Side I have not the slightes clue, on how to use it.</p>
  
  <p>Lets say, I have this <code>ListModel</code></p>
  
  <pre><code>ListModel {
      id: lm
      ListElement { value: 0 }
      ListElement { value: 0 }
      ListElement { value: 0 }
      ListElement { value: 0 }
      ListElement { value: 1 }
      ListElement { value: 1 }
      ListElement { value: 2 }
      ListElement { value: 2 }
      ListElement { value: 0 }
      ListElement { value: 0 }
      ListElement { value: 2 }
      ListElement { value: 2 }
  }
  </code></pre>
  
  <p>Now I have a <code>View</code> in which I display all of this model, and a second view in which I only want to display a selection of it. So I created a <code>ItemSelectionModel</code> and called the <code>select</code>-method of it from the delegates of the first view which seemed to have no effect at all. Not even the <code>hasSelection</code>-property bothered to change.</p>
  
  <pre><code>Repeater {
      model: lm
      delegate: Rectangle {
          property int row: Math.floor(index / 4)
          property int column: index % 4
          width: 100
          height: 100
          x: 100 * column
          y: 100 * row
          border.color: 'black'
  
          MouseArea {
              anchors.fill: parent
              onClicked: {
                  ism.select(index, ItemSelectionModel.Select | ItemSelectionModel.Current)
                  console.log(ism.hasSelection)
              }
          }
      }
  }
  
  ItemSelectionModel {
      id: ism
      model: lm
  }
  </code></pre>
  
  <p>So I wonder what is the purpose of this Component, that seems to do nothing at all. Or, how can I get it to do something purposeful?</p>