diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2012-11-18 19:53:27 -0600 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2012-11-18 19:57:24 -0600 |
commit | 731ba0ef925f2005ec54e856e0bc3c54a3874707 (patch) | |
tree | c0cb19fc3931be6119a0e52197d12af7f30e588d /svl | |
parent | 271b11a3d56ba0c5f542a142ab859a0819530dba (diff) |
convert a GetOutputString variant to OUString
Change-Id: I4bed439df3d4f4c0a87a6e406048de2af6995b89
Diffstat (limited to 'svl')
-rw-r--r-- | svl/inc/svl/zformat.hxx | 5 | ||||
-rw-r--r-- | svl/source/numbers/zformat.cxx | 25 |
2 files changed, 21 insertions, 9 deletions
diff --git a/svl/inc/svl/zformat.hxx b/svl/inc/svl/zformat.hxx index 6e13b2ddf028..430af3367892 100644 --- a/svl/inc/svl/zformat.hxx +++ b/svl/inc/svl/zformat.hxx @@ -245,7 +245,7 @@ public: * Get output string from a numeric value that fits the number of * characters specified. */ - bool GetOutputString( double fNumber, sal_uInt16 nCharCount, String& rOutString ) const; + bool GetOutputString( double fNumber, sal_uInt16 nCharCount, OUString& rOutString ) const; bool GetOutputString( double fNumber, String& OutString, Color** ppColor ); bool GetOutputString( OUString& sString, OUString& OutString, Color** ppColor ); @@ -569,7 +569,8 @@ private: // standard number output SVL_DLLPRIVATE void ImpGetOutputStandard( double& fNumber, String& OutString ); - SVL_DLLPRIVATE void ImpGetOutputStdToPrecision( double& rNumber, String& rOutString, sal_uInt16 nPrecision ) const; + SVL_DLLPRIVATE void ImpGetOutputStandard( double& fNumber, OUString& OutString ); + SVL_DLLPRIVATE void ImpGetOutputStdToPrecision( double& rNumber, OUString& rOutString, sal_uInt16 nPrecision ) const; // numbers in input line SVL_DLLPRIVATE void ImpGetOutputInputLine( double fNumber, String& OutString ); diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx index b691dbacdda9..52ae19c6d386 100644 --- a/svl/source/numbers/zformat.cxx +++ b/svl/source/numbers/zformat.cxx @@ -2089,6 +2089,13 @@ void SvNumberformat::Build50Formatstring( String& rStr ) const void SvNumberformat::ImpGetOutputStandard(double& fNumber, String& OutString) { + OUString sTemp(OutString); + ImpGetOutputStandard(fNumber, sTemp); + OutString = sTemp; +} + +void SvNumberformat::ImpGetOutputStandard(double& fNumber, OUString& OutString) +{ sal_uInt16 nStandardPrec = rScan.GetStandardPrec(); if ( fabs(fNumber) > 1.0E15 ) // #58531# war E16 @@ -2104,7 +2111,7 @@ void SvNumberformat::ImpGetOutputStandard(double& fNumber, String& OutString) } } -void SvNumberformat::ImpGetOutputStdToPrecision(double& rNumber, String& rOutString, sal_uInt16 nPrecision) const +void SvNumberformat::ImpGetOutputStdToPrecision(double& rNumber, OUString& rOutString, sal_uInt16 nPrecision) const { // Make sure the precision doesn't go over the maximum allowable precision. nPrecision = ::std::min(UPPER_PRECISION, nPrecision); @@ -2142,8 +2149,8 @@ void SvNumberformat::ImpGetOutputStdToPrecision(double& rNumber, String& rOutStr rOutString = ::rtl::math::doubleToUString( rNumber, rtl_math_StringFormat_F, nPrecision /*2*/, GetFormatter().GetNumDecimalSep().GetChar(0), true ); - if (rOutString.GetChar(0) == '-' && - comphelper::string::getTokenCount(rOutString, '0') == rOutString.Len()) + if (rOutString[0] == (sal_Unicode)'-' && + comphelper::string::getTokenCount(rOutString, '0') == rOutString.getLength()) { rOutString = comphelper::string::stripStart(rOutString, '-'); // nicht -0 } @@ -2302,7 +2309,7 @@ sal_uLong SvNumberformat::ImpGGTRound(sal_uLong x, sal_uLong y) namespace { void lcl_GetOutputStringScientific(double fNumber, sal_uInt16 nCharCount, - const SvNumberFormatter& rFormatter, String& rOutString) + const SvNumberFormatter& rFormatter, OUString& rOutString) { bool bSign = ::rtl::math::isSignBitSet(fNumber); @@ -2359,7 +2366,7 @@ sal_Int32 SvNumberformat::GetForcedDenominatorForType( sal_uInt16 nNumFor ) cons return lcl_GetForcedDenominator( rInfo, nAnz ); } -bool SvNumberformat::GetOutputString(double fNumber, sal_uInt16 nCharCount, String& rOutString) const +bool SvNumberformat::GetOutputString(double fNumber, sal_uInt16 nCharCount, OUString& rOutString) const { using namespace std; @@ -2401,7 +2408,7 @@ bool SvNumberformat::GetOutputString(double fNumber, sal_uInt16 nCharCount, Stri --nPrec; } ImpGetOutputStdToPrecision(fNumber, rOutString, nPrec); - if (rOutString.Len() > nCharCount) + if (rOutString.getLength() > nCharCount) { // String still wider than desired. Switch to scientific notation. lcl_GetOutputStringScientific(fNumber, nCharCount, GetFormatter(), rOutString); @@ -2455,7 +2462,11 @@ bool SvNumberformat::GetOutputString(double fNumber, } fNumber = -fNumber; } - ImpGetOutputStdToPrecision(fNumber, OutString, 10); // Use 10 decimals for general 'unlimited' format. + { + OUString sTemp(OutString); + ImpGetOutputStdToPrecision(fNumber, sTemp, 10); // Use 10 decimals for general 'unlimited' format. + OutString = sTemp; + } if (fNumber < EXP_LOWER_BOUND) { xub_StrLen nLen = OutString.Len(); |