title: To not have QItemSelectionModel.selectionChanged called when using QSortFilterProxyModel
body: <p>I have a <a href="http://doc.qt.digia.com/qt/qtreeview.html" rel="nofollow">QTreeview</a> that uses <a href="http://doc.qt.digia.com/qt/qsortfilterproxymodel.html" rel="nofollow">QSortFilterProxyModel</a> to allow filtering by input text, and also uses <a href="http://doc.qt.digia.com/qt/qitemselection.html" rel="nofollow">QItemSelectionModel</a> to keep selections reflected on treeview.</p>
  
  <p>Question is, is there any way to avoid the filtering result getting reflected on item selection?</p>
  
  <p>Drawing what I want to achieve, what currently happens is this.</p>
  
  <p>State-1. Initial.</p>
  
  <pre><code>Root
  |---Leaf-1 Selected (manually)
  |---Leaf-2
  |---Leaf-3
  </code></pre>
  
  <p>State-2. After filtering by "Leaf-3" for example, treeview shows:</p>
  
  <pre><code>Root
  |---Leaf-3
  </code></pre>
  
  <p>State-3-notIdeal. Then clear up filtering text then:</p>
  
  <pre><code>Root
  |---Leaf-1 
  |---Leaf-2
  |---Leaf-3
  </code></pre>
  
  <p>I want "Leaf-1" to remain selected like:</p>
  
  <p>State-3-ideal. </p>
  
  <pre><code>Root
  |---Leaf-1 Selected
  |---Leaf-2
  |---Leaf-3
  </code></pre>
  
  <p>Looking into codes, when <a href="http://doc.qt.digia.com/qt/qsortfilterproxymodel.html#filterAcceptsRow" rel="nofollow">QSortFilterProxyModel.filterAcceptsRow</a> returns false, it looks like <a href="http://doc.qt.digia.com/qt/qitemselectionmodel.html#selectionChanged" rel="nofollow">QItemSelectionModel.selectionChanged</a>'s argument <code>deselected</code> is set with info of the items to be deselected. And I haven't found any way to distinguish whether an item was deselected by hand or by filtering.</p>
  
  <p>I'm using <code>PyQt</code> on Ubuntu 12.10 but I assume this should be applicable to all <code>Qt</code> implementation.</p>