summaryrefslogtreecommitdiff
path: root/sc/source/filter/inc
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2019-05-10 15:40:02 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2019-05-10 18:40:29 +0200
commita49f9359d27bf3ca38ddff7ad0920daac8e1bb8d (patch)
treef2049568056527d0578d7d2b759740718f763d3e /sc/source/filter/inc
parenteb8e03006d588f2d953c4fba4e47ced9b53ba6aa (diff)
tdf#85470 FILESAVE Very long time spent saving XLSX as XLS
This takes the saving from (very long time, I lost patience), to around 2s on my machine. Change-Id: Ife28a1616c0da65070f7e604b256134156af0e9a Reviewed-on: https://gerrit.libreoffice.org/72123 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sc/source/filter/inc')
-rw-r--r--sc/source/filter/inc/xestyle.hxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/sc/source/filter/inc/xestyle.hxx b/sc/source/filter/inc/xestyle.hxx
index bd805ba66147..48b1e53f4fa2 100644
--- a/sc/source/filter/inc/xestyle.hxx
+++ b/sc/source/filter/inc/xestyle.hxx
@@ -468,6 +468,8 @@ public:
virtual void SaveXml( XclExpXmlStream& rStrm ) override;
+ const SfxItemSet* GetItemSet() const { return mpItemSet; }
+
protected:
explicit XclExpXF( const XclExpRoot& rRoot, bool bCellXF );
@@ -680,6 +682,8 @@ private:
typedef ::std::vector< XclExpCellArea > XclExpFillList;
XclExpXFList maXFList; /// List of all XF records.
+ std::unordered_map<const SfxItemSet*, std::vector<sal_uInt32>>
+ maXFFindMap; /// map of itemset to vector of positions, to speed up find
XclExpStyleList maStyleList; /// List of all STYLE records.
XclExpBuiltInMap maBuiltInMap; /// Contained elements describe built-in XFs.
ScfUInt16Vec maXFIndexVec; /// Maps XF IDs to XF indexes.