diff options
author | Eike Rathke <erack@redhat.com> | 2021-10-25 15:39:46 +0200 |
---|---|---|
committer | Adolfo Jayme Barrientos <fitojb@ubuntu.com> | 2021-10-26 00:08:20 +0200 |
commit | 3a76bba6bc2d638ce9e13179bcf03854b05b97e1 (patch) | |
tree | 5978e34a69764c57cb0448aec047f631397e2542 /svx | |
parent | c8dd76d1cb66cf5f4d02bf5d3265904ded9e471f (diff) |
Fix toolbar button's currency list's number format for default locale
Always resulted in the currency's LCID being omitted in the number
format for the default locale, which doesn't immediately harm but
loses the context (what currency a $ sign is actually), and also
lead to the "real" default currency format never matching the one
being generated for the list so no entry was selected if that
format was applied.
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124152
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit 97e63ff5375d9d80d6fe5d4bd68883e35bd56d91)
Backported, deleted the deleted copy-ctor ...
Change-Id: I7963e4d3701092d6e227705fc0e8282448f075b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124025
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/tbxctrls/tbcontrl.cxx | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx index 1b94df39887d..076c2b6fe4aa 100644 --- a/svx/source/tbxctrls/tbcontrl.cxx +++ b/svx/source/tbxctrls/tbcontrl.cxx @@ -3566,11 +3566,23 @@ namespace if (rItem.getLength() > sLongestString.getLength()) sLongestString = rItem; - const NfCurrencyEntry& aCurrencyEntry = rCurrencyTable[ rCurrencyIndex ]; - bIsSymbol = nPos >= nLen; - sal_uInt16 nDefaultFormat = aFormatter.GetCurrencyFormatStrings( aStringsDtor, aCurrencyEntry, bIsSymbol ); + sal_uInt16 nDefaultFormat; + const NfCurrencyEntry& rCurrencyEntry = rCurrencyTable[ rCurrencyIndex ]; + if (rCurrencyIndex == 0) + { + // Stored with system locale, but we want the resolved + // full LCID format string. For example + // "[$$-409]#,##0.00" instead of "[$$]#,##0.00". + NfCurrencyEntry aCurrencyEntry( rCurrencyEntry); + aCurrencyEntry.SetLanguage( LanguageTag( aCurrencyEntry.GetLanguage()).getLanguageType()); + nDefaultFormat = aFormatter.GetCurrencyFormatStrings( aStringsDtor, aCurrencyEntry, bIsSymbol); + } + else + { + nDefaultFormat = aFormatter.GetCurrencyFormatStrings( aStringsDtor, rCurrencyEntry, bIsSymbol); + } const OUString& rFormatStr = aStringsDtor[ nDefaultFormat ]; m_aFormatEntries.push_back( rFormatStr ); if( rFormatStr == m_rSelectedFormat ) |