diff options
author | Justin Luth <justin_luth@sil.org> | 2021-03-30 09:51:05 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2021-04-01 17:58:33 +0200 |
commit | 4f7bc49bce261f1cf206d25f0299fd080a9f5d28 (patch) | |
tree | c771d30aa505c50d5ec342c394b17f2c437630c2 /writerfilter | |
parent | a49206fd70e72023493fdd9ecea4cd58f9a2aee6 (diff) |
tdf#141341 writerfilter: use all NumberingTypes for pgNumFmt
We have a nice conversion function to translate from OOXML
to writer's numbering formats, so lets use that
for the page/section's numbering format too.
Change-Id: Ibf2aaae5d66c971b54440862b1156c00202663e2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113350
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth@sil.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/ConversionHelper.cxx | 5 | ||||
-rw-r--r-- | writerfilter/source/dmapper/ConversionHelper.hxx | 3 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper.cxx | 26 |
3 files changed, 8 insertions, 26 deletions
diff --git a/writerfilter/source/dmapper/ConversionHelper.cxx b/writerfilter/source/dmapper/ConversionHelper.cxx index 809e85c90372..852f58152b75 100644 --- a/writerfilter/source/dmapper/ConversionHelper.cxx +++ b/writerfilter/source/dmapper/ConversionHelper.cxx @@ -475,7 +475,8 @@ sal_Int16 convertTableJustification( sal_Int32 nIntValue ) return nOrient; } -sal_Int16 ConvertNumberingType(sal_Int32 nFmt) +// Return the suggested default if the given format has no known conversion +sal_Int16 ConvertNumberingType(const sal_Int32 nFmt, const sal_Int16 nDefault) { sal_Int16 nRet; switch(nFmt) @@ -594,7 +595,7 @@ sal_Int16 ConvertNumberingType(sal_Int32 nFmt) case NS_ooxml::LN_Value_ST_NumberFormat_decimalZero: nRet = style::NumberingType::ARABIC_ZERO; break; - default: nRet = style::NumberingType::ARABIC; + default: nRet = nDefault; } /* TODO: Lots of additional values are available - some are supported in the I18 framework NS_ooxml::LN_Value_ST_NumberFormat_hex = 91685; diff --git a/writerfilter/source/dmapper/ConversionHelper.hxx b/writerfilter/source/dmapper/ConversionHelper.hxx index ad0cd615fbec..72c0efe0d540 100644 --- a/writerfilter/source/dmapper/ConversionHelper.hxx +++ b/writerfilter/source/dmapper/ConversionHelper.hxx @@ -21,6 +21,7 @@ #include <sal/types.h> #include <rtl/ustring.hxx> #include <com/sun/star/util/DateTime.hpp> +#include <com/sun/star/style/NumberingType.hpp> #include <com/sun/star/table/BorderLine2.hpp> #include <com/sun/star/text/RubyAdjust.hpp> @@ -49,7 +50,7 @@ namespace writerfilter::dmapper::ConversionHelper{ SAL_DLLPUBLIC_EXPORT sal_uInt32 convertTwipToMM100Unsigned(sal_Int32 _t); sal_Int16 convertTableJustification( sal_Int32 nIntValue ); css::text::RubyAdjust convertRubyAlign( sal_Int32 nIntValue ); - sal_Int16 ConvertNumberingType(sal_Int32 nFmt); + sal_Int16 ConvertNumberingType(const sal_Int32 nFmt, const sal_Int16 nDefault = css::style::NumberingType::ARABIC); sal_Int16 ConvertCustomNumberFormat(std::u16string_view rFormat); css::util::DateTime ConvertDateStringToDateTime(const OUString& rDateTime); diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index a70c5e81d5af..2561120adb2d 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -1074,29 +1074,9 @@ void DomainMapper::lcl_attribute(Id nName, Value & val) case NS_ooxml::LN_CT_PageNumber_fmt: if (pSectionContext) { - switch (nIntValue) - { - case NS_ooxml::LN_Value_ST_NumberFormat_decimal: - // 1, 2, ... - pSectionContext->SetPageNumberType(style::NumberingType::ARABIC); - break; - case NS_ooxml::LN_Value_ST_NumberFormat_upperLetter: - // A, B, ... - pSectionContext->SetPageNumberType(style::NumberingType::CHARS_UPPER_LETTER_N); - break; - case NS_ooxml::LN_Value_ST_NumberFormat_lowerLetter: - // a, b, ... - pSectionContext->SetPageNumberType(style::NumberingType::CHARS_LOWER_LETTER_N); - break; - case NS_ooxml::LN_Value_ST_NumberFormat_upperRoman: - // I, II, ... - pSectionContext->SetPageNumberType(style::NumberingType::ROMAN_UPPER); - break; - case NS_ooxml::LN_Value_ST_NumberFormat_lowerRoman: - // i, ii, ... - pSectionContext->SetPageNumberType(style::NumberingType::ROMAN_LOWER); - break; - } + sal_Int16 nNumberType = ConversionHelper::ConvertNumberingType(nIntValue, -1); + if (nNumberType != -1) + pSectionContext->SetPageNumberType(nNumberType); } break; case NS_ooxml::LN_CT_FtnEdn_type: |