summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorJustin Luth <justin_luth@sil.org>2021-03-30 09:51:05 +0200
committerMiklos Vajna <vmiklos@collabora.com>2021-04-01 17:58:33 +0200
commit4f7bc49bce261f1cf206d25f0299fd080a9f5d28 (patch)
treec771d30aa505c50d5ec342c394b17f2c437630c2 /writerfilter
parenta49206fd70e72023493fdd9ecea4cd58f9a2aee6 (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.cxx5
-rw-r--r--writerfilter/source/dmapper/ConversionHelper.hxx3
-rw-r--r--writerfilter/source/dmapper/DomainMapper.cxx26
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: