title: Qt setCurrentIndex does not emit currentChanged for invalid ModelIndex
body: <p>I have a wizard where the user is only allowed to advance when he has selected an entry from a QListView. To check that, i have connected my method containing the validation logic to the <code>currentChanged</code> signal, but the signal is not emitted if the selected Index is invalid:</p>
  
  <pre><code>// It's connected like this
  connect(connectionsListView-&gt;selectionModel(), 
          SIGNAL(currentChanged(QModelIndex,QModelIndex)),
          this, SLOT(connectionSelected(QModelIndex)));
  
  // Does not emit for empty ListModel
  connectionsListView-&gt;selectionModel()-&gt;setCurrentIndex
      (connectionListModel-&gt;index(0, 0), QItemSelectionModel::SelectCurrent);
  
  // Does not emit whatsoever
  connectionsListView-&gt;selectionModel()-&gt;clear();
  
  // Valid selections are delegated to my validation logic and handled correctly
  </code></pre>
  
  <p>Any ideas why this happens and what i can do to fix that? Currently i have a second signal that i emit in my code on occasions where the index could be invalid, but i would prefer Qt simply emitting the signal if the index is invalid.</p>