diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2018-07-21 23:16:19 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2018-07-22 04:18:04 +0200 |
commit | fa881095bc62c3646406c82a98d8503377288a54 (patch) | |
tree | bc75c33d1da2bd37b23f98a046b50c666e6186bc /sc/source | |
parent | b86ef3b7fa3713031858f7d39c084445a5976a83 (diff) |
tdf#98074, using the same builtinId maps the styles to the same one
Additionally, using customBuiltin for all styles is a bad idea as well.
Change-Id: I788a3c5b9164f79aa65ded2fc3e6a556e44ee0a8
Reviewed-on: https://gerrit.libreoffice.org/57807
Tested-by: Jenkins
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'sc/source')
-rw-r--r-- | sc/source/filter/excel/xestyle.cxx | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sc/source/filter/excel/xestyle.cxx b/sc/source/filter/excel/xestyle.cxx index a36f75e8921b..0805149cd7a3 100644 --- a/sc/source/filter/excel/xestyle.cxx +++ b/sc/source/filter/excel/xestyle.cxx @@ -2342,13 +2342,19 @@ static const char* lcl_StyleNameFromId( sal_Int32 nStyleId ) void XclExpStyle::SaveXml( XclExpXmlStream& rStrm ) { + constexpr sal_Int32 CELL_STYLE_MAX_BUILTIN_ID = 54; OString sName; + OString sBuiltinId; + const char* pBuiltinId = nullptr; if( IsBuiltIn() ) { sName = OString( lcl_StyleNameFromId( mnStyleId ) ); + sBuiltinId = OString::number( std::min( static_cast<sal_Int32>( CELL_STYLE_MAX_BUILTIN_ID - 1 ), static_cast <sal_Int32>( mnStyleId ) ) ); + pBuiltinId = sBuiltinId.getStr(); } else sName = XclXmlUtils::ToOString( maName ); + // get the index in sortedlist associated with the mnXId sal_Int32 nXFId = rStrm.GetRoot().GetXFBuffer().GetXFIndex( maXFId.mnXFId ); // get the style index associated with index into sortedlist @@ -2357,11 +2363,10 @@ void XclExpStyle::SaveXml( XclExpXmlStream& rStrm ) XML_name, sName.getStr(), XML_xfId, OString::number( nXFId ).getStr(), // builtinId of 54 or above is invalid according to OpenXML SDK validator. -#define CELL_STYLE_MAX_BUILTIN_ID 54 - XML_builtinId, OString::number( std::min( static_cast<sal_Int32>( CELL_STYLE_MAX_BUILTIN_ID - 1 ), static_cast <sal_Int32>( mnStyleId ) ) ).getStr(), + XML_builtinId, pBuiltinId, // OOXTODO: XML_iLevel, // OOXTODO: XML_hidden, - XML_customBuiltin, ToPsz( ! IsBuiltIn() ), + // XML_customBuiltin, ToPsz( ! IsBuiltIn() ), FSEND ); // OOXTODO: XML_extLst } |