Patches for tables
Simon Larochelle <[email protected]>
| Newsgroups | gmane.editors.abiword.devel |
|---|---|
| Message-ID | <CAF8-HjEKqH9khjv_5sZAWbr+p+zoy812_U9xGijUPPx=4YsHSg@mail.gmail.com> |
I made a patch to fix several issues with tables in abiword. The patch speeds up abiword when big tables are used (tables that are broken over tens of pages). A document with such a table can be loaded much faster than before and I can now edit a document with very little delays on most commands. I still have some important slowdowns for example when trying to erase the big table or when selecting a segment of the table. The patch also fixes several issues with broken tables such as - cells that extend on more than 2 pages - breaking of nested tables - breaking is done preferably along cell boundaries (the breaking is done along cell boundaries if the resulting amount of white space at the bottom of the page column is less than a given fraction of the page column (this fraction is a new table property); the breaking is done inside the cells otherwise). - breaking inside a cell has also been improved. - the line at the bottom of a broken table segment was sometimes printed at the wrong place. This is now fixed. - tables with footnotes: the space occupied by the footnotes are now accounted correctly when breaking the table Finally I fixed about half of the other bugs in the Editing - Tables category. Can I commit this patch to the SVN repository or should I wait after the release of version 3.0? The patch is fairly big. Here is the diff-stat (N.B.: the patch is composed of about 30 smaller patches in my git repository) src/af/xap/gtk/xap_Gtk2Compat.h | 1 + src/af/xap/gtk/xap_UnixFrameImpl.cpp | 7 +- src/af/xap/xp/xav_Listener.h | 3 +- src/text/fmt/xp/fb_ColumnBreaker.cpp | 72 +- src/text/fmt/xp/fl_BlockLayout.cpp | 14 +- src/text/fmt/xp/fl_BlockLayout.h | 2 +- src/text/fmt/xp/fl_ContainerLayout.cpp | 40 + src/text/fmt/xp/fl_ContainerLayout.h | 4 + src/text/fmt/xp/fl_DocListener.cpp | 7 +- src/text/fmt/xp/fl_FootnoteLayout.cpp | 3 +- src/text/fmt/xp/fl_FrameLayout.cpp | 4 +- src/text/fmt/xp/fl_Layout.cpp | 14 +- src/text/fmt/xp/fl_Layout.h | 3 + src/text/fmt/xp/fl_TOCLayout.cpp | 3 +- src/text/fmt/xp/fl_TableLayout.cpp | 110 +- src/text/fmt/xp/fl_TableLayout.h | 11 +- src/text/fmt/xp/fp_Column.cpp | 2 +- src/text/fmt/xp/fp_Line.cpp | 15 +- src/text/fmt/xp/fp_Page.cpp | 65 +- src/text/fmt/xp/fp_Run.cpp | 5 +- src/text/fmt/xp/fp_TableContainer.cpp | 2427 +++++++++++++------------------ src/text/fmt/xp/fp_TableContainer.h | 68 +- src/text/fmt/xp/fv_View.cpp | 112 +- src/text/fmt/xp/fv_View.h | 28 +- src/text/fmt/xp/fv_View_cmd.cpp | 1146 ++++++--------- src/text/fmt/xp/fv_View_protected.cpp | 153 +- src/text/ptbl/xp/pd_Document.cpp | 24 + src/text/ptbl/xp/pd_Document.h | 4 +- src/text/ptbl/xp/pp_Property.cpp | 1 + src/text/ptbl/xp/pp_PropertyMap.cpp | 1 + src/text/ptbl/xp/pp_PropertyMap.h | 1 + src/text/ptbl/xp/pt_PT_DeleteSpan.cpp | 34 +- src/text/ptbl/xp/pt_PT_InsertStrux.cpp | 1 + src/text/ptbl/xp/pt_PieceTable.cpp | 28 + src/text/ptbl/xp/pt_PieceTable.h | 3 + src/wp/ap/xp/ap_EditMethods.cpp | 30 +- src/wp/ap/xp/ap_LeftRuler.cpp | 6 +- src/wp/ap/xp/ap_ML_ContextText.h | 8 +- src/wp/ap/xp/ap_Menu_ActionSet.cpp | 4 +- src/wp/ap/xp/ap_Menu_Id_List.h | 4 +- src/wp/ap/xp/ap_Menu_Layouts_Embedded.h | 4 +- src/wp/ap/xp/ap_Menu_Layouts_MainMenu.h | 4 +- src/wp/ap/xp/ap_String_Id.h | 10 +- src/wp/ap/xp/ap_TopRuler.cpp | 5 +- src/wp/impexp/xp/ie_imp_RTF.cpp | 20 +- 45 files changed, 2002 insertions(+), 2509 deletions(-) Simon