I actually went ahead and made the changes I needed to move the data into the model. Instead of just replacing the data entirely, I have a loop for updating and inserting, and one for deleting. Updating
existing data works great, adding/removing is where I'm having issues.

My data is based off ElementTree. The first thing I do is create a dictionary that maps each element, to
its parent, and its row:

{
<Element 'g' at 0xf6bfeae8>: (<Element 'payload' at 0xf6bfe8d8>, 0),
<Element 'e' at 0xf6bfe938>: (<Element 'g' at 0xf6bfeae8>, 0),
<Element 'e' at 0xf6bfeb90>: (<Element 'g' at 0xf6bfeae8>, 1),
<Element 'e' at 0xf6bfeba8>: (<Element 'g' at 0xf6bfeae8>, 2),
<Element 'e' at 0xf6bfebc0>: (<Element 'g' at 0xf6bfeae8>, 3)
}

I can detect if one of these elements is not in the new ElementTree, but, how do I get the info needed to call beginRemoveRows( QModelIndex parent, int row, int col). I can get the row,col no problem,
but how can I get the deleted items parent QModelIndex?

Matt

Why not just avoid calling reset? If you use beginInsertRows, layoutChanged, or whatever is needed, then the selection will be maintained automatically.

Matt

_______________________________________________
PyKDE mailing list    [email protected]
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde


_______________________________________________
PyKDE mailing list    [email protected]
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde

Reply via email to