<div id="__MailbirdStyleContent" style="font-size: 12pt;font-family: Candara;color: #000000">Hi again.<div class="mb_sig"></div><div><br></div><div>I'm the one who started the <b>QTreeView + sort + delete = crash</b> thread on May 8th.  In response to assistance from Kyle and Florian, I've re-implemented to use a <span style="font-family: Courier New">QAbstractItemModel</span> with associated <span style="font-family: Courier New">QSortFilterProxyModel</span>.</div><div><br></div><div>On the whole, that seems to be working pretty well, but there's one thing (well, at least one) I haven't been clear on despite poring over what documentation I can find.  I can post the test code again if it will help, but I think this is more of a general question:</div><div><br></div><div>If I have both a source model and also a proxy, and I'm modifying the view in a way that changes the structure (deleting a row, in the current case I'm working on), should I be overriding <span style="font-family: Courier New">removeRows()</span> for <i>both</i> the source model and the proxy, and calling <span style="font-family: Courier New">beginRemoveRows()/endRemoveRows()</span> in both cases?</div><div><br></div><div>I guess that seems to make sense to me, and my initial testing suggests it's so, as it seems to work (whereas if I <i>don't</i> do that, I either get a crash, or a message something like <span style="font-family: Consolas">QSortFilterProxyModel: inconsistent changes reported by source model</span>).</div><div><br></div><div>Same for inserting rows?  Just checking to see if I'm thinking right here.</div><div><br></div><div>Thanks!</div><div><br></div><div>/John</div></div>