summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2021-10-25 15:39:46 +0200
committerAdolfo Jayme Barrientos <fitojb@ubuntu.com>2021-10-26 00:08:20 +0200
commit3a76bba6bc2d638ce9e13179bcf03854b05b97e1 (patch)
tree5978e34a69764c57cb0448aec047f631397e2542 /svx
parentc8dd76d1cb66cf5f4d02bf5d3265904ded9e471f (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.cxx18
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 )