Abdelrazak Younes <[EMAIL PROTECTED]> writes:
| Guys,
|
| I have tested this new approach pretty extensively:
| - opened all my lyx documents+lyx help doc
| - played with them, added/erased paragraph randomly,
| - cut/copy/past large selection, math, graphics,
| - undo/redo, export to latex, export to text.
|
| So far, everything seems fine. What else should I test?
You seem to have covered it.
Be sure to do the tests inside/mixed/outside insets as well.
| I really think that there are some problems in output_*.C that my
| patch reveals. The responsible of that portion should maybe check
| (-dbg action will gives the relevant warning).
Can you expand a bit on the problems you see?
| Anyway, I attached again the last unchanged patch and the new
| "it_vector.h" header. Jean-Marc, if you could test this after 1.4.0,
| I think it could be a good candidate for 1.4.1.
I must admit that I'd prefere it to be for 1.5 only. My guess is that
the implementation suited for 1.4 will diverge quickly from what we
will have in trunk.
| Angus, I did removed the "for_each" methods but I let the inner class
| iterator and const_iterator because they could be useful in the
| future. Beside that they provide already "operator+=". I am still open
| on that issue.
I'll probably have an opinion on this.
| 1) Try to reduce the time of rebuilding the tree in case of a change
| in "it_vector.h". A priori, the main limiting factor is that
| "LyxText.h" is included at many place in the code.
One possibility (you won't like this), is to change it_vector.h to
_be_ paragraphlist.[hC]. I.e. make it a non-template class and move
most methods into the source file.
A related option is pimpl, but might make things a bit too slow.
| 2) simplify the use of ParagraphList wherever possible by using
| some of the convenience interface methods in it_vector (my original
| patch did some simplifications already).
I think use of splice should be investigated, especially in relation
to cut/paste, but also undo.
| 3) optimize "updateCounter" call inside "text.C":BreakParagraph(...).
| In this case we don't need the full updateCounter, something around
| current cursor should suffice. But we need the constructor
| "ParIterator(InsetBase &, lyx::pit_type pit)" to be implemented first.
Hmm... is this directly related to the ParagraphList work?
| 4) Rename ParagraphList into paragraph_container.
This I probably just disagree with. (against our naming scheme for one
thing)
| 5) Transform some functions that uses ParagraphList into ParagraphList
| member methods (in particular those in paragraph_func.C) or at least
| create helper method for classes that uses ParagraphList (Undo,
| CutAndPaste, etc).
If a function does not need the private parts of an object/class it
should not be a member function.
| 6) See if some other classes could benefit from it_vector (InsetList
| and FontList come to mind).
Probably not... those lists are small and per-paragraph. But possibly.
--
Lgb