summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMatteo Casalin <matteo.casalin@yahoo.com>2017-08-04 11:05:23 +0200
committerMatteo Casalin <matteo.casalin@yahoo.com>2017-08-27 14:05:27 +0200
commit59d821df1e8f55b16afba2482a2fe889e9e78749 (patch)
tree00a8d46afccf222fad4e1a9e86dfa2588971249b /sw
parentb382193a205b81e345afb107285883d0be676e6f (diff)
Calculate values only when they are really needed
Change-Id: I21d1df718b3d453220200defb16f07bbb5b2baa3
Diffstat (limited to 'sw')
-rw-r--r--sw/source/uibase/utlui/numfmtlb.cxx57
1 files changed, 32 insertions, 25 deletions
diff --git a/sw/source/uibase/utlui/numfmtlb.cxx b/sw/source/uibase/utlui/numfmtlb.cxx
index c3724d89e0ce..f5881a9f3985 100644
--- a/sw/source/uibase/utlui/numfmtlb.cxx
+++ b/sw/source/uibase/utlui/numfmtlb.cxx
@@ -235,6 +235,36 @@ void NumFormatListBox::SetFormatType(const short nFormatType)
}
}
+namespace
+{
+
+bool lcl_isSystemFormat(sal_uInt32 nDefaultFormat, SvNumberFormatter* pFormatter, LanguageType eCurLanguage)
+{
+ const sal_uInt32 nSysNumFormat = pFormatter->GetFormatIndex(NF_NUMBER_SYSTEM, eCurLanguage);
+ if (nDefaultFormat == nSysNumFormat)
+ return true;
+ const sal_uInt32 nSysShortDateFormat = pFormatter->GetFormatIndex(NF_DATE_SYSTEM_SHORT, eCurLanguage);
+ if (nDefaultFormat == nSysShortDateFormat)
+ return true;
+ const sal_uInt32 nSysLongDateFormat = pFormatter->GetFormatIndex(NF_DATE_SYSTEM_LONG, eCurLanguage);
+ if (nDefaultFormat == nSysLongDateFormat)
+ return true;
+
+ if ( eCurLanguage != GetAppLanguage() )
+ return false;
+
+ if (nDefaultFormat == pFormatter->GetFormatForLanguageIfBuiltIn(nSysNumFormat, LANGUAGE_SYSTEM))
+ return true;
+ if (nDefaultFormat == pFormatter->GetFormatForLanguageIfBuiltIn(nSysShortDateFormat, LANGUAGE_SYSTEM))
+ return true;
+ if (nDefaultFormat == pFormatter->GetFormatForLanguageIfBuiltIn(nSysLongDateFormat, LANGUAGE_SYSTEM))
+ return true;
+
+ return false;
+}
+
+}
+
void NumFormatListBox::SetDefFormat(const sal_uInt32 nDefaultFormat)
{
if (nDefaultFormat == NUMBERFORMAT_ENTRY_NOT_FOUND)
@@ -268,7 +298,6 @@ void NumFormatListBox::SetDefFormat(const sal_uInt32 nDefaultFormat)
}
// No entry found:
- double fValue = GetDefValue(nType);
OUString sValue;
Color* pCol = nullptr;
@@ -278,36 +307,14 @@ void NumFormatListBox::SetDefFormat(const sal_uInt32 nDefaultFormat)
}
else
{
- pFormatter->GetOutputString(fValue, nDefaultFormat, sValue, &pCol);
+ pFormatter->GetOutputString(GetDefValue(nType), nDefaultFormat, sValue, &pCol);
}
sal_Int32 nPos = 0;
while (static_cast<sal_uInt32>(reinterpret_cast<sal_uIntPtr>(GetEntryData(nPos))) == NUMBERFORMAT_ENTRY_NOT_FOUND)
nPos++;
- const sal_uInt32 nSysNumFormat = pFormatter->GetFormatIndex( NF_NUMBER_SYSTEM, eCurLanguage);
- const sal_uInt32 nSysShortDateFormat = pFormatter->GetFormatIndex( NF_DATE_SYSTEM_SHORT, eCurLanguage);
- const sal_uInt32 nSysLongDateFormat = pFormatter->GetFormatIndex( NF_DATE_SYSTEM_LONG, eCurLanguage);
- bool bSysLang = false;
- if( eCurLanguage == GetAppLanguage() )
- bSysLang = true;
- const sal_uInt32 nNumFormatForLanguage = pFormatter->GetFormatForLanguageIfBuiltIn(nSysNumFormat, LANGUAGE_SYSTEM );
- const sal_uInt32 nShortDateFormatForLanguage = pFormatter->GetFormatForLanguageIfBuiltIn(nSysShortDateFormat, LANGUAGE_SYSTEM );
- const sal_uInt32 nLongDateFormatForLanguage = pFormatter->GetFormatForLanguageIfBuiltIn(nSysLongDateFormat, LANGUAGE_SYSTEM );
-
- if (
- nDefaultFormat == nSysNumFormat ||
- nDefaultFormat == nSysShortDateFormat ||
- nDefaultFormat == nSysLongDateFormat ||
- (
- bSysLang &&
- (
- nDefaultFormat == nNumFormatForLanguage ||
- nDefaultFormat == nShortDateFormatForLanguage ||
- nDefaultFormat == nLongDateFormatForLanguage
- )
- )
- )
+ if ( lcl_isSystemFormat(nDefaultFormat, pFormatter, eCurLanguage) )
{
sValue += SwResId(RID_STR_SYSTEM);
}