summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xmloff/inc/xmloff/xmlnumfi.hxx1
-rw-r--r--xmloff/source/style/xmlnumfi.cxx36
2 files changed, 24 insertions, 13 deletions
diff --git a/xmloff/inc/xmloff/xmlnumfi.hxx b/xmloff/inc/xmloff/xmlnumfi.hxx
index 552caa5f3815..f162f5be8aa1 100644
--- a/xmloff/inc/xmloff/xmlnumfi.hxx
+++ b/xmloff/inc/xmloff/xmlnumfi.hxx
@@ -202,6 +202,7 @@ public:
const LocaleDataWrapper& GetLocaleData() const;
void AddToCode( const rtl::OUString& rString );
+ void AddToCode( sal_Unicode c );
void AddNumber( const SvXMLNumberInfo& rInfo );
void AddCurrency( const rtl::OUString& rContent, LanguageType nLang );
diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx
index f5b8c2124fab..f142ce936e5b 100644
--- a/xmloff/source/style/xmlnumfi.cxx
+++ b/xmloff/source/style/xmlnumfi.cxx
@@ -1098,13 +1098,13 @@ void SvXMLNumFmtElementContext::EndElement()
break;
case XML_TOK_STYLE_TEXT_CONTENT:
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'@') );
+ rParent.AddToCode( (sal_Unicode)'@');
break;
case XML_TOK_STYLE_FILL_CHARACTER:
if ( aContent.getLength() )
{
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'*') );
- rParent.AddToCode( OUString::valueOf( aContent[0] ) );
+ rParent.AddToCode( (sal_Unicode)'*' );
+ rParent.AddToCode( aContent[0] );
}
break;
case XML_TOK_STYLE_BOOLEAN:
@@ -1188,13 +1188,11 @@ void SvXMLNumFmtElementContext::EndElement()
if ( aNumInfo.nDecimals > 0 )
{
// manually add the decimal places
- const String& rSep = rParent.GetLocaleData().getNumDecimalSep();
- for ( xub_StrLen j=0; j<rSep.Len(); j++ )
+ rParent.AddToCode(rParent.GetLocaleData().getNumDecimalSep());
+ for (sal_Int32 i=0; i<aNumInfo.nDecimals; i++)
{
- rParent.AddToCode( OUString::valueOf( rSep.GetChar(j) ) );
+ rParent.AddToCode( (sal_Unicode)'0');
}
- for (sal_Int32 i=0; i<aNumInfo.nDecimals; i++)
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'0') );
}
break;
@@ -1205,15 +1203,17 @@ void SvXMLNumFmtElementContext::EndElement()
// add integer part only if min-integer-digits attribute is there
aNumInfo.nDecimals = 0;
rParent.AddNumber( aNumInfo ); // number without decimals
- rParent.AddToCode( OUString::valueOf((sal_Unicode)' ') );
+ rParent.AddToCode( (sal_Unicode)' ' );
}
//! build string and add at once
sal_Int32 i;
for (i=0; i<aNumInfo.nNumerDigits; i++)
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'?') );
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'/') );
+ {
+ rParent.AddToCode( (sal_Unicode)'?' );
+ }
+ rParent.AddToCode( (sal_Unicode)'/' );
if ( aNumInfo.nFracDenominator > 0 )
{
rParent.AddToCode( OUString::valueOf( aNumInfo.nFracDenominator ) );
@@ -1221,7 +1221,9 @@ void SvXMLNumFmtElementContext::EndElement()
else
{
for (i=0; i<aNumInfo.nDenomDigits; i++)
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'?') );
+ {
+ rParent.AddToCode( (sal_Unicode)'?');
+ }
}
}
break;
@@ -1232,7 +1234,9 @@ void SvXMLNumFmtElementContext::EndElement()
rParent.AddToCode( OUString("E+") );
for (sal_Int32 i=0; i<aNumInfo.nExpDigits; i++)
- rParent.AddToCode( OUString::valueOf((sal_Unicode)'0') );
+ {
+ rParent.AddToCode( (sal_Unicode)'0' );
+ }
}
break;
@@ -1713,6 +1717,12 @@ const LocaleDataWrapper& SvXMLNumFormatContext::GetLocaleData() const
return pData->GetLocaleData( nFormatLang );
}
+void SvXMLNumFormatContext::AddToCode( sal_Unicode c )
+{
+ aFormatCode.append( c );
+ bHasExtraText = sal_True;
+}
+
void SvXMLNumFormatContext::AddToCode( const rtl::OUString& rString )
{
aFormatCode.append( rString );