Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/2574

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/74/2574/1

Replaced XubString with OUString in vcl(combobox)

Change-Id: Ibe80e9837f1c8275d625e942eb75ecc8de897bf5
---
M vcl/inc/vcl/combobox.hxx
M vcl/source/control/combobox.cxx
2 files changed, 47 insertions(+), 46 deletions(-)



diff --git a/vcl/inc/vcl/combobox.hxx b/vcl/inc/vcl/combobox.hxx
index 9758281..22ee570 100644
--- a/vcl/inc/vcl/combobox.hxx
+++ b/vcl/inc/vcl/combobox.hxx
@@ -120,28 +120,28 @@
     sal_uInt16      GetDropDownLineCount() const;
 
     void            EnableAutoSize( sal_Bool bAuto );
-    sal_Bool            IsAutoSizeEnabled() const               { return mbDDAutoSize; }
+    sal_Bool        IsAutoSizeEnabled() const               { return mbDDAutoSize; }
 
     void            EnableDDAutoWidth( sal_Bool b );
 
     virtual void    SetText( const OUString& rStr );
     virtual void    SetText( const OUString& rStr, const Selection& rNewSelection );
 
-    sal_uInt16          InsertEntry( const XubString& rStr, sal_uInt16 nPos = COMBOBOX_APPEND );
-    sal_uInt16          InsertEntry( const XubString& rStr, const Image& rImage, sal_uInt16 nPos = 
COMBOBOX_APPEND );
+    sal_uInt16      InsertEntry( const OUString& rStr, sal_uInt16 nPos = COMBOBOX_APPEND );
+    sal_uInt16      InsertEntry( const OUString& rStr, const Image& rImage, sal_uInt16 nPos = 
COMBOBOX_APPEND );
 
-    void            RemoveEntry( const XubString& rStr );
+    void            RemoveEntry( const OUString& rStr );
     void            RemoveEntry( sal_uInt16 nPos );
 
     void            Clear();
 
-    sal_uInt16          GetEntryPos( const XubString& rStr ) const;
+    sal_uInt16      GetEntryPos( const OUString& rStr ) const;
     Image           GetEntryImage( sal_uInt16 nPos ) const;
-    XubString       GetEntry( sal_uInt16 nPos ) const;
-    sal_uInt16          GetEntryCount() const;
+    OUString        GetEntry( sal_uInt16 nPos ) const;
+    sal_uInt16      GetEntryCount() const;
 
-    sal_Bool            IsTravelSelect() const;
-    sal_Bool            IsInDropDown() const;
+    sal_Bool        IsTravelSelect() const;
+    sal_Bool        IsInDropDown() const;
     void            ToggleDropDown();
 
     long            CalcWindowSizePixel( sal_uInt16 nLines ) const;
@@ -155,10 +155,10 @@
     void            SetSeparatorPos( sal_uInt16 n = LISTBOX_ENTRY_NOTFOUND );
 
     void            EnableAutocomplete( sal_Bool bEnable, sal_Bool bMatchCase = sal_False );
-    sal_Bool            IsAutocompleteEnabled() const;
+    sal_Bool        IsAutocompleteEnabled() const;
 
     void            EnableMultiSelection( sal_Bool bMulti );
-    sal_Bool            IsMultiSelectionEnabled() const;
+    sal_Bool        IsMultiSelectionEnabled() const;
     void            SetMultiSelectionSeparator( sal_Unicode cSep ) { mcMultiSep = cSep; }
     sal_Unicode     GetMultiSelectionSeparator() const { return mcMultiSep; }
 
@@ -174,8 +174,8 @@
     Size            CalcSize( sal_uInt16 nColumns, sal_uInt16 nLines ) const;
     void            GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& rnLines ) const;
 
-    void            SetMRUEntries( const XubString& rEntries, sal_Unicode cSep = ';' );
-    XubString       GetMRUEntries( sal_Unicode cSep = ';' ) const;
+    void            SetMRUEntries( const OUString& rEntries, sal_Unicode cSep = ';' );
+    OUString        GetMRUEntries( sal_Unicode cSep = ';' ) const;
     void            SetMaxMRUCount( sal_uInt16 n );
     sal_uInt16          GetMaxMRUCount() const;
 
diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx
index 8356a52..d021af6 100644
--- a/vcl/source/control/combobox.cxx
+++ b/vcl/source/control/combobox.cxx
@@ -34,11 +34,11 @@
 
 // =======================================================================
 
