diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2020-03-03 09:27:01 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2020-03-03 10:19:26 +0100 |
commit | 642b7706101a991efc7e312f59dece640d8bfb60 (patch) | |
tree | c31382736ead8bd4dda39170e4a5775477392a51 /i18npool/source | |
parent | b23183af90996395c19eea5c71c7b2f5640b838b (diff) |
sw padded numbering: add layout
lcl_formatArabicZero() looks a bit over-complicated with its hardcoded
limit of 2. Word supports limits of 3, 4 and 5 as well, so prepare for
handling them in a generic way.
Change-Id: If6e5634b11616f0ac05e1387016e22f4b171bbfb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89864
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
Diffstat (limited to 'i18npool/source')
-rw-r--r-- | i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx index 7e746bb14d95..54eeaf841850 100644 --- a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx +++ b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx @@ -552,6 +552,30 @@ bool should_ignore( const OUString& s ) return s == " " || (!s.isEmpty() && s[0]==0); } +/** + * Turn nNumber into a string and pad the result to 2 using zero characters. + */ +static OUString lcl_formatArabicZero(sal_Int32 nNumber) +{ + sal_Int32 nLimit = 2; + OUString aRet = OUString::number(nNumber); + sal_Int32 nDiff = nLimit - aRet.getLength(); + + if (nDiff <= 0) + { + return aRet; + } + + OUStringBuffer aBuffer; + aBuffer.setLength(nDiff); + for (sal_Int32 i = 0; i < nDiff; ++i) + { + aBuffer[i] = '0'; + } + aBuffer.append(aRet); + return aBuffer.makeStringAndClear(); +} + static Any getPropertyByName( const Sequence<beans::PropertyValue>& aProperties, const char* name, bool bRequired ) @@ -913,6 +937,10 @@ DefaultNumberingProvider::makeNumberingString( const Sequence<beans::PropertyVal lcl_formatChars1( table_Chicago, 4, number-1, result ); // *, +, |, S, **, ++, ... break; + case ARABIC_ZERO: + result += lcl_formatArabicZero(number); + break; + default: OSL_ASSERT(false); throw IllegalArgumentException(); |