Patches for tables

From: Simon Larochelle <larochelle.simon.1_at_gmail.com>
Date: Wed Dec 26 2012 - 18:14:13 CET

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
Received on Wed Dec 26 18:14:21 2012

This archive was generated by hypermail 2.1.8 : Wed Dec 26 2012 - 18:14:21 CET