summaryrefslogtreecommitdiff
path: root/svl
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2012-11-18 19:53:27 -0600
committerNorbert Thiebaud <nthiebaud@gmail.com>2012-11-18 19:57:24 -0600
commit731ba0ef925f2005ec54e856e0bc3c54a3874707 (patch)
treec0cb19fc3931be6119a0e52197d12af7f30e588d /svl
parent271b11a3d56ba0c5f542a142ab859a0819530dba (diff)
convert a GetOutputString variant to OUString
Change-Id: I4bed439df3d4f4c0a87a6e406048de2af6995b89
Diffstat (limited to 'svl')
-rw-r--r--svl/inc/svl/zformat.hxx5
-rw-r--r--svl/source/numbers/zformat.cxx25
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();