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
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.