diff options
author | Justin Luth <justin.luth@collabora.com> | 2023-01-02 15:09:03 -0500 |
---|---|---|
committer | Justin Luth <jluth@mail.com> | 2023-01-06 03:08:29 +0000 |
commit | 710017981194c33ac1ba1acc439f92b87869f532 (patch) | |
tree | 4d7b21b0fb61d5080b229ac33c6ac4b6eed2ce34 /i18npool | |
parent | 585f65738270ba8ab2fdc4c49063c3b5663fe768 (diff) |
tdf#56258: allow i18npool to define SvxAdjust for outline
Deciding whether the numbering should be Left, Right, or Center
is a rather important setting. Specifically for Roman numerals
(which grow very wide as they increment to 7 and 8)
the numbering styles set these to right aligned.
This really helps for keeping the text nicely aligned.
The numbering styles are built-in LO defaults,
but locale files can define numbering and outline
choices. This patch add the setting for "adjust" on
the outline levels.
For en_US, it makes sense to right-align roman numeral levels.
[The only other highly likely candidate for this that I could find
was old Hungarian (SZEKELY_ROVAS), but it doesn't seem
to be used in any locale definitions.]
I only changed en_US for now, but of course many other
locales are also using NumType="3" and NumType="4".
This only applies to the toolbar/sidebar SVX code path.
The Bullets and Numbering dialog does not currently
modify any spacing, so I didn't apply the adjustment either.
It also doesn't make sense to do this on single numbering changes
(aka ContinuousNumberingLevels or LC_NumberingLevel)
because we don't know or control the first line indent there either.
But at least for toolbar Outlines, we do change every level,
and so can set a (somewhat) appropriate spacing.
[Setting SvxAdjust without adjusting the spacing
is pointless. Don't make any changes at all if
the spacing ends up causing problems.]
The Numbering IVX/ivx styles set the firstLineIndent to -174,
so I did the same here. This is the scariest part of this change.
AFAICS SvxAdjust::Left is a non-locale aDefNumStyle default,
so hardcoding that for undefined LC_OutlineNumberingLevel
shouldn't be too scary.
Change-Id: I52deefe88aa55c55c9531b651411f64accb86f7f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144978
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
Diffstat (limited to 'i18npool')
-rw-r--r-- | i18npool/source/localedata/LocaleNode.cxx | 3 | ||||
-rw-r--r-- | i18npool/source/localedata/data/en_US.xml | 10 | ||||
-rw-r--r-- | i18npool/source/localedata/localedata.cxx | 6 |
3 files changed, 11 insertions, 8 deletions
diff --git a/i18npool/source/localedata/LocaleNode.cxx b/i18npool/source/localedata/LocaleNode.cxx index acc7dd8f927b..14232338b9f1 100644 --- a/i18npool/source/localedata/LocaleNode.cxx +++ b/i18npool/source/localedata/LocaleNode.cxx @@ -2236,7 +2236,7 @@ void LCOutlineNumberingLevelNode::generateCode (const OFileWriter &of) const } // hardcode number of attributes per level - const int nAttributes = 11; + const int nAttributes = 12; const char* attr[ nAttributes ] = { "Prefix", @@ -2248,6 +2248,7 @@ void LCOutlineNumberingLevelNode::generateCode (const OFileWriter &of) const "LeftMargin", "SymbolTextDistance", "FirstLineOffset", + "Adjust", "Transliteration", "NatNum", }; diff --git a/i18npool/source/localedata/data/en_US.xml b/i18npool/source/localedata/data/en_US.xml index 042dff070f7a..aaf853353985 100644 --- a/i18npool/source/localedata/data/en_US.xml +++ b/i18npool/source/localedata/data/en_US.xml @@ -587,7 +587,7 @@ <OutlineStyle> <OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix="(" NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/> - <OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/> + <OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0" Adjust="1"/> <OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="6" Suffix="." BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="250" SymbolTextDistance="50" FirstLineOffset="0"/> @@ -601,18 +601,18 @@ <OutLineNumberingLevel Prefix=" " NumType="4" Suffix=" " BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="250" SymbolTextDistance="50" FirstLineOffset="0"/> </OutlineStyle> <OutlineStyle> - <OutLineNumberingLevel Prefix=" " NumType="2" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/> + <OutLineNumberingLevel Prefix=" " NumType="2" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0" Adjust="1"/> <OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/> - <OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/> + <OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0" Adjust="1"/> <OutLineNumberingLevel Prefix=" " NumType="1" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="4" Suffix=")" BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="250" SymbolTextDistance="50" FirstLineOffset="0"/> </OutlineStyle> <OutlineStyle> <OutLineNumberingLevel Prefix=" " NumType="0" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="0" SymbolTextDistance="50" FirstLineOffset="0"/> - <OutLineNumberingLevel Prefix=" " NumType="2" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0"/> + <OutLineNumberingLevel Prefix=" " NumType="2" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="50" SymbolTextDistance="50" FirstLineOffset="0" Adjust="1"/> <OutLineNumberingLevel Prefix=" " NumType="1" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="100" SymbolTextDistance="50" FirstLineOffset="0"/> - <OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0"/> + <OutLineNumberingLevel Prefix=" " NumType="3" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="150" SymbolTextDistance="50" FirstLineOffset="0" Adjust="1"/> <OutLineNumberingLevel Prefix=" " NumType="4" Suffix="." BulletChar="0020" BulletFontName="" ParentNumbering="0" LeftMargin="200" SymbolTextDistance="50" FirstLineOffset="0"/> <OutLineNumberingLevel Prefix=" " NumType="6" Suffix=" " BulletChar="2022" BulletFontName="StarSymbol" ParentNumbering="0" LeftMargin="250" SymbolTextDistance="50" FirstLineOffset="0"/> </OutlineStyle> diff --git a/i18npool/source/localedata/localedata.cxx b/i18npool/source/localedata/localedata.cxx index 933c9224a1eb..fea7682cee8a 100644 --- a/i18npool/source/localedata/localedata.cxx +++ b/i18npool/source/localedata/localedata.cxx @@ -1319,6 +1319,7 @@ struct OutlineNumberingLevel_Impl sal_Int32 nLeftMargin; sal_Int32 nSymbolTextDistance; sal_Int32 nFirstLineOffset; + sal_Int16 nAdjust; OUString sTransliteration; sal_Int32 nNatNum; }; @@ -1384,7 +1385,7 @@ LocaleDataImpl::getOutlineNumberingLevels( const lang::Locale& rLocale ) case 6: level[j].nLeftMargin = tmp.toInt32(); break; case 7: level[j].nSymbolTextDistance = tmp.toInt32(); break; case 8: level[j].nFirstLineOffset = tmp.toInt32(); break; - case 9: break; + case 9: level[j].nAdjust = sal::static_int_cast<sal_Int16>(tmp.toInt32()); break; case 10: level[j].sTransliteration = tmp; break; case 11: level[j].nNatNum = tmp.toInt32(); break; default: @@ -1395,6 +1396,7 @@ LocaleDataImpl::getOutlineNumberingLevels( const lang::Locale& rLocale ) level[j].sPrefix.clear(); level[j].nNumType = 0; level[j].sSuffix.clear(); + level[j].nAdjust = 0; level[j].cBulletChar = 0; level[j].sBulletFontName.clear(); level[j].nParentNumbering = 0; @@ -1528,7 +1530,7 @@ Any OutlineNumbering::getByIndex( sal_Int32 nIndex ) pValues[8].Name = "FirstLineOffset"; pValues[8].Value <<= pTemp->nFirstLineOffset; pValues[9].Name = "Adjust"; - pValues[9].Value <<= sal_Int16(SvxAdjust::Left); + pValues[9].Value <<= pTemp->nAdjust; pValues[10].Name = "Transliteration"; pValues[10].Value <<= pTemp->sTransliteration; pValues[11].Name = "NatNum"; |