On Wed, May 30, 2007 at 02:42:14PM +0200, Alfredo Braunstein wrote: > Abdelrazak Younes wrote: > > > Alfredo Braunstein wrote: > >> Abdelrazak Younes wrote: > >> > >>> I am not sure that registering every single DocIterator would be any > >>> more efficient that my signal/slot solution. At the end you will have to > >>> go through a table. > >> > >> Small remark: note that not all DocIterators need to be stable (mainly > >> cursors, maybe also bookmarks & error marks), one could have a class > >> derived from DocIterator for that purpose. > > > > I agree but it's more work than my signal based solution which is > > assured to work in all cases. I tell you what, in order to save the bits > > Andre is worried about I am going to remove the signal from Inset and > > transfer them to InsetText and InsetMathHull. In 1.6, we can think of > > this other solution. But really, my solution is cheap in terms of CPU > > and it will be cheaper in terms of memory when I do the change described > > above. > > In general terms Abdel I agree that it is not so bad if it really works (in > order to implement a "correct" solution (TM) having something working even > if inefficient is /good/, not bad), but are we sure that it works in all > cases? In general it seems wrong to me that invalidation of cursors is only > due to inset destruction. For instance, put a cursor inside an inset, then > in another window add or remove some text before the inset so the position > of the inset changes... no destruction occurs, but is the cursor still > valid? (sorry don't have svn to check here.)
It isn't, as the pos() in the slice corresponding to the changed inset is changed. Andre'