[Libreoffice-commits] core.git: vcl/inc vcl/source

Chr. Rossmanith ChrRossmanith at gmx.de
Thu Mar 7 04:48:31 PST 2013


 vcl/inc/vcl/field.hxx         |   32 +--
 vcl/source/control/field.cxx  |    8 
 vcl/source/control/field2.cxx |  377 ++++++++++++++++++++----------------------
 3 files changed, 204 insertions(+), 213 deletions(-)

New commits:
commit 3cad6c806e5247ce20b78eb688551aa5d872b934
Author: Chr. Rossmanith <ChrRossmanith at gmx.de>
Date:   Fri Mar 1 21:47:10 2013 +0100

    Replace (Xub)String with OUString in vcl(field)
    
    Change-Id: I62fba60a4c6e1db870443a796e6338cddc934352
    Reviewed-on: https://gerrit.libreoffice.org/2229
    Reviewed-by: Fridrich Strba <fridrich at documentfoundation.org>
    Tested-by: Fridrich Strba <fridrich at documentfoundation.org>

diff --git a/vcl/inc/vcl/field.hxx b/vcl/inc/vcl/field.hxx
index 0f47d5f..ec661c6 100644
--- a/vcl/inc/vcl/field.hxx
+++ b/vcl/inc/vcl/field.hxx
@@ -51,7 +51,7 @@ private:
     sal_Bool                    mbDefaultLocale;
 
 protected:
-    SAL_DLLPRIVATE void     ImplSetText( const XubString& rText, Selection* pNewSel = NULL );
+    SAL_DLLPRIVATE void     ImplSetText( const OUString& rText, Selection* pNewSel = NULL );
     SAL_DLLPRIVATE sal_Bool     ImplGetEmptyFieldValue() const  { return mbEmptyFieldValue; }
 
     void                    SetEmptyFieldValueData( sal_Bool bValue ) { mbEmptyFieldValue = bValue; }
@@ -103,18 +103,18 @@ public:
 class VCL_DLLPUBLIC PatternFormatter : public FormatterBase
 {
 private:
-    rtl::OString m_aEditMask;
-    XubString               maFieldString;
-    XubString               maLiteralMask;
-    sal_uInt16                  mnFormatFlags;
-    sal_Bool                    mbSameMask;
-    sal_Bool                    mbInPattKeyInput;
+    OString                m_aEditMask;
+    OUString               maFieldString;
+    OUString               maLiteralMask;
+    sal_uInt16             mnFormatFlags;
+    sal_Bool               mbSameMask;
+    sal_Bool               mbInPattKeyInput;
 
 protected:
                             PatternFormatter();
 
-    SAL_DLLPRIVATE void ImplSetMask(const rtl::OString& rEditMask,
-        const XubString& rLiteralMask);
+    SAL_DLLPRIVATE void ImplSetMask(const OString& rEditMask,
+        const OUString& rLiteralMask);
     SAL_DLLPRIVATE sal_Bool     ImplIsSameMask() const { return mbSameMask; }
     SAL_DLLPRIVATE sal_Bool&    ImplGetInPattKeyInput() { return mbInPattKeyInput; }
 
@@ -123,16 +123,16 @@ public:
 
     virtual void            Reformat();
 
-    void SetMask(const rtl::OString& rEditMask, const XubString& rLiteralMask );
-    const rtl::OString& GetEditMask() const { return m_aEditMask; }
-    const XubString&        GetLiteralMask() const  { return maLiteralMask; }
+    void SetMask(const OString& rEditMask, const OUString& rLiteralMask );
+    const OString& GetEditMask() const { return m_aEditMask; }
+    const OUString&        GetLiteralMask() const  { return maLiteralMask; }
 
     void                    SetFormatFlags( sal_uInt16 nFlags ) { mnFormatFlags = nFlags; }
     sal_uInt16                  GetFormatFlags() const { return mnFormatFlags; }
 
-    void                    SetString( const XubString& rStr );
-    XubString               GetString() const;
-    sal_Bool                    IsStringModified() const { return !(GetString().Equals( maFieldString )); }
+    void                    SetString( const OUString& rStr );
+    OUString                GetString() const;
+    sal_Bool                IsStringModified() const { return !(GetString() == maFieldString ); }
 };
 
 // --------------------
@@ -242,7 +242,7 @@ public:
 
     virtual void            SetUnit( FieldUnit meUnit );
     FieldUnit               GetUnit() const { return meUnit; }
-    void                    SetCustomUnitText( const XubString& rStr );
+    void                    SetCustomUnitText( const OUString& rStr );
     const OUString&         GetCustomUnitText() const { return maCustomUnitText; }
     const OUString&         GetCurUnitText() const { return maCurUnitText; }
 
diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx
index 344b106..c0037e9 100644
--- a/vcl/source/control/field.cxx
+++ b/vcl/source/control/field.cxx
@@ -393,7 +393,7 @@ const AllSettings& FormatterBase::GetFieldSettings() const
 
 // -----------------------------------------------------------------------
 
