summaryrefslogtreecommitdiff
path: root/i18npool
diff options
context:
space:
mode:
authorJustin Luth <justin.luth@collabora.com>2023-01-02 15:09:03 -0500
committerJustin Luth <jluth@mail.com>2023-01-06 03:08:29 +0000
commit710017981194c33ac1ba1acc439f92b87869f532 (patch)
tree4d7b21b0fb61d5080b229ac33c6ac4b6eed2ce34 /i18npool
parent585f65738270ba8ab2fdc4c49063c3b5663fe768 (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.cxx3
-rw-r--r--i18npool/source/localedata/data/en_US.xml10
-rw-r--r--i18npool/source/localedata/localedata.cxx6
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";