-static void lcl_GetSelectedEntries( ::std::set< sal_uInt16 >& rSelectedPos, const XubString& 
rText, sal_Unicode cTokenSep, const ImplEntryList* pEntryList )
+static void lcl_GetSelectedEntries( ::std::set< sal_uInt16 >& rSelectedPos, const OUString& rText, 
sal_Unicode cTokenSep, const ImplEntryList* pEntryList )
 {
-    for (xub_StrLen n = comphelper::string::getTokenCount(rText, cTokenSep); n;)
+    for (sal_Int32 n = comphelper::string::getTokenCount(rText, cTokenSep); n;)
     {
-        XubString aToken = rText.GetToken( --n, cTokenSep );
+        OUString aToken = rText.getToken( --n, cTokenSep );
         aToken = comphelper::string::strip(aToken, ' ');
         sal_uInt16 nPos = pEntryList->FindEntry( aToken );
         if ( nPos != LISTBOX_ENTRY_NOTFOUND )
@@ -324,8 +324,8 @@
     if ( aSel.Len() ||
          ((eAction != AUTOCOMPLETE_TABFORWARD) && (eAction != AUTOCOMPLETE_TABBACKWARD)) )
     {
-        XubString   aFullText = pEdit->GetText();
-        XubString   aStartText = aFullText.Copy( 0, (xub_StrLen)aSel.Max() );
+        OUString    aFullText = pEdit->GetText();
+        OUString    aStartText = aFullText.copy( 0, (sal_Int32)aSel.Max() );
         sal_uInt16      nStart = mpImplLB->GetCurrentPos();
 
         if ( nStart == LISTBOX_ENTRY_NOTFOUND )
@@ -359,8 +359,8 @@
 
         if ( nPos != LISTBOX_ENTRY_NOTFOUND )
         {
-            XubString aText = mpImplLB->GetEntryList()->GetEntryText( nPos );
-            Selection aSelection( aText.Len(), aStartText.Len() );
+            OUString aText = mpImplLB->GetEntryList()->GetEntryText( nPos );
+            Selection aSelection( aText.getLength(), aStartText.getLength() );
             pEdit->SetText( aText, aSelection );
         }
     }
@@ -376,34 +376,36 @@
     sal_Bool bCallSelect = sal_False;
     if ( mpImplLB->IsSelectionChanged() || bPopup )
     {
-        XubString aText;
+        OUString aText;
         if ( IsMultiSelectionEnabled() )
         {
             aText = mpSubEdit->GetText();
 
             // Alle Eintraege entfernen, zu denen es einen Entry gibt, der aber nicht selektiert 
ist.
-            xub_StrLen nIndex = 0;
-            while ( nIndex != STRING_NOTFOUND )
+            sal_Int32 nIndex = 0;
+            while ( nIndex >= 0 )
             {
-                xub_StrLen  nPrevIndex = nIndex;
-                XubString   aToken = aText.GetToken( 0, mcMultiSep, nIndex );
-                xub_StrLen  nTokenLen = aToken.Len();
+                sal_Int32  nPrevIndex = nIndex;
+                OUString   aToken = aText.getToken( 0, mcMultiSep, nIndex );
+                sal_Int32  nTokenLen = aToken.getLength();
                 aToken = comphelper::string::strip(aToken, ' ');
                 sal_uInt16      nP = mpImplLB->GetEntryList()->FindEntry( aToken );
                 if ( (nP != LISTBOX_ENTRY_NOTFOUND) && 
(!mpImplLB->GetEntryList()->IsEntryPosSelected( nP )) )
                 {
-                    aText.Erase( nPrevIndex, nTokenLen );
+                    aText = aText.replaceAt( nPrevIndex, nTokenLen, "" );
                     nIndex = sal::static_int_cast<xub_StrLen>(nIndex - nTokenLen);
-                    if ( (nPrevIndex < aText.Len()) && (aText.GetChar( nPrevIndex ) == mcMultiSep) 
)
+                    sal_Int32 nSepCount=0;
+                    if ( (nPrevIndex+nSepCount < aText.getLength()) && 
(aText[nPrevIndex+nSepCount] == mcMultiSep) )
                     {
-                        aText.Erase( nPrevIndex, 1 );
                         nIndex--;
+                        ++nSepCount;
                     }
+                    aText.replaceAt( nPrevIndex, nSepCount, "" );
                 }
                 aText = comphelper::string::strip(aText, ' ');
             }
 
-            // Fehlende Eintraege anhaengen...
+            // append missing entries
             ::std::set< sal_uInt16 > aSelInText;
             lcl_GetSelectedEntries( aSelInText, aText, mcMultiSep, mpImplLB->GetEntryList() );
             sal_uInt16 nSelectedEntries = mpImplLB->GetEntryList()->GetSelectEntryCount();
@@ -412,16 +414,15 @@
                 sal_uInt16 nP = mpImplLB->GetEntryList()->GetSelectEntryPos( n );
                 if ( !aSelInText.count( nP ) )
                 {
-                    if ( aText.Len() && (aText.GetChar( aText.Len()-1 ) != mcMultiSep) )
-                        aText += mcMultiSep;
-                    if ( aText.Len() )
-                        aText += ' ';   // etwas auflockern
+                    if ( !aText.isEmpty() && (aText[ aText.getLength()-1 ] != mcMultiSep) )
+                        aText += OUString(mcMultiSep);
+                    if ( !aText.isEmpty() )
+                        aText += " ";   // etwas auflockern
                     aText += mpImplLB->GetEntryList()->GetEntryText( nP );
-                    aText += mcMultiSep;
+                    aText += OUString(mcMultiSep);
                 }
             }
-            if ( aText.Len() && (aText.GetChar( aText.Len()-1 ) == mcMultiSep) )
-                aText.Erase( aText.Len()-1, 1 );
+            aText = comphelper::string::stripEnd( aText, mcMultiSep );
         }
         else
         {
@@ -430,9 +431,9 @@
 
         mpSubEdit->SetText( aText );
 
-        Selection aNewSelection( 0, aText.Len() );
+        Selection aNewSelection( 0, aText.getLength() );
         if ( IsMultiSelectionEnabled() )
-            aNewSelection.Min() = aText.Len();
+            aNewSelection.Min() = aText.getLength();
         mpSubEdit->SetSelection( aNewSelection );
 
         bCallSelect = sal_True;
@@ -906,7 +907,7 @@
 
 // -----------------------------------------------------------------------
 
-sal_uInt16 ComboBox::InsertEntry( const XubString& rStr, sal_uInt16 nPos )
+sal_uInt16 ComboBox::InsertEntry( const OUString& rStr, sal_uInt16 nPos )
 {
     sal_uInt16 nRealPos = mpImplLB->InsertEntry( nPos + mpImplLB->GetEntryList()->GetMRUCount(), 
rStr );
     nRealPos = sal::static_int_cast<sal_uInt16>(nRealPos - 
mpImplLB->GetEntryList()->GetMRUCount());
@@ -916,7 +917,7 @@
 
 // -----------------------------------------------------------------------
 
-sal_uInt16 ComboBox::InsertEntry( const XubString& rStr, const Image& rImage, sal_uInt16 nPos )
+sal_uInt16 ComboBox::InsertEntry( const OUString& rStr, const Image& rImage, sal_uInt16 nPos )
 {
     sal_uInt16 nRealPos = mpImplLB->InsertEntry( nPos + mpImplLB->GetEntryList()->GetMRUCount(), 
rStr, rImage );
     nRealPos = sal::static_int_cast<sal_uInt16>(nRealPos - 
mpImplLB->GetEntryList()->GetMRUCount());
@@ -926,7 +927,7 @@
 
 // -----------------------------------------------------------------------
 
-void ComboBox::RemoveEntry( const XubString& rStr )
+void ComboBox::RemoveEntry( const OUString& rStr )
 {
     RemoveEntry( GetEntryPos( rStr ) );
 }
@@ -957,7 +958,7 @@
 
 // -----------------------------------------------------------------------
 
-sal_uInt16 ComboBox::GetEntryPos( const XubString& rStr ) const
+sal_uInt16 ComboBox::GetEntryPos( const OUString& rStr ) const
 {
     sal_uInt16 nPos = mpImplLB->GetEntryList()->FindEntry( rStr );
     if ( nPos != LISTBOX_ENTRY_NOTFOUND )
@@ -967,7 +968,7 @@
 
 // -----------------------------------------------------------------------
 
-XubString ComboBox::GetEntry( sal_uInt16 nPos ) const
+OUString ComboBox::GetEntry( sal_uInt16 nPos ) const
 {
     return mpImplLB->GetEntryList()->GetEntryText( nPos + mpImplLB->GetEntryList()->GetMRUCount() 
);
 }
@@ -1318,14 +1319,14 @@
 
 // -----------------------------------------------------------------------
 
-void ComboBox::SetMRUEntries( const XubString& rEntries, sal_Unicode cSep )
+void ComboBox::SetMRUEntries( const OUString& rEntries, sal_Unicode cSep )
 {
     mpImplLB->SetMRUEntries( rEntries, cSep );
 }
 
 // -----------------------------------------------------------------------
 
-XubString ComboBox::GetMRUEntries( sal_Unicode cSep ) const
+OUString ComboBox::GetMRUEntries( sal_Unicode cSep ) const
 {
     return mpImplLB->GetMRUEntries( cSep );
 }

-- 
To view, visit https://gerrit.libreoffice.org/2574
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibe80e9837f1c8275d625e942eb75ecc8de897bf5
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Christina Roßmanith <ChrRossmanith@web.de>


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.