[PATCH] Remove String::Fill() usage
Christina Rossmanith
ChrRossmanith at web.de
Fri Nov 11 14:09:26 PST 2011
---
sc/source/ui/docshell/docsh.cxx | 41 ++++++++++++++++++++++----------------
1 files changed, 24 insertions(+), 17 deletions(-)
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index 93bb4bc..4a0981d 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -134,6 +134,7 @@
#include <rtl/logfile.hxx>
#include <comphelper/processfactory.hxx>
+#include <comphelper/string.hxx>
#include "uiitems.hxx"
#include "cellsuno.hxx"
#include "dpobject.hxx"
@@ -1593,7 +1594,7 @@ sal_Bool ScDocShell::IsInformationLost()
// Xcl-like column width measured in characters of standard font.
-xub_StrLen lcl_ScDocShell_GetColWidthInChars( sal_uInt16 nWidth )
+sal_Int32 lcl_ScDocShell_GetColWidthInChars( sal_uInt16 nWidth )
{
double f = nWidth;
f *= 1328.0 / 25.0;
@@ -1601,46 +1602,52 @@ xub_StrLen lcl_ScDocShell_GetColWidthInChars( sal_uInt16 nWidth )
f *= 1.0 / 23.0;
f /= 256.0;
- return xub_StrLen( f );
+ return sal_Int32( f );
}
void lcl_ScDocShell_GetFixedWidthString( rtl::OUString& rStr, const ScDocument& rDoc,
SCTAB nTab, SCCOL nCol, sal_Bool bValue, SvxCellHorJustify eHorJust )
{
- String aString = rStr;
- xub_StrLen nLen = lcl_ScDocShell_GetColWidthInChars(
+ rtl::OUString aString = rStr;
+ sal_Int32 nLen = lcl_ScDocShell_GetColWidthInChars(
rDoc.GetColWidth( nCol, nTab ) );
- if ( nLen < aString.Len() )
+ if ( nLen < aString.getLength() )
{
if ( bValue )
- aString.AssignAscii( "###" );
- aString.Erase( nLen );
+ aString = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "###" ));
}
- if ( nLen > aString.Len() )
+ if ( nLen > aString.getLength() )
{
if ( bValue && eHorJust == SVX_HOR_JUSTIFY_STANDARD )
eHorJust = SVX_HOR_JUSTIFY_RIGHT;
+ sal_Int32 nBlanks = nLen - aString.getLength();
switch ( eHorJust )
{
case SVX_HOR_JUSTIFY_RIGHT:
{
- String aTmp;
- aTmp.Fill( nLen - aString.Len() );
- aString.Insert( aTmp, 0 );
+ rtl::OUStringBuffer aTmp;
+ aTmp = comphelper::string::padToLength( aTmp, nBlanks, ' ' );
+ aString = aTmp.append(aString).makeStringAndClear();
}
break;
case SVX_HOR_JUSTIFY_CENTER:
{
- xub_StrLen nLen2 = (nLen - aString.Len()) / 2;
- String aTmp;
- aTmp.Fill( nLen2 );
- aString.Insert( aTmp, 0 );
- aString.Expand( nLen );
+ sal_Int32 nLen2 = nBlanks / 2;
+ rtl::OUStringBuffer aLeft;
+ rtl::OUStringBuffer aRight;
+ aLeft = comphelper::string::padToLength( aLeft, nLen2, ' ' );
+ aRight = comphelper::string::padToLength( aRight, nBlanks - nLen2, ' ' );
+ aString = aLeft.append(aString).makeStringAndClear();
+ aString += aRight.makeStringAndClear();
}
break;
default:
- aString.Expand( nLen );
+ {
+ rtl::OUStringBuffer aTmp;
+ comphelper::string::padToLength( aTmp, nBlanks, ' ' );
+ aString += aTmp.makeStringAndClear();
+ }
}
}
rStr = aString;
--
1.7.4.1
--------------020506050609070505060708--
More information about the LibreOffice
mailing list