-void FormatterBase::ImplSetText( const XubString& rText, Selection* pNewSelection )
+void FormatterBase::ImplSetText( const OUString& rText, Selection* pNewSelection )
 {
     if ( mpField )
     {
@@ -1417,7 +1417,7 @@ double MetricField::ConvertDoubleValue( double nValue, sal_uInt16 nDigits,
 
 // -----------------------------------------------------------------------
 
-static sal_Bool ImplMetricGetValue( const XubString& rStr, double& rValue, sal_Int64 nBaseValue,
+static sal_Bool ImplMetricGetValue( const OUString& rStr, double& rValue, sal_Int64 nBaseValue,
                                 sal_uInt16 nDecDigits, const LocaleDataWrapper& rLocaleDataWrapper, FieldUnit eUnit )
 {
     // Zahlenwert holen
@@ -1522,7 +1522,7 @@ void MetricFormatter::SetUnit( FieldUnit eNewUnit )
 
 // -----------------------------------------------------------------------
 
-void MetricFormatter::SetCustomUnitText( const XubString& rStr )
+void MetricFormatter::SetCustomUnitText( const OUString& rStr )
 {
     maCustomUnitText = rStr;
     ReformatAll();
@@ -2078,7 +2078,7 @@ static sal_Bool ImplCurrencyProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
 
 // -----------------------------------------------------------------------
 
-inline sal_Bool ImplCurrencyGetValue( const XubString& rStr, double& rValue,
+inline sal_Bool ImplCurrencyGetValue( const OUString& rStr, double& rValue,
                                   sal_uInt16 nDecDigits, const LocaleDataWrapper& rWrapper )
 {
     // fetch number
diff --git a/vcl/source/control/field2.cxx b/vcl/source/control/field2.cxx
index 7bc7c45..1bfcd06 100644
--- a/vcl/source/control/field2.cxx
+++ b/vcl/source/control/field2.cxx
@@ -67,16 +67,16 @@ uno::Reference< i18n::XCharacterClassification > ImplGetCharClass()
 
 // -----------------------------------------------------------------------
 
-static sal_Unicode* ImplAddString( sal_Unicode* pBuf, const String& rStr )
+static sal_Unicode* ImplAddString( sal_Unicode* pBuf, const OUString& rStr )
 {
-    if ( rStr.Len() == 1 )
-        *pBuf++ = rStr.GetChar(0);
-    else if ( rStr.Len() == 0 )
+    if ( rStr.getLength() == 1 )
+        *pBuf++ = rStr[0];
+    else if ( rStr.isEmpty() )
         ;
     else
     {
-        memcpy( pBuf, rStr.GetBuffer(), rStr.Len() * sizeof(sal_Unicode) );
-        pBuf += rStr.Len();
+        memcpy( pBuf, rStr.getStr(), rStr.getLength() * sizeof(sal_Unicode) );
+        pBuf += rStr.getLength();
     }
     return pBuf;
 }
@@ -233,31 +233,31 @@ static int ImplKommaPointCharEqual( sal_Unicode c1, sal_Unicode c2 )
 
 // -----------------------------------------------------------------------
 
-static XubString ImplPatternReformat( const XubString& rStr,
-                                      const rtl::OString& rEditMask,
-                                      const XubString& rLiteralMask,
-                                      sal_uInt16 nFormatFlags )
+static OUString ImplPatternReformat( const OUString& rStr,
+                                     const OString& rEditMask,
+                                     const OUString& rLiteralMask,
+                                     sal_uInt16 nFormatFlags )
 {
     if (rEditMask.isEmpty())
         return rStr;
 
-    XubString   aStr    = rStr;
-    XubString   aOutStr = rLiteralMask;
+    OUString    aStr    = rStr;
+    OUStringBuffer    aOutStr = OUString(rLiteralMask);
     sal_Unicode cTempChar;
     sal_Unicode cChar;
     sal_Unicode cLiteral;
     sal_Char    cMask;
-    xub_StrLen  nStrIndex = 0;
-    xub_StrLen  i = 0;
-    xub_StrLen  n;
+    sal_Int32   nStrIndex = 0;
+    sal_Int32   i = 0;
+    sal_Int32   n;
 
     while ( i < rEditMask.getLength() )
     {
-        if ( nStrIndex >= aStr.Len() )
+        if ( nStrIndex >= aStr.getLength() )
             break;
 
-        cChar = aStr.GetChar(nStrIndex);
-        cLiteral = rLiteralMask.GetChar(i);
+        cChar = aStr[nStrIndex];
+        cLiteral = rLiteralMask[i];
         cMask = rEditMask[i];
 
         // current position is a literal
@@ -292,7 +292,7 @@ static XubString ImplPatternReformat( const XubString& rStr,
             if ( cTempChar )
             {
                 // use this character
-                aOutStr.SetChar( i, cTempChar );
+                aOutStr[i] = cTempChar;
                 nStrIndex++;
             }
             else
@@ -311,7 +311,7 @@ static XubString ImplPatternReformat( const XubString& rStr,
                         {
                             if ( rEditMask[n] == EDITMASK_LITERAL )
                             {
-                                if ( ImplKommaPointCharEqual( cChar, rLiteralMask.GetChar( n ) ) )
+                                if ( ImplKommaPointCharEqual( cChar, rLiteralMask[n] ) )
                                     i = n+1;
 
                                 break;
@@ -330,18 +330,18 @@ static XubString ImplPatternReformat( const XubString& rStr,
         i++;
     }
 
-    return aOutStr;
+    return aOutStr.makeStringAndClear();
 }
 
 // -----------------------------------------------------------------------
 
-static void ImplPatternMaxPos( const XubString rStr, const rtl::OString& rEditMask,
+static void ImplPatternMaxPos( const OUString rStr, const OString& rEditMask,
                                sal_uInt16 nFormatFlags, sal_Bool bSameMask,
-                               sal_uInt16 nCursorPos, sal_uInt16& rPos )
+                               sal_uInt16 nCursorPos, sal_Int32& rPos )
 {
 
     // last position must not be longer than the contained string
-    xub_StrLen nMaxPos = rStr.Len();
+    sal_Int32 nMaxPos = rStr.getLength();
 
     // if non empty literals are allowed ignore blanks at the end as well
     if ( bSameMask && !(nFormatFlags & PATTERN_FORMAT_EMPTYLITERALS) )
@@ -349,13 +349,13 @@ static void ImplPatternMaxPos( const XubString rStr, const rtl::OString& rEditMa
         while ( nMaxPos )
         {
             if ( (rEditMask[nMaxPos-1] != EDITMASK_LITERAL) &&
-                 (rStr.GetChar(nMaxPos-1) != ' ') )
+                 (rStr[nMaxPos-1] != ' ') )
                 break;
             nMaxPos--;
         }
 
         // if we are in front of a literal, continue search until first character after the literal
-        xub_StrLen nTempPos = nMaxPos;
+        sal_Int32 nTempPos = nMaxPos;
         while ( nTempPos < rEditMask.getLength() )
         {
             if ( rEditMask[nTempPos] != EDITMASK_LITERAL )
@@ -370,7 +370,7 @@ static void ImplPatternMaxPos( const XubString rStr, const rtl::OString& rEditMa
     if ( rPos > nMaxPos )
         rPos = nMaxPos;
 
-    // charactr should not move left
+    // character should not move left
     if ( rPos < nCursorPos )
         rPos = nCursorPos;
 }
@@ -378,21 +378,21 @@ static void ImplPatternMaxPos( const XubString rStr, const rtl::OString& rEditMa
 // -----------------------------------------------------------------------
 
 static void ImplPatternProcessStrictModify( Edit* pEdit,
-                                            const rtl::OString& rEditMask,
-                                            const XubString& rLiteralMask,
+                                            const OString& rEditMask,
+                                            const OUString& rLiteralMask,
                                             sal_uInt16 nFormatFlags, sal_Bool bSameMask )
 {
-    XubString aText = pEdit->GetText();
+    OUString aText = pEdit->GetText();
 
     // remove leading blanks
     if ( bSameMask && !(nFormatFlags & PATTERN_FORMAT_EMPTYLITERALS) )
     {
-        xub_StrLen i = 0;
-        xub_StrLen nMaxLen = aText.Len();
+        sal_Int32 i = 0;
+        sal_Int32 nMaxLen = aText.getLength();
         while ( i < nMaxLen )
         {
             if ( (rEditMask[i] != EDITMASK_LITERAL) &&
-                 (aText.GetChar( i ) != ' ') )
+                 (aText[i] != ' ') )
                 break;
 
             i++;
@@ -400,18 +400,18 @@ static void ImplPatternProcessStrictModify( Edit* pEdit,
         // keep all literal characters
         while ( i && (rEditMask[i] == EDITMASK_LITERAL) )
             i--;
-        aText.Erase( 0, i );
+        aText = aText.copy( i );
     }
 
-    XubString aNewText = ImplPatternReformat( aText, rEditMask, rLiteralMask, nFormatFlags );
+    OUString aNewText = ImplPatternReformat( aText, rEditMask, rLiteralMask, nFormatFlags );
     if ( aNewText != aText )
     {
         // adjust selection such that it remains at the end if it was there before
         Selection aSel = pEdit->GetSelection();
-        sal_uLong nMaxSel = Max( aSel.Min(), aSel.Max() );
-        if ( nMaxSel >= aText.Len() )
+        sal_Int64 nMaxSel = Max( aSel.Min(), aSel.Max() );
+        if ( nMaxSel >= aText.getLength() )
         {
-            xub_StrLen nMaxPos = aNewText.Len();
+            sal_Int32 nMaxPos = aNewText.getLength();
             ImplPatternMaxPos( aNewText, rEditMask, nFormatFlags, bSameMask, (xub_StrLen)nMaxSel, nMaxPos );
             if ( aSel.Min() == aSel.Max() )
             {
@@ -450,11 +450,11 @@ static xub_StrLen ImplPatternLeftPos(const rtl::OString& rEditMask, xub_StrLen n
 
 static xub_StrLen ImplPatternRightPos( const XubString& rStr, const rtl::OString& rEditMask,
                                        sal_uInt16 nFormatFlags, sal_Bool bSameMask,
-                                       xub_StrLen nCursorPos )
+                                       sal_Int32 nCursorPos )
 {
     // search non-literal successor
-    xub_StrLen nNewPos = nCursorPos;
-    xub_StrLen nTempPos = nNewPos;
+    sal_Int32 nNewPos = nCursorPos;
+    sal_Int32 nTempPos = nNewPos;
     while ( nTempPos < rEditMask.getLength() )
     {
         if ( rEditMask[nTempPos+1] != EDITMASK_LITERAL )
@@ -471,8 +471,8 @@ static xub_StrLen ImplPatternRightPos( const XubString& rStr, const rtl::OString
 // -----------------------------------------------------------------------
 
 static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
-                                        const rtl::OString& rEditMask,
-                                        const XubString& rLiteralMask,
+                                        const OString& rEditMask,
+                                        const OUString& rLiteralMask,
                                         sal_Bool bStrictFormat,
                                         sal_uInt16 nFormatFlags,
                                         sal_Bool bSameMask,
@@ -486,9 +486,9 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
     sal_Unicode cChar       = rKEvt.GetCharCode();
     sal_uInt16      nKeyCode    = aCode.GetCode();
     sal_Bool        bShift      = aCode.IsShift();
-    xub_StrLen  nCursorPos  = (xub_StrLen)aOldSel.Max();
-    xub_StrLen  nNewPos;
-    xub_StrLen  nTempPos;
+    sal_Int32  nCursorPos = static_cast<sal_Int32>(aOldSel.Max());
+    sal_Int32  nNewPos;
+    sal_Int32  nTempPos;
 
     if ( nKeyCode && !aCode.IsMod1() && !aCode.IsMod2() )
     {
@@ -543,7 +543,7 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
             // all was selected by the focus
             Selection aSel( aOldSel );
             aSel.Justify();
-            nCursorPos = (xub_StrLen)aSel.Min();
+            nCursorPos = static_cast<sal_Int32>(aSel.Min());
             ImplPatternMaxPos( pEdit->GetText(), rEditMask, nFormatFlags, bSameMask, nCursorPos, nNewPos );
             aSel.Max() = nNewPos;
             if ( bShift )
@@ -555,22 +555,23 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
         }
         else if ( (nKeyCode == KEY_BACKSPACE) || (nKeyCode == KEY_DELETE) )
         {
-            XubString   aStr( pEdit->GetText() );
-            XubString   aOldStr = aStr;
+            OUString          aOldStr( pEdit->GetText() );
+            OUStringBuffer    aStr( aOldStr );
             Selection   aSel = aOldSel;
 
             aSel.Justify();
-            nNewPos = (xub_StrLen)aSel.Min();
+            nNewPos = static_cast<sal_Int32>(aSel.Min());
 
              // if selection then delete it
             if ( aSel.Len() )
             {
                 if ( bSameMask )
-                    aStr.Erase( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
+                    aStr.remove( static_cast<sal_Int32>(aSel.Min()), static_cast<sal_Int32>(aSel.Len()) );
                 else
                 {
-                    XubString aRep = rLiteralMask.Copy( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
-                    aStr.Replace( (xub_StrLen)aSel.Min(), aRep.Len(), aRep );
+                    OUString aRep = rLiteralMask.copy( static_cast<sal_Int32>(aSel.Min()), static_cast<sal_Int32>(aSel.Len()) );
+                    aStr.remove( aSel.Min(), aRep.getLength() );
+                    aStr.insert( aSel.Min(), aRep );
                 }
             }
             else
@@ -581,29 +582,28 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
                     nNewPos = ImplPatternLeftPos( rEditMask, nTempPos );
                 }
                 else
-                    nTempPos = ImplPatternRightPos( aStr, rEditMask, nFormatFlags, bSameMask, nNewPos );
+                    nTempPos = ImplPatternRightPos( aStr.toString(), rEditMask, nFormatFlags, bSameMask, nNewPos );
 
                 if ( nNewPos != nTempPos )
                 {
                     if ( bSameMask )
                     {
                         if ( rEditMask[nNewPos] != EDITMASK_LITERAL )
-                            aStr.Erase( nNewPos, 1 );
+                            aStr.remove( nNewPos, 1 );
                     }
                     else
                     {
-                        XubString aTempStr = rLiteralMask.Copy( nNewPos, 1 );
-                        aStr.Replace( nNewPos, aTempStr.Len(), aTempStr );
+                        aStr[nNewPos] = rLiteralMask[nNewPos];
                     }
                 }
             }
 
-            if ( aOldStr != aStr )
+            if ( aOldStr != aStr.toString() )
             {
                 if ( bSameMask )
-                    aStr = ImplPatternReformat( aStr, rEditMask, rLiteralMask, nFormatFlags );
+                    aStr = ImplPatternReformat( aStr.toString(), rEditMask, rLiteralMask, nFormatFlags );
                 rbInKeyInput = sal_True;
-                pEdit->SetText( aStr, Selection( nNewPos ) );
+                pEdit->SetText( aStr.toString(), Selection( nNewPos ) );
                 pEdit->SetModifyFlag();
                 pEdit->Modify();
                 rbInKeyInput = sal_False;
@@ -653,7 +653,7 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
                     {
                         // only valid if no literal present
                         if ( (rEditMask[nTempPos+1] != EDITMASK_LITERAL ) &&
-                             ImplKommaPointCharEqual( cChar, rLiteralMask.GetChar(nTempPos) ) )
+                             ImplKommaPointCharEqual( cChar, rLiteralMask[nTempPos] ) )
                         {
                             nTempPos++;
                             ImplPatternMaxPos( pEdit->GetText(), rEditMask, nFormatFlags, bSameMask, nNewPos, nTempPos );
@@ -676,35 +676,35 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
         cChar = 0;
     if ( cChar )
     {
-        XubString   aStr = pEdit->GetText();
+        OUStringBuffer  aStr = pEdit->GetText();
         sal_Bool        bError = sal_False;
         if ( bSameMask && pEdit->IsInsertMode() )
         {
             // crop spaces and literals at the end until current position
-            xub_StrLen n = aStr.Len();
+            sal_Int32 n = aStr.getLength();
             while ( n && (n > nNewPos) )
             {
-                if ( (aStr.GetChar( n-1 ) != ' ') &&
+                if ( (aStr[n-1] != ' ') &&
                      ((n > rEditMask.getLength()) || (rEditMask[n-1] != EDITMASK_LITERAL)) )
                     break;
 
                 n--;
             }
-            aStr.Erase( n );
+            aStr.truncate( n );
 
             if ( aSel.Len() )
-                aStr.Erase( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
+                aStr.remove( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
 
-            if ( aStr.Len() < rEditMask.getLength() )
+            if ( aStr.getLength() < rEditMask.getLength() )
             {
                 // possibly extend string until cursor position
-                if ( aStr.Len() < nNewPos )
-                    aStr += rLiteralMask.Copy( aStr.Len(), nNewPos-aStr.Len() );
-                if ( nNewPos < aStr.Len() )
-                    aStr.Insert( cChar, nNewPos );
+                if ( aStr.getLength() < nNewPos )
+                    aStr.append( rLiteralMask.copy( aStr.getLength(), nNewPos-aStr.getLength() ));
+                if ( nNewPos < aStr.getLength() )
+                    aStr.insert( cChar, nNewPos );
                 else if ( nNewPos < rEditMask.getLength() )
-                    aStr += cChar;
-                aStr = ImplPatternReformat( aStr, rEditMask, rLiteralMask, nFormatFlags );
+                    aStr.append(cChar);
+                aStr = ImplPatternReformat( aStr.toString(), rEditMask, rLiteralMask, nFormatFlags );
             }
             else
                 bError = sal_True;
@@ -714,21 +714,22 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
             if ( aSel.Len() )
             {
                 // delete selection
-                XubString aRep = rLiteralMask.Copy( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
-                aStr.Replace( (xub_StrLen)aSel.Min(), aRep.Len(), aRep );
+                OUString aRep = rLiteralMask.copy( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
+                aStr.remove( aSel.Min(), aRep.getLength() );
+                aStr.insert( aSel.Min(), aRep );
             }
 
-            if ( nNewPos < aStr.Len() )
-                aStr.SetChar( nNewPos, cChar );
+            if ( nNewPos < aStr.getLength() )
+                aStr[nNewPos] = cChar;
             else if ( nNewPos < rEditMask.getLength() )
-                aStr += cChar;
+                aStr.append(cChar);
         }
 
         if ( !bError )
         {
             rbInKeyInput = sal_True;
-            Selection aNewSel( ImplPatternRightPos( aStr, rEditMask, nFormatFlags, bSameMask, nNewPos ) );
-            pEdit->SetText( aStr, aNewSel );
+            Selection aNewSel( ImplPatternRightPos( aStr.toString(), rEditMask, nFormatFlags, bSameMask, nNewPos ) );
+            pEdit->SetText( aStr.toString(), aNewSel );
             pEdit->SetModifyFlag();
             pEdit->Modify();
             rbInKeyInput = sal_False;
@@ -740,14 +741,13 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
 
 // -----------------------------------------------------------------------
 
-void PatternFormatter::ImplSetMask(const rtl::OString& rEditMask,
-                                    const XubString& rLiteralMask)
+void PatternFormatter::ImplSetMask(const OString& rEditMask, const OUString& rLiteralMask)
 {
-    m_aEditMask      = rEditMask;
+    m_aEditMask     = rEditMask;
     maLiteralMask   = rLiteralMask;
     mbSameMask      = sal_True;
 
-    if ( m_aEditMask.getLength() != maLiteralMask.Len() )
+    if ( m_aEditMask.getLength() != maLiteralMask.getLength() )
     {
         OUStringBuffer aBuf(maLiteralMask);
         if (m_aEditMask.getLength() < aBuf.getLength())
@@ -759,7 +759,7 @@ void PatternFormatter::ImplSetMask(const rtl::OString& rEditMask,
 
     // Strict mode allows only the input mode if only equal characters are allowed as mask and if
     // only spaces are specified which are not allowed by the mask
-    xub_StrLen  i = 0;
+    sal_Int32   i = 0;
     sal_Char    c = 0;
     while ( i < rEditMask.getLength() )
     {
@@ -773,9 +773,9 @@ void PatternFormatter::ImplSetMask(const rtl::OString& rEditMask,
                 mbSameMask = sal_False;
                 break;
             }
-            if ( i < rLiteralMask.Len() )
+            if ( i < rLiteralMask.getLength() )
             {
-                if ( rLiteralMask.GetChar( i ) != ' ' )
+                if ( rLiteralMask[i] != ' ' )
                 {
                     mbSameMask = sal_False;
                     break;
@@ -810,8 +810,8 @@ PatternFormatter::~PatternFormatter()
 
 // -----------------------------------------------------------------------
 
-void PatternFormatter::SetMask( const rtl::OString& rEditMask,
-                                const XubString& rLiteralMask )
+void PatternFormatter::SetMask( const OString& rEditMask,
+                                const OUString& rLiteralMask )
 {
     ImplSetMask( rEditMask, rLiteralMask );
     ReformatAll();
@@ -819,7 +819,7 @@ void PatternFormatter::SetMask( const rtl::OString& rEditMask,
 
 // -----------------------------------------------------------------------
 
-void PatternFormatter::SetString( const XubString& rStr )
+void PatternFormatter::SetString( const OUString& rStr )
 {
     maFieldString = rStr;
     if ( GetField() )
@@ -831,7 +831,7 @@ void PatternFormatter::SetString( const XubString& rStr )
 
 // -----------------------------------------------------------------------
 
-XubString PatternFormatter::GetString() const
+OUString PatternFormatter::GetString() const
 {
     if ( !GetField() )
         return ImplGetSVEmptyStr();
@@ -975,7 +975,7 @@ void PatternBox::Modify()
 
 void PatternBox::ReformatAll()
 {
-    XubString aStr;
+    OUString aStr;
     SetUpdateMode( sal_False );
     sal_uInt16 nEntryCount = GetEntryCount();
     for ( sal_uInt16 i=0; i < nEntryCount; i++ )
@@ -1002,38 +1002,33 @@ static ExtDateFieldFormat ImplGetExtFormat( DateFormat eOld )
 
 // -----------------------------------------------------------------------
 
-static sal_uInt16 ImplCutNumberFromString( XubString& rStr )
+static sal_uInt16 ImplCutNumberFromString( OUString& rStr )
 {
-    // Nach Zahl suchen
-    while ( rStr.Len() && !(rStr.GetChar( 0 ) >= '0' && rStr.GetChar( 0 ) <= '9') )
-        rStr.Erase( 0, 1 );
-    if ( !rStr.Len() )
-        return 0;
-    XubString aNumStr;
-    while ( rStr.Len() && (rStr.GetChar( 0 ) >= '0' && rStr.GetChar( 0 ) <= '9') )
-    {
-        aNumStr.Insert( rStr.GetChar( 0 ) );
-        rStr.Erase( 0, 1 );
+    sal_Int32 i1 = 0;
+    while (i1 != rStr.getLength() && !(rStr[i1] >= '0' && rStr[i1] <= '9')) {
+        ++i1;
+    }
+    sal_Int32 i2 = i1;
+    while (i2 != rStr.getLength() && rStr[i2] >= '0' && rStr[i2] <= '9') {
+        ++i2;
     }
-    return (sal_uInt16)aNumStr.ToInt32();
+    sal_Int32 nValue = rStr.copy(i1, i2-i1).toInt32();
+    rStr = rStr.copy(i2+1);
+    return nValue;
 }
 
 // -----------------------------------------------------------------------
 
-static sal_Bool ImplCutMonthName( XubString& rStr, const XubString& _rLookupMonthName )
+static sal_Bool ImplCutMonthName( OUString& rStr, const OUString& _rLookupMonthName )
 {
-    sal_uInt16 nPos = rStr.Search( _rLookupMonthName );
-    if ( nPos != STRING_NOTFOUND )
-    {
-        rStr.Erase( 0, nPos + _rLookupMonthName.Len() );
-        return sal_True;
-    }
-    return sal_False;
+    sal_Int32 index = 0;
+    rStr = rStr.replaceFirst(_rLookupMonthName, OUString(), &index);
+    return index >= 0;
 }
 
 // -----------------------------------------------------------------------
 
-static sal_uInt16 ImplCutMonthFromString( XubString& rStr, const CalendarWrapper& rCalendarWrapper )
+static sal_uInt16 ImplCutMonthFromString( OUString& rStr, const CalendarWrapper& rCalendarWrapper )
 {
     // search for a month' name
     for ( sal_uInt16 i=1; i <= 12; i++ )
@@ -1054,10 +1049,10 @@ static sal_uInt16 ImplCutMonthFromString( XubString& rStr, const CalendarWrapper
 
 // -----------------------------------------------------------------------
 
-static String ImplGetDateSep( const LocaleDataWrapper& rLocaleDataWrapper, ExtDateFieldFormat eFormat )
+static OUString ImplGetDateSep( const LocaleDataWrapper& rLocaleDataWrapper, ExtDateFieldFormat eFormat )
 {
     if ( ( eFormat == XTDATEF_SHORT_YYMMDD_DIN5008 ) || ( eFormat == XTDATEF_SHORT_YYYYMMDD_DIN5008 ) )
-        return rtl::OUString("-");
+        return OUString("-");
     else
         return rLocaleDataWrapper.getDateSep();
 }
@@ -1070,7 +1065,7 @@ static sal_Bool ImplDateProcessKeyInput( Edit*, const KeyEvent& rKEvt, ExtDateFi
     if ( (nGroup == KEYGROUP_FKEYS) || (nGroup == KEYGROUP_CURSOR) ||
          (nGroup == KEYGROUP_MISC)||
          ((cChar >= '0') && (cChar <= '9')) ||
-         (cChar == ImplGetDateSep( rLocaleDataWrapper, eFormat ).GetChar(0) ) )
+         (cChar == ImplGetDateSep( rLocaleDataWrapper, eFormat )[0]) )
         return sal_False;
     else
         return sal_True;
@@ -1078,7 +1073,7 @@ static sal_Bool ImplDateProcessKeyInput( Edit*, const KeyEvent& rKEvt, ExtDateFi
 
 // -----------------------------------------------------------------------
 
-static sal_Bool ImplDateGetValue( const XubString& rStr, Date& rDate, ExtDateFieldFormat eDateFormat,
+static sal_Bool ImplDateGetValue( const OUString& rStr, Date& rDate, ExtDateFieldFormat eDateFormat,
                               const LocaleDataWrapper& rLocaleDataWrapper, const CalendarWrapper& rCalendarWrapper,
                               const AllSettings& )
 {
@@ -1087,7 +1082,7 @@ static sal_Bool ImplDateGetValue( const XubString& rStr, Date& rDate, ExtDateFie
     sal_uInt16 nYear = 0;
     sal_Bool bYear = sal_True;
     sal_Bool bError = sal_False;
-    String aStr( rStr );
+    OUString aStr( rStr );
 
     if ( eDateFormat == XTDATEF_SYSTEM_LONG )
     {
@@ -1115,18 +1110,18 @@ static sal_Bool ImplDateGetValue( const XubString& rStr, Date& rDate, ExtDateFie
     else
     {
         // Check if year is present:
-        String aDateSep = ImplGetDateSep( rLocaleDataWrapper, eDateFormat );
-        sal_uInt16 nSepPos = aStr.Search( aDateSep );
-        if ( nSepPos == STRING_NOTFOUND )
+        OUString aDateSep = ImplGetDateSep( rLocaleDataWrapper, eDateFormat );
+        sal_Int32 nSepPos = aStr.indexOf( aDateSep );
+        if ( nSepPos < 0 )
             return sal_False;
-        nSepPos = aStr.Search( aDateSep, nSepPos+1 );
-        if ( ( nSepPos == STRING_NOTFOUND ) || ( nSepPos == (aStr.Len()-1) ) )
+        nSepPos = aStr.indexOf( aDateSep, nSepPos+1 );
+        if ( ( nSepPos < 0 ) || ( nSepPos == (aStr.getLength()-1) ) )
         {
             bYear = sal_False;
             nYear = Date( Date::SYSTEM ).GetYear();
         }
 
-        const sal_Unicode* pBuf = aStr.GetBuffer();
+        const sal_Unicode* pBuf = aStr.getStr();
         ImplSkipDelimiters( pBuf );
 
         switch ( eDateFormat )
@@ -1256,7 +1251,7 @@ OUString DateFormatter::ImplGetDateAsText( const Date& rDate,
     sal_Unicode aBuf[128];
     sal_Unicode* pBuf = aBuf;
 
-    String aDateSep = ImplGetDateSep( ImplGetLocaleDataWrapper(), GetExtDateFormat( sal_True ) );
+    OUString aDateSep = ImplGetDateSep( ImplGetLocaleDataWrapper(), GetExtDateFormat( sal_True ) );
     sal_uInt16 nDay = rDate.GetDay();
     sal_uInt16 nMonth = rDate.GetMonth();
     sal_uInt16 nYear = rDate.GetYear();
@@ -1405,12 +1400,12 @@ void DateField::ImplDateSpinArea( sal_Bool bUp )
         Date aDate( GetDate() );
         Selection aSelection = GetField()->GetSelection();
         aSelection.Justify();
-        XubString aText( GetText() );
-        if ( (xub_StrLen)aSelection.Len() == aText.Len() )
+        OUString aText( GetText() );
+        if ( (sal_Int32)aSelection.Len() == aText.getLength() )
             ImplDateIncrementDay( aDate, bUp );
         else
         {
-            xub_StrLen nDateArea = 0;
+            sal_Int8 nDateArea = 0;
 
             ExtDateFieldFormat eFormat = GetExtDateFormat( sal_True );
             if ( eFormat == XTDATEF_SYSTEM_LONG )
@@ -1421,12 +1416,12 @@ void DateField::ImplDateSpinArea( sal_Bool bUp )
             else
             {
                 // search area
-                xub_StrLen nPos = 0;
-                String aDateSep = ImplGetDateSep( ImplGetLocaleDataWrapper(), eFormat );
-                for ( xub_StrLen i = 1; i <= 3; i++ )
+                sal_Int32 nPos = 0;
+                OUString aDateSep = ImplGetDateSep( ImplGetLocaleDataWrapper(), eFormat );
+                for ( sal_Int8 i = 1; i <= 3; i++ )
                 {
-                    nPos = aText.Search( aDateSep, nPos );
-                    if ( nPos >= (sal_uInt16)aSelection.Max() )
+                    nPos = aText.indexOf( aDateSep, nPos );
+                    if ( nPos >= (sal_Int32)aSelection.Max() )
                     {
                         nDateArea = i;
                         break;
@@ -2185,10 +2180,10 @@ static sal_Bool ImplTimeProcessKeyInput( Edit*, const KeyEvent& rKEvt,
 
 // -----------------------------------------------------------------------
 
-static sal_Bool ImplIsOnlyDigits( const String& _rStr )
+static sal_Bool ImplIsOnlyDigits( const OUStringBuffer& _rStr )
 {
-    const sal_Unicode* _pChr = _rStr.GetBuffer();
-    for ( xub_StrLen i = 0; i < _rStr.Len(); ++i, ++_pChr )
+    const sal_Unicode* _pChr = _rStr.getStr();
+    for ( sal_Int32 i = 0; i < _rStr.getLength(); ++i, ++_pChr )
     {
         if ( *_pChr < '0' || *_pChr > '9' )
             return sal_False;
@@ -2198,11 +2193,11 @@ static sal_Bool ImplIsOnlyDigits( const String& _rStr )
 
 // -----------------------------------------------------------------------
 
-static sal_Bool ImplIsValidTimePortion( sal_Bool _bSkipInvalidCharacters, const String& _rStr )
+static sal_Bool ImplIsValidTimePortion( sal_Bool _bSkipInvalidCharacters, const OUStringBuffer& _rStr )
 {
     if ( !_bSkipInvalidCharacters )
     {
-        if ( ( _rStr.Len() > 2 ) || ( _rStr.Len() < 1 ) || !ImplIsOnlyDigits( _rStr ) )
+        if ( ( _rStr.getLength() > 2 ) || ( _rStr.getLength() < 1 ) || !ImplIsOnlyDigits( _rStr ) )
             return sal_False;
     }
     return sal_True;
@@ -2210,31 +2205,31 @@ static sal_Bool ImplIsValidTimePortion( sal_Bool _bSkipInvalidCharacters, const
 
 // -----------------------------------------------------------------------
 
-static sal_Bool ImplCutTimePortion( String& _rStr, xub_StrLen _nSepPos, sal_Bool _bSkipInvalidCharacters, short* _pPortion )
+static sal_Bool ImplCutTimePortion( OUStringBuffer& _rStr, xub_StrLen _nSepPos, sal_Bool _bSkipInvalidCharacters, short* _pPortion )
 {
-    String sPortion = _rStr.Copy( 0, _nSepPos );
-    _rStr.Erase( 0, _nSepPos + 1 );
+    OUString sPortion(_rStr.getStr(), _nSepPos );
+    _rStr = _rStr.copy( _nSepPos + 1 );
 
     if ( !ImplIsValidTimePortion( _bSkipInvalidCharacters, sPortion ) )
         return sal_False;
-    *_pPortion = (short)sPortion.ToInt32();
+    *_pPortion = (short)sPortion.toInt32();
     return sal_True;
 }
 
 // -----------------------------------------------------------------------
 
-static sal_Bool ImplTimeGetValue( const XubString& rStr, Time& rTime,
+static sal_Bool ImplTimeGetValue( const OUString& rStr, Time& rTime,
                               TimeFieldFormat eFormat, sal_Bool bDuration,
                               const LocaleDataWrapper& rLocaleDataWrapper, sal_Bool _bSkipInvalidCharacters = sal_True )
 {
-    XubString   aStr    = rStr;
+    OUStringBuffer    aStr    = rStr;
     short       nHour   = 0;
     short       nMinute = 0;
     short       nSecond = 0;
     short       n100Sec = 0;
     Time        aTime( 0, 0, 0 );
 
-    if ( !rStr.Len() )
+    if ( rStr.isEmpty() )
         return sal_False;
 
     // Search for separators
@@ -2249,53 +2244,53 @@ static sal_Bool ImplTimeGetValue( const XubString& rStr, Time& rTime,
         {
             if (string::equals(rLocaleDataWrapper.getTimeSep(), aSepStr[i]))
                 continue;
-            for ( xub_StrLen j = 0; j < aStr.Len(); j++ )
+            for ( sal_Int32 j = 0; j < aStr.getLength(); j++ )
             {
-                if (aStr.GetChar( j ) == aSepStr[i])
-                    aStr.SetChar( j, rLocaleDataWrapper.getTimeSep()[0] );
+                if (aStr[j] == aSepStr[i])
+                    aStr[j] = rLocaleDataWrapper.getTimeSep()[0];
             }
         }
     }
 
     sal_Bool bNegative = sal_False;
-    xub_StrLen nSepPos = aStr.Search( rLocaleDataWrapper.getTimeSep() );
-    if ( aStr.GetChar( 0 ) == '-' )
+    sal_Int32 nSepPos = aStr.indexOf( rLocaleDataWrapper.getTimeSep() );
+    if ( aStr[0] == '-' )
         bNegative = sal_True;
     if ( eFormat != TIMEF_SEC_CS )
     {
-        if ( nSepPos == STRING_NOTFOUND )
-            nSepPos = aStr.Len();
+        if ( nSepPos < 0 )
+            nSepPos = aStr.getLength();
         if ( !ImplCutTimePortion( aStr, nSepPos, _bSkipInvalidCharacters, &nHour ) )
             return sal_False;
 
-        nSepPos = aStr.Search( rLocaleDataWrapper.getTimeSep() );
-        if ( aStr.GetChar( 0 ) == '-' )
+        nSepPos = aStr.indexOf( rLocaleDataWrapper.getTimeSep() );
+        if ( aStr[0] == '-' )
             bNegative = sal_True;
-        if ( nSepPos != STRING_NOTFOUND )
+        if ( nSepPos >= 0 )
         {
             if ( !ImplCutTimePortion( aStr, nSepPos, _bSkipInvalidCharacters, &nMinute ) )
                 return sal_False;
 
-            nSepPos = aStr.Search( rLocaleDataWrapper.getTimeSep() );
-            if ( aStr.GetChar( 0 ) == '-' )
+            nSepPos = aStr.indexOf( rLocaleDataWrapper.getTimeSep() );
+            if ( aStr[0] == '-' )
                 bNegative = sal_True;
-            if ( nSepPos != STRING_NOTFOUND )
+            if ( nSepPos >= 0 )
             {
                 if ( !ImplCutTimePortion( aStr, nSepPos, _bSkipInvalidCharacters, &nSecond ) )
                     return sal_False;
-                if ( aStr.GetChar( 0 ) == '-' )
+                if ( aStr[0] == '-' )
                     bNegative = sal_True;
-                n100Sec = (short)aStr.ToInt32();
+                n100Sec = (short)aStr.toString().toInt32();
             }
             else
-                nSecond = (short)aStr.ToInt32();
+                nSecond = (short)aStr.toString().toInt32();
         }
         else
-            nMinute = (short)aStr.ToInt32();
+            nMinute = (short)aStr.toString().toInt32();
     }
-    else if ( nSepPos == STRING_NOTFOUND )
+    else if ( nSepPos < 0 )
     {
-        nSecond = (short)aStr.ToInt32();
+        nSecond = (short)aStr.toString().toInt32();
         nMinute += nSecond / 60;
         nSecond %= 60;
         nHour += nMinute / 60;
@@ -2303,27 +2298,27 @@ static sal_Bool ImplTimeGetValue( const XubString& rStr, Time& rTime,
     }
     else
     {
-        nSecond = (short)aStr.Copy( 0, nSepPos ).ToInt32();
-        aStr.Erase( 0, nSepPos+1 );
+        nSecond = (short)aStr.copy( 0, nSepPos ).toString().toInt32();
+        aStr.remove( 0, nSepPos+1 );
 
-        nSepPos = aStr.Search( rLocaleDataWrapper.getTimeSep() );
-        if ( aStr.GetChar( 0 ) == '-' )
+        nSepPos = aStr.indexOf( rLocaleDataWrapper.getTimeSep() );
+        if ( aStr[0] == '-' )
             bNegative = sal_True;
-        if ( nSepPos != STRING_NOTFOUND )
+        if ( nSepPos >= 0 )
         {
             nMinute = nSecond;
-            nSecond = (short)aStr.Copy( 0, nSepPos ).ToInt32();
-            aStr.Erase( 0, nSepPos+1 );
+            nSecond = (short)aStr.copy( 0, nSepPos ).toString().toInt32();
+            aStr.remove( 0, nSepPos+1 );
 
-            nSepPos = aStr.Search( rLocaleDataWrapper.getTimeSep() );
-            if ( aStr.GetChar( 0 ) == '-' )
+            nSepPos = aStr.indexOf( rLocaleDataWrapper.getTimeSep() );
+            if ( aStr[0] == '-' )
                 bNegative = sal_True;
-            if ( nSepPos != STRING_NOTFOUND )
+            if ( nSepPos >= 0 )
             {
                 nHour   = nMinute;
                 nMinute = nSecond;
-                nSecond = (short)aStr.Copy( 0, nSepPos ).ToInt32();
-                aStr.Erase( 0, nSepPos+1 );
+                nSecond = (short)aStr.copy( 0, nSepPos ).toString().toInt32();
+                aStr.remove( 0, nSepPos+1 );
             }
             else
             {
@@ -2338,13 +2333,13 @@ static sal_Bool ImplTimeGetValue( const XubString& rStr, Time& rTime,
             nHour += nMinute / 60;
             nMinute %= 60;
         }
-        n100Sec = (short)aStr.ToInt32();
+        n100Sec = (short)aStr.toString().toInt32();
 
         if ( n100Sec )
         {
             xub_StrLen nLen = 1; // at least one digit, otherwise n100Sec==0
 
-            while ( aStr.GetChar(nLen) >= '0' && aStr.GetChar(nLen) <= '9' )
+            while ( aStr[nLen] >= '0' && aStr[nLen] <= '9' )
                 nLen++;
 
             if ( nLen > 2 )
@@ -2357,13 +2352,9 @@ static sal_Bool ImplTimeGetValue( const XubString& rStr, Time& rTime,
                 // round if negative?
                 n100Sec = (n100Sec + 5) / 10;
             }
-            else
+            else if ( nLen == 1 )
             {
-                while( nLen < 2 )
-                {
-                    n100Sec = n100Sec * 10;
-                    nLen++;
-                }
+                n100Sec = n100Sec * 10;
             }
         }
     }
@@ -2382,16 +2373,16 @@ static sal_Bool ImplTimeGetValue( const XubString& rStr, Time& rTime,
              (nSecond < 0) || (n100Sec < 0) )
             return sal_False;
 
-        aStr.ToUpperAscii();
+        OUString aUpperCaseStr = aStr.toString().toAsciiUpperCase();
         OUString aAM(rLocaleDataWrapper.getTimeAM().toAsciiUpperCase());
         OUString aPM(rLocaleDataWrapper.getTimePM().toAsciiUpperCase());
         OUString aAM2("AM");  // aAM is localized
         OUString aPM2("PM");  // aPM is localized
 
-        if ( (nHour < 12) && ( ( aStr.Search( aPM ) != STRING_NOTFOUND ) || ( aStr.Search( aPM2 ) != STRING_NOTFOUND ) ) )
+        if ( (nHour < 12) && ( ( aUpperCaseStr.indexOf( aPM ) >= 0 ) || ( aUpperCaseStr.indexOf( aPM2 ) >= 0 ) ) )
             nHour += 12;
 
-        if ( (nHour == 12) && ( ( aStr.Search( aAM ) != STRING_NOTFOUND ) || ( aStr.Search( aAM2 ) != STRING_NOTFOUND ) ) )
+        if ( (nHour == 12) && ( ( aUpperCaseStr.indexOf( aAM ) >= 0 ) || ( aUpperCaseStr.indexOf( aAM2 ) >= 0 ) ) )
             nHour = 0;
 
         aTime = Time( (sal_uInt16)nHour, (sal_uInt16)nMinute, (sal_uInt16)nSecond,
@@ -2502,7 +2493,7 @@ void TimeField::ImplTimeSpinArea( sal_Bool bUp )
     {
         xub_StrLen nTimeArea = 0;
         Time aTime( GetTime() );
-        XubString aText( GetText() );
+        OUString aText( GetText() );
         Selection aSelection( GetField()->GetSelection() );
 
         // Area suchen
@@ -2510,8 +2501,8 @@ void TimeField::ImplTimeSpinArea( sal_Bool bUp )
         {
             for ( xub_StrLen i = 1, nPos = 0; i <= 4; i++ )
             {
-                xub_StrLen nPos1 = aText.Search( ImplGetLocaleDataWrapper().getTimeSep(), nPos );
-                xub_StrLen nPos2 = aText.Search( ImplGetLocaleDataWrapper().getTime100SecSep(), nPos );
+                sal_Int32 nPos1 = aText.indexOf( ImplGetLocaleDataWrapper().getTimeSep(), nPos );
+                sal_Int32 nPos2 = aText.indexOf( ImplGetLocaleDataWrapper().getTime100SecSep(), nPos );
                 nPos = nPos1 < nPos2 ? nPos1 : nPos2;
                 if ( nPos >= (xub_StrLen)aSelection.Max() )
                 {
@@ -2524,8 +2515,8 @@ void TimeField::ImplTimeSpinArea( sal_Bool bUp )
         }
         else
         {
-            xub_StrLen nPos = aText.Search( ImplGetLocaleDataWrapper().getTime100SecSep() );
-            if ( nPos == STRING_NOTFOUND || nPos >= (xub_StrLen)aSelection.Max() )
+            sal_Int32 nPos = aText.indexOf( ImplGetLocaleDataWrapper().getTime100SecSep() );
+            if ( nPos < 0 || nPos >= (xub_StrLen)aSelection.Max() )
                 nTimeArea = 3;
             else
                 nTimeArea = 4;
@@ -2742,7 +2733,7 @@ void TimeFormatter::ImplSetUserTime( const Time& rNewTime, Selection* pNewSelect
 
     if ( GetField() )
     {
-        XubString aStr;
+        OUString aStr;
         sal_Bool bSec    = sal_False;
         sal_Bool b100Sec = sal_False;
         if ( meFormat != TIMEF_NONE )


More information about the Libreoffice-commits mailing list