commit: Lots of speed ups.

From: <msevior_at_physics.unimelb.edu.au>
Date: Tue Jul 27 2004 - 15:27:20 CEST

VS: ----------------------------------------------------------------------
CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS: af/xap/xp/xap_Frame.cpp text/fmt/xp/fl_BlockLayout.cpp
CVS: text/fmt/xp/fl_TableLayout.cpp text/fmt/xp/fl_TableLayout.h
CVS: text/fmt/xp/fp_TableContainer.cpp
CVS: text/fmt/xp/fp_TableContainer.h
CVS: ----------------------------------------------------------------------
LOts of speed ups. Especially for large tables.

Firstly we no longer re-layout twice for zoom to pagewidth.

Also found and eliminated a number of superflous table layouts during
editting.

Finally implmented a "doSimpleLayout" method for manipulations within a
single cell. This short-circuits the full gtk layout. Unfotuntely this
algorithim although very powerful and cabale of handling nested tables as
well as arbitarily spanned cells, has an n^2 dependence.

The simple layout just adjusts the height and ypositions of the cells
beneath the editting cell. This grows linearly in with number of cells.

In my tests with tables of around 3000 cells this new method performs
layouts in less than a 1 second as opposed to about 10 seconds for the gtk
method.

For smaller tables like those in the RTF spec manipulations as now quite
acceptable on my laptop (1 Ghz).

Cheers

Martin
Received on Tue Jul 27 15:14:28 2004

This archive was generated by hypermail 2.1.8 : Tue Jul 27 2004 - 15:14:28 CEST