[GSOC] ODS Row height import
Daniel Bankston
daniel.dev.libreoffice at gmail.com
Sun Jun 24 23:19:15 PDT 2012
Hi, Markus,
I was right about some things, and I was wrong about some other things.
XMLTableStylesContext::EndElement() did use ScXMLImport::InsertStyles()
which used ScTable::SetOptimalHeight() (or something similar) to set the
row heights. I used ScDocument::EnableAdjustHeight(false) to prevent
SetOptimalHeight() from actually doing any work.
ScXMLImport::endDocument() did use ScMyTables::UpdateRowHeights() which
used ScTable::SetOptimalHeightOnly() to set the row heights for the
visible sheet and any sheets with tabs. I removed the call to this
method, and I removed the method itself since nothing else was using it.
Turns out that the row height was already being imported using UNO.
ScXMLTableRowContext::EndElement() uses
XMLTableStyleContext::FillPropertySet() which uses
ScDocument::SetRowHeightOnly() to set the row height to the imported row
height values. This remains.
With these changes, the all unit tests passed and visual inspection of
the heights appeared correct. Using my slow debug build on my laptop
(Intel Core2 Duo T7500 @ 2.20GHz running 32bit GNU/Linux with 3.5GB of
ram) and the large test file that you gave me, the total load time was
consistently shorter from 1:48 to 1:37.
I'll push my commits to my feature branch so you can see the changes.
Do you think there is something I am missing here? For example, will
there ever be a case where row height is not specified, requiring us to
calculate the row height?
Respectfully,
Daniel Bankston
More information about the LibreOffice
mailing list