[PATCH] String=>OUString : svtools inettbc
Norbert Thiebaud (via Code Review)
gerrit at gerrit.libreoffice.org
Thu Jun 13 06:19:52 PDT 2013
Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/4256
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/56/4256/1
String=>OUString : svtools inettbc
Change-Id: I457834f2c7eef221db97387410115600748f1375
---
M include/svtools/helpopt.hxx
M include/svtools/inettbc.hxx
M svtools/source/config/helpopt.cxx
M svtools/source/control/inettbc.cxx
4 files changed, 167 insertions(+), 156 deletions(-)
diff --git a/include/svtools/helpopt.hxx b/include/svtools/helpopt.hxx
index 938bd22..36f3227 100644
--- a/include/svtools/helpopt.hxx
+++ b/include/svtools/helpopt.hxx
@@ -19,10 +19,10 @@
#ifndef INCLUDED_SVTOOLS_HELPOPT_HXX
#define INCLUDED_SVTOOLS_HELPOPT_HXX
+#include <rtl/ustring.hxx>
#include "svtools/svtdllapi.h"
#include <list>
-#include <tools/string.hxx>
#include <unotools/options.hxx>
typedef std::list< sal_Int32 > IdList;
@@ -42,13 +42,13 @@
void SetHelpTips( sal_Bool b );
sal_Bool IsHelpTips() const;
- const String& GetHelpStyleSheet()const;
- void SetHelpStyleSheet(const String& rStyleSheet);
+ const OUString& GetHelpStyleSheet()const;
+ void SetHelpStyleSheet(const OUString& rStyleSheet);
void SetWelcomeScreen( sal_Bool b );
sal_Bool IsWelcomeScreen() const;
- String GetSystem() const;
+ OUString GetSystem() const;
};
#endif
diff --git a/include/svtools/inettbc.hxx b/include/svtools/inettbc.hxx
index 3b8dbca..5cc0c52 100644
--- a/include/svtools/inettbc.hxx
+++ b/include/svtools/inettbc.hxx
@@ -34,8 +34,8 @@
friend class SvtMatchContext_Impl;
friend class SvtURLBox_Impl;
Link aOpenHdl;
- String aBaseURL;
- String aPlaceHolder;
+ OUString aBaseURL;
+ OUString aPlaceHolder;
rtl::Reference< SvtMatchContext_Impl > pCtx;
SvtURLBox_Impl* pImp;
INetProtocol eSmartProtocol;
@@ -46,10 +46,10 @@
sal_Bool bNoSelection : 1;
sal_Bool bIsAutoCompleteEnabled : 1;
- SVT_DLLPRIVATE sal_Bool ProcessKey( const KeyCode& rCode );
- SVT_DLLPRIVATE void TryAutoComplete();
- SVT_DLLPRIVATE void UpdatePicklistForSmartProtocol_Impl();
- DECL_DLLPRIVATE_LINK( AutoCompleteHdl_Impl, void* );
+ SVT_DLLPRIVATE sal_Bool ProcessKey( const KeyCode& rCode );
+ SVT_DLLPRIVATE void TryAutoComplete();
+ SVT_DLLPRIVATE void UpdatePicklistForSmartProtocol_Impl();
+ DECL_DLLPRIVATE_LINK( AutoCompleteHdl_Impl, void* );
SVT_DLLPRIVATE void Init(bool bSetDefaultHelpID);
protected:
@@ -64,30 +64,30 @@
SvtURLBox( Window* pParent, const ResId& _rResId, INetProtocol eSmart = INET_PROT_NOT_VALID, bool bSetDefaultHelpID = true );
~SvtURLBox();
- void SetBaseURL( const String& rURL );
- const String& GetBaseURL() const { return aBaseURL; }
+ void SetBaseURL( const OUString& rURL );
+ const OUString& GetBaseURL() const { return aBaseURL; }
void SetOpenHdl( const Link& rLink ) { aOpenHdl = rLink; }
const Link& GetOpenHdl() const { return aOpenHdl; }
void SetOnlyDirectories( sal_Bool bDir = sal_True );
void SetNoURLSelection( sal_Bool bSet = sal_True );
INetProtocol GetSmartProtocol() const { return eSmartProtocol; }
void SetSmartProtocol( INetProtocol eProt );
- sal_Bool IsCtrlOpen()
+ sal_Bool IsCtrlOpen()
{ return bCtrlClick; }
- String GetURL();
+ OUString GetURL();
void DisableHistory();
void UpdatePickList( );
- static String ParseSmart( String aText, String aBaseURL, String aWorkDir );
+ static OUString ParseSmart( OUString aText, OUString aBaseURL, OUString aWorkDir );
- void SetFilter(const String& _sFilter);
+ void SetFilter(const OUString& _sFilter);
inline void EnableAutocompletion( sal_Bool _bEnable = sal_True )
{ bIsAutoCompleteEnabled = _bEnable; }
- void SetPlaceHolder( const String& sPlaceHolder ) { aPlaceHolder = sPlaceHolder; }
- String GetPlaceHolder() { return aPlaceHolder; }
- bool MatchesPlaceHolder( const String& sToMatch ) { return ( ( aPlaceHolder.Len() > 0 ) && ( aPlaceHolder == sToMatch ) ); }
+ void SetPlaceHolder( const OUString& sPlaceHolder ) { aPlaceHolder = sPlaceHolder; }
+ OUString GetPlaceHolder() { return aPlaceHolder; }
+ bool MatchesPlaceHolder( const OUString& sToMatch ) { return ( !aPlaceHolder.isEmpty() && ( aPlaceHolder == sToMatch ) ); }
};
#endif
diff --git a/svtools/source/config/helpopt.cxx b/svtools/source/config/helpopt.cxx
index a51ed04..063dbda 100644
--- a/svtools/source/config/helpopt.cxx
+++ b/svtools/source/config/helpopt.cxx
@@ -50,9 +50,9 @@
sal_Bool bExtendedHelp;
sal_Bool bHelpTips;
sal_Bool bWelcomeScreen;
- String aLocale;
- String aSystem;
- String sHelpStyleSheet;
+ OUString aLocale;
+ OUString aSystem;
+ OUString sHelpStyleSheet;
DECLARE_STL_USTRINGACCESS_MAP( sal_Int32, MapString2Int );
MapString2Int aURLIgnoreCounters;
@@ -74,11 +74,11 @@
void SetWelcomeScreen( sal_Bool b ) { bWelcomeScreen = b; SetModified(); }
sal_Bool IsWelcomeScreen() const { return bWelcomeScreen; }
- String GetLocale() const { return aLocale; }
- String GetSystem() const { return aSystem; }
+ OUString GetLocale() const { return aLocale; }
+ OUString GetSystem() const { return aSystem; }
- const String& GetHelpStyleSheet()const{return sHelpStyleSheet;}
- void SetHelpStyleSheet(const String& rStyleSheet){sHelpStyleSheet = rStyleSheet; SetModified();}
+ const OUString& GetHelpStyleSheet()const{return sHelpStyleSheet;}
+ void SetHelpStyleSheet(const OUString& rStyleSheet){sHelpStyleSheet = rStyleSheet; SetModified();}
static ::osl::Mutex & getInitMutex();
};
@@ -318,17 +318,17 @@
return pImp->IsWelcomeScreen();
}
-String SvtHelpOptions::GetSystem() const
+OUString SvtHelpOptions::GetSystem() const
{
return pImp->GetSystem();
}
-const String& SvtHelpOptions::GetHelpStyleSheet()const
+const OUString& SvtHelpOptions::GetHelpStyleSheet()const
{
return pImp->GetHelpStyleSheet();
}
-void SvtHelpOptions::SetHelpStyleSheet(const String& rStyleSheet)
+void SvtHelpOptions::SetHelpStyleSheet(const OUString& rStyleSheet)
{
pImp->SetHelpStyleSheet(rStyleSheet);
}
diff --git a/svtools/source/control/inettbc.cxx b/svtools/source/control/inettbc.cxx
index 917639d..0c90e42 100644
--- a/svtools/source/control/inettbc.cxx
+++ b/svtools/source/control/inettbc.cxx
@@ -81,11 +81,11 @@
std::vector<OUString> aCompletions;
::std::vector< WildCard > m_aFilters;
- static sal_Bool TildeParsing( String& aText, String& aBaseUrl );
+ static sal_Bool TildeParsing( OUString& aText, OUString& aBaseUrl );
inline SvtURLBox_Impl( )
{
- FilterMatch::createWildCardFilterList(String(),m_aFilters);
+ FilterMatch::createWildCardFilterList(OUString(),m_aFilters);
}
};
@@ -97,8 +97,8 @@
std::vector<OUString> aCompletions;
std::vector<OUString> aURLs;
svtools::AsynchronLink aLink;
- String aBaseURL;
- String aText;
+ OUString aBaseURL;
+ OUString aText;
SvtURLBox* pBox;
sal_Bool bOnlyDirectories;
sal_Bool bNoSelection;
@@ -113,12 +113,12 @@
virtual ~SvtMatchContext_Impl();
virtual void execute();
void doExecute();
- void Insert( const String& rCompletion, const String& rURL, sal_Bool bForce = sal_False);
- void ReadFolder( const String& rURL, const String& rMatch, sal_Bool bSmart );
+ void Insert( const OUString& rCompletion, const OUString& rURL, sal_Bool bForce = sal_False);
+ void ReadFolder( const OUString& rURL, const OUString& rMatch, sal_Bool bSmart );
void FillPicklist(std::vector<OUString>& rPickList);
public:
- SvtMatchContext_Impl( SvtURLBox* pBoxP, const String& rText );
+ SvtMatchContext_Impl( SvtURLBox* pBoxP, const OUString& rText );
void Stop();
};
@@ -129,7 +129,7 @@
}
SvtMatchContext_Impl::SvtMatchContext_Impl(
- SvtURLBox* pBoxP, const String& rText )
+ SvtURLBox* pBoxP, const OUString& rText )
: Thread( "SvtMatchContext_Impl" )
, aLink( STATIC_LINK( this, SvtMatchContext_Impl, Select_Impl ) )
, aBaseURL( pBoxP->aBaseURL )
@@ -232,7 +232,7 @@
for(std::vector<OUString>::iterator i = pThis->aCompletions.begin(); i != pThis->aCompletions.end(); ++i)
{
- String sCompletion(*i);
+ OUString sCompletion(*i);
// convert the file into an URL
OUString sURL( sCompletion );
@@ -242,8 +242,7 @@
if ( !sURL.isEmpty() && ( sURL[sURL.getLength()-1] != '/' ))
{
- String sUpperURL( sURL );
- sUpperURL.ToUpperAscii();
+ OUString sUpperURL( sURL.toAsciiUpperCase() );
::std::vector< WildCard >::const_iterator aMatchingFilter =
::std::find_if(
@@ -265,9 +264,9 @@
if( !pThis->bNoSelection && !pThis->aCompletions.empty() && !bValidCompletionsFiltered )
{
// select the first one
- String aTmp( pBox->GetEntry(0) );
+ OUString aTmp( pBox->GetEntry(0) );
pBox->SetText( aTmp );
- pBox->SetSelection( Selection( pThis->aText.Len(), aTmp.Len() ) );
+ pBox->SetSelection( Selection( pThis->aText.getLength(), aTmp.getLength() ) );
}
// transfer string lists to listbox and forget them
@@ -287,14 +286,14 @@
}
//-------------------------------------------------------------------------
-void SvtMatchContext_Impl::Insert( const String& rCompletion,
- const String& rURL,
+void SvtMatchContext_Impl::Insert( const OUString& rCompletion,
+ const OUString& rURL,
sal_Bool bForce )
{
if( !bForce )
{
// avoid doubles
- if(find(aCompletions.begin(), aCompletions.end(), OUString(rCompletion)) != aCompletions.end())
+ if(find(aCompletions.begin(), aCompletions.end(), rCompletion) != aCompletions.end())
return;
}
@@ -303,33 +302,32 @@
}
//-------------------------------------------------------------------------
-void SvtMatchContext_Impl::ReadFolder( const String& rURL,
- const String& rMatch,
+void SvtMatchContext_Impl::ReadFolder( const OUString& rURL,
+ const OUString& rMatch,
sal_Bool bSmart )
{
// check folder to scan
if( !UCBContentHelper::IsFolder( rURL ) )
return;
- sal_Bool bPureHomePath = sal_False;
+ bool bPureHomePath = false;
#ifdef UNX
- bPureHomePath = aText.Search( '~' ) == 0 && aText.Search( '/' ) == STRING_NOTFOUND;
+ bPureHomePath = aText.indexOf( '~' ) == 0 && aText.indexOf( '/' ) == -1;
#endif
- sal_Bool bExectMatch = bPureHomePath
- || aText.CompareToAscii( "." ) == COMPARE_EQUAL
- || (aText.Len() > 1 && aText.Copy( aText.Len() - 2, 2 ).CompareToAscii( "/." ) == COMPARE_EQUAL)
- || (aText.Len() > 2 && aText.Copy( aText.Len() - 3, 3 ).CompareToAscii( "/.." ) == COMPARE_EQUAL);
+ sal_Bool bExectMatch = bPureHomePath || aText == "."
+ || (aText.getLength() > 1 && aText.copy( aText.getLength() - 2, 2 ) == "/.")
+ || (aText.getLength() > 2 && aText.copy( aText.getLength() - 3, 3 ) == "/.." );
// for pure home paths ( ~username ) the '.' at the end of rMatch
// means that it poits to root catalog
// this is done only for file contents since home paths parsing is useful only for them
- if ( bPureHomePath && rMatch.Equals( OUString("file:///.") ) )
+ if ( bPureHomePath && rMatch == "file:///." )
{
// a home that refers to /
- String aNewText( aText );
- aNewText += '/';
+ OUString aNewText( aText );
+ aNewText += "/";
Insert( aNewText, rURL, sal_True );
return;
@@ -337,21 +335,23 @@
// string to match with
INetURLObject aMatchObj( rMatch );
- String aMatchName;
+ OUString aMatchName;
- if ( rURL != String(aMatchObj.GetMainURL( INetURLObject::NO_DECODE ) ))
+ if ( rURL != aMatchObj.GetMainURL( INetURLObject::NO_DECODE ) )
{
aMatchName = aMatchObj.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
// matching is always done case insensitive, but completion will be case sensitive and case preserving
- aMatchName.ToLowerAscii();
+ aMatchName = aMatchName.toAsciiLowerCase();
// if the matchstring ends with a slash, we must search for this also
- if ( rMatch.GetChar(rMatch.Len()-1) == '/' )
- aMatchName += '/';
+ if ( rMatch[rMatch.getLength()-1] == '/' )
+ {
+ aMatchName += "/";
+ }
}
- xub_StrLen nMatchLen = aMatchName.Len();
+ sal_Int32 nMatchLen = aMatchName.getLength();
INetURLObject aFolderObj( rURL );
DBG_ASSERT( aFolderObj.GetProtocol() != INET_PROT_NOT_VALID, "Invalid URL!" );
@@ -408,17 +408,17 @@
{
while ( schedule() && xResultSet->next() )
{
- String aURL = xContentAccess->queryContentIdentifierString();
- String aTitle = xRow->getString(1);
+ OUString aURL = xContentAccess->queryContentIdentifierString();
+ OUString aTitle = xRow->getString(1);
sal_Bool bIsFolder = xRow->getBoolean(2);
// matching is always done case insensitive, but completion will be case sensitive and case preserving
- aTitle.ToLowerAscii();
+ aTitle = aTitle.toAsciiLowerCase();
if (
!nMatchLen ||
- (bExectMatch && aMatchName.Equals(aTitle)) ||
- (!bExectMatch && aMatchName.CompareTo(aTitle, nMatchLen) == COMPARE_EQUAL)
+ (bExectMatch && (aMatchName == aTitle)) ||
+ (!bExectMatch && aMatchName.compareTo(aTitle, nMatchLen) == 0)
)
{
// all names fit if matchstring is empty
@@ -432,20 +432,20 @@
aObj.setFinalSlash();
// get the last name of the URL
- String aMatch = aObj.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
- String aInput( aText );
+ OUString aMatch = aObj.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
+ OUString aInput( aText );
if ( nMatchLen )
{
- if ((aText.Len() && aText.GetChar(aText.Len() - 1) == '.') || bPureHomePath)
+ if (bPureHomePath || (!aText.isEmpty() && aText[aText.getLength() - 1] == '.'))
{
// if a "special folder" URL was typed, don't touch the user input
- aMatch.Erase( 0, nMatchLen );
+ aMatch = aMatch.copy(nMatchLen);
}
else
{
// make the user input case preserving
- DBG_ASSERT( aInput.Len() >= nMatchLen, "Suspicious Matching!" );
- aInput.Erase( aInput.Len() - nMatchLen );
+ DBG_ASSERT( aInput.getLength() >= nMatchLen, "Suspicious Matching!" );
+ aInput = aInput.copy(0, aInput.getLength() - nMatchLen);
}
}
@@ -453,7 +453,7 @@
// folders should get a final slash automatically
if ( bIsFolder )
- aInput += aDelimiter;
+ aInput += OUString(aDelimiter);
Insert( aInput, aObj.GetMainURL( INetURLObject::NO_DECODE ), sal_True );
}
@@ -470,28 +470,28 @@
}
//-------------------------------------------------------------------------
-String SvtURLBox::ParseSmart( String aText, String aBaseURL, String aWorkDir )
+OUString SvtURLBox::ParseSmart( OUString aText, OUString aBaseURL, OUString aWorkDir )
{
- String aMatch;
+ OUString aMatch;
// parse ~ for Unix systems
// does nothing for Windows
if( !SvtURLBox_Impl::TildeParsing( aText, aBaseURL ) )
- return String();
+ return OUString();
INetURLObject aURLObject;
- if( aBaseURL.Len() )
+ if( !aBaseURL.isEmpty() )
{
INetProtocol eBaseProt = INetURLObject::CompareProtocolScheme( aBaseURL );
// if a base URL is set the string may be parsed relative
- if( aText.Search( '/' ) == 0 )
+ if( aText.indexOf( '/' ) == 0 )
{
// text starting with slashes means absolute file URLs
- String aTemp = INetURLObject::GetScheme( eBaseProt );
+ OUString aTemp = INetURLObject::GetScheme( eBaseProt );
// file URL must be correctly encoded!
- String aTextURL = INetURLObject::encode( aText, INetURLObject::PART_FPATH,
+ OUString aTextURL = INetURLObject::encode( aText, INetURLObject::PART_FPATH,
'%', INetURLObject::ENCODE_ALL );
aTemp += aTextURL;
@@ -501,7 +501,7 @@
}
else
{
- String aSmart( aText );
+ OUString aSmart( aText );
INetURLObject aObj( aBaseURL );
// HRO: I suppose this hack should only be done for Windows !!!???
@@ -509,15 +509,15 @@
// HRO: INetURLObject::smatRel2Abs does not recognize '\\' as a relative path
// but in case of "\\\\" INetURLObject is right - this is an absolute path !
- if( aText.Search( '\\' ) == 0 && (aText.Len() < 2 || aText.GetChar( 1 ) != '\\') )
+ if( aText.indexOf( '\\' ) == 0 && (aText.getLength() < 2 || aText[ 1 ] != '\\') )
{
// cut to first segment
- String aTmp = INetURLObject::GetScheme( eBaseProt );
- aTmp += '/';
- aTmp += String(aObj.getName( 0, true, INetURLObject::DECODE_WITH_CHARSET ));
+ OUString aTmp = INetURLObject::GetScheme( eBaseProt );
+ aTmp += "/";
+ aTmp += aObj.getName( 0, true, INetURLObject::DECODE_WITH_CHARSET );
aObj.SetURL( aTmp );
- aSmart.Erase(0,1);
+ aSmart = aSmar.copy(1);
}
#endif
// base URL must be a directory !
@@ -536,7 +536,7 @@
INetURLObject aTmp( aObj.smartRel2Abs( aSmart, bWasAbsolute ) );
#endif
- if ( aText.GetChar( aText.Len() - 1 ) == '.' )
+ if ( aText[ aText.getLength() - 1 ] == '.' )
// INetURLObject appends a final slash for the directories "." and "..", this is a bug!
// Remove it as a workaround
aTmp.removeFinalSlash();
@@ -547,7 +547,7 @@
else
{
OUString aTmpMatch;
- ::utl::LocalFileHelper::ConvertSystemPathToURL( OUString(aText), OUString(aWorkDir), aTmpMatch );
+ ::utl::LocalFileHelper::ConvertSystemPathToURL( aText, aWorkDir, aTmpMatch );
aMatch = aTmpMatch;
}
@@ -571,20 +571,22 @@
aURLs.clear();
// check for input
- sal_uInt16 nTextLen = aText.Len();
+ sal_Int32 nTextLen = aText.getLength();
if ( !nTextLen )
return;
- if( aText.Search( '*' ) != STRING_NOTFOUND || aText.Search( '?' ) != STRING_NOTFOUND )
+ if( aText.indexOf( '*' ) != -1 || aText.indexOf( '?' ) != -1 )
// no autocompletion for wildcards
return;
- String aMatch;
- String aWorkDir( SvtPathOptions().GetWorkPath() );
+ OUString aMatch;
+ OUString aWorkDir( SvtPathOptions().GetWorkPath() );
INetProtocol eProt = INetURLObject::CompareProtocolScheme( aText );
INetProtocol eBaseProt = INetURLObject::CompareProtocolScheme( aBaseURL );
- if ( !aBaseURL.Len() )
+ if ( aBaseURL.isEmpty() )
+ {
eBaseProt = INetURLObject::CompareProtocolScheme( aWorkDir );
+ }
INetProtocol eSmartProt = pBox->GetSmartProtocol();
// if the user input is a valid URL, go on with it
@@ -599,17 +601,17 @@
aMatch = SvtURLBox::ParseSmart( aText, aBaseURL, aWorkDir );
else
aMatch = aText;
- if ( aMatch.Len() )
+ if ( !aMatch.isEmpty() )
{
INetURLObject aURLObject( aMatch );
- String aMainURL( aURLObject.GetMainURL( INetURLObject::NO_DECODE ) );
+ OUString aMainURL( aURLObject.GetMainURL( INetURLObject::NO_DECODE ) );
// Disable autocompletion for anything but the (local) file
// system (for which access is hopefully fast), as the logic of
// how SvtMatchContext_Impl is used requires this code to run to
// completion before further user input is processed, and even
// SvtMatchContext_Impl::Stop does not guarantee a speedy
// return:
- if ( aMainURL.Len()
+ if ( !aMainURL.isEmpty()
&& aURLObject.GetProtocol() == INET_PROT_FILE )
{
// if text input is a directory, it must be part of the match list! Until then it is scanned
@@ -707,7 +709,7 @@
sal_Bool bFull = sal_False;
INetURLObject aCurObj;
- String aEmpty, aCurString, aCurMainURL;
+ OUString aEmpty, aCurString, aCurMainURL;
INetURLObject aObj;
aObj.SetSmartProtocol( eSmartProt == INET_PROT_NOT_VALID ? INET_PROT_HTTP : eSmartProt );
for( ;; )
@@ -741,8 +743,8 @@
if( eProt == INET_PROT_NOT_VALID )
{
// try if text matches the scheme
- String aScheme( INetURLObject::GetScheme( aCurObj.GetProtocol() ) );
- if ( aText.CompareIgnoreCaseToAscii( aScheme, aText.Len() ) == COMPARE_EQUAL && aText.Len() < aScheme.Len() )
+ OUString aScheme( INetURLObject::GetScheme( aCurObj.GetProtocol() ) );
+ if ( (aText.getLength() < aScheme.getLength()) && (aText.compareToIgnoreAsciiCase( aScheme.copy(0, aText.getLength())) == 0))
{
if( bFull )
aMatch = aCurObj.GetMainURL( INetURLObject::NO_DECODE );
@@ -758,10 +760,10 @@
}
// now try smart matching
- aCurString.Erase( 0, aScheme.Len() );
+ aCurString = aCurString.copy(aScheme.getLength());
}
- if( aText.CompareIgnoreCaseToAscii( aCurString, aText.Len() )== COMPARE_EQUAL )
+ if( aCurString.getLength() >= aText.getLength() && aText.compareToIgnoreAsciiCase( aCurString.copy(0, aText.getLength() )) == 0 )
{
if( bFull )
aMatch = aCurObj.GetMainURL( INetURLObject::NO_DECODE );
@@ -773,11 +775,11 @@
aMatch = aCurObj.GetMainURL( INetURLObject::NO_DECODE );
}
- String aURL( aMatch );
+ OUString aURL( aMatch );
if( eProt == INET_PROT_NOT_VALID )
- aMatch.Erase( 0, sal::static_int_cast< xub_StrLen >(INetURLObject::GetScheme( aCurObj.GetProtocol() ).getLength()) );
+ aMatch = aMatch.copy(sal::static_int_cast< xub_StrLen >(INetURLObject::GetScheme( aCurObj.GetProtocol() ).getLength()) );
- if( aText.Len() < aMatch.Len() )
+ if( aText.getLength() < aMatch.getLength() )
Insert( aMatch, aURL );
continue;
@@ -789,9 +791,9 @@
if( bFull )
continue;
- if( aText.CompareTo( aCurMainURL, aText.Len() ) == COMPARE_EQUAL )
+ if( aText.compareTo( aCurMainURL, aText.getLength() ) == 0 )
{
- if( aText.Len() < aCurMainURL.Len() )
+ if( aText.getLength() < aCurMainURL.getLength() )
Insert( aCurMainURL, aCurMainURL );
continue;
@@ -814,13 +816,13 @@
{
if( Application::AnyInput( VCL_INPUT_KEYBOARD ) ) return;
- String aCurText = GetText();
+ OUString aCurText = GetText();
Selection aSelection( GetSelection() );
- if( aSelection.Max() != aCurText.Len() )
+ if( aSelection.Max() != aCurText.getLength() )
return;
- sal_uInt16 nLen = (sal_uInt16)aSelection.Min();
- aCurText.Erase( nLen );
- if( aCurText.Len() && bIsAutoCompleteEnabled )
+ sal_Int32 nLen = aSelection.Min();
+ aCurText = aCurText.copy(0, nLen);
+ if( !aCurText.isEmpty() && bIsAutoCompleteEnabled )
{
if ( pCtx.is() )
{
@@ -925,8 +927,8 @@
pCtx.clear();
}
- String sText = GetText();
- if ( sText.Len() && bIsAutoCompleteEnabled )
+ OUString sText = GetText();
+ if ( !sText.isEmpty() && bIsAutoCompleteEnabled )
{
pCtx = new SvtMatchContext_Impl( this, sText );
pCtx->launch();
@@ -973,27 +975,25 @@
break;
}
- String aURL( aCurObj.GetMainURL( INetURLObject::DECODE_WITH_CHARSET ) );
+ OUString aURL( aCurObj.GetMainURL( INetURLObject::DECODE_WITH_CHARSET ) );
- if ( aURL.Len() )
+ if ( !aURL.isEmpty() )
{
- sal_Bool bFound = (aURL.GetChar(aURL.Len()-1) == '/' );
+ sal_Bool bFound = (aURL[aURL.getLength()-1] == '/' );
if ( !bFound )
{
- String aUpperURL( aURL );
- aUpperURL.ToUpperAscii();
+ OUString aUpperURL( aURL.toAsciiUpperCase() );
- bFound
- = (::std::find_if(
- pImp->m_aFilters.begin(),
- pImp->m_aFilters.end(),
- FilterMatch( aUpperURL ) )
- != pImp->m_aFilters.end());
+ bFound = (::std::find_if(
+ pImp->m_aFilters.begin(),
+ pImp->m_aFilters.end(),
+ FilterMatch( aUpperURL ) )
+ != pImp->m_aFilters.end());
}
if ( bFound )
{
OUString aFile;
- if (::utl::LocalFileHelper::ConvertURLToSystemPath(aURL,aFile))
+ if (::utl::LocalFileHelper::ConvertURLToSystemPath(aURL, aFile))
InsertEntry(aFile);
else
InsertEntry(aURL);
@@ -1185,12 +1185,12 @@
}
//-------------------------------------------------------------------------
-String SvtURLBox::GetURL()
+OUString SvtURLBox::GetURL()
{
// wait for end of autocompletion
::osl::MutexGuard aGuard( theSvtMatchContextMutex::get() );
- String aText( GetText() );
+ OUString aText( GetText() );
if ( MatchesPlaceHolder( aText ) )
return aPlaceHolder;
@@ -1205,13 +1205,13 @@
// erase trailing spaces on Windows since thay are invalid on this OS and
// most of the time they are inserted by accident via copy / paste
aText = comphelper::string::stripEnd(aText, ' ');
- if ( !aText.Len() )
+ if ( aText.isEmpty() )
return aText;
// #i9739#
#endif
INetURLObject aObj( aText );
- if( aText.Search( '*' ) != STRING_NOTFOUND || aText.Search( '?' ) != STRING_NOTFOUND )
+ if( aText.indexOf( '*' ) != -1 || aText.indexOf( '?' ) != -1 )
{
// no autocompletion for wildcards
INetURLObject aTempObj;
@@ -1243,20 +1243,23 @@
sal_Bool success = (aAny >>= aFileURL);
OUString aTitle;
if(success)
- aTitle = String(
- INetURLObject(aFileURL).getName(
+ {
+ aTitle = INetURLObject(aFileURL).getName(
INetURLObject::LAST_SEGMENT,
true,
- INetURLObject::DECODE_WITH_CHARSET ));
+ INetURLObject::DECODE_WITH_CHARSET );
+ }
else
- success =
- UCBContentHelper::GetTitle(aURL,&aTitle);
-
+ {
+ success = UCBContentHelper::GetTitle(aURL,&aTitle);
+ }
if( success && aTitle != "/" && aTitle != "." )
{
- aObj.SetName( aTitle );
- if ( bSlash )
- aObj.setFinalSlash();
+ aObj.SetName( aTitle );
+ if ( bSlash )
+ {
+ aObj.setFinalSlash();
+ }
}
}
}
@@ -1270,7 +1273,7 @@
UpdatePicklistForSmartProtocol_Impl();
}
-void SvtURLBox::SetBaseURL( const String& rURL )
+void SvtURLBox::SetBaseURL( const OUString& rURL )
{
::osl::MutexGuard aGuard( theSvtMatchContextMutex::get() );
@@ -1285,23 +1288,23 @@
does nothing for Windows
*/
sal_Bool SvtURLBox_Impl::TildeParsing(
- String&
+ OUString&
#ifdef UNX
aText
#endif
- , String&
+ , OUString&
#ifdef UNX
aBaseURL
#endif
)
{
#ifdef UNX
- if( aText.Search( '~' ) == 0 )
+ if( aText.indexOf( '~' ) == 0 )
{
- String aParseTilde;
+ OUString aParseTilde;
sal_Bool bTrailingSlash = sal_True; // use trailing slash
- if( aText.Len() == 1 || aText.GetChar( 1 ) == '/' )
+ if( aText.getLength() == 1 || aText[ 1 ] == '/' )
{
// covers "~" or "~/..." cases
const char* aHomeLocation = getenv( "HOME" );
@@ -1312,14 +1315,14 @@
// in case the whole path is just "~" then there should
// be no trailing slash at the end
- if( aText.Len() == 1 )
+ if( aText.getLength() == 1 )
bTrailingSlash = sal_False;
}
else
{
// covers "~username" and "~username/..." cases
- xub_StrLen nNameEnd = aText.Search( '/' );
- OUString aUserName = aText.Copy( 1, ( nNameEnd != STRING_NOTFOUND ) ? nNameEnd : ( aText.Len() - 1 ) );
+ sal_Int32 nNameEnd = aText.indexOf( '/' );
+ OUString aUserName = aText.copy( 1, ( nNameEnd != -1 ) ? nNameEnd : ( aText.getLength() - 1 ) );
struct passwd* pPasswd = NULL;
#ifdef SOLARIS
@@ -1331,15 +1334,23 @@
1024,
&pPasswd );
if( !nRes && pPasswd )
+ {
aParseTilde = OUString::createFromAscii(pPasswd->pw_dir);
+ }
else
+ {
return sal_False; // no such user
+ }
#else
pPasswd = getpwnam( OUStringToOString( aUserName, RTL_TEXTENCODING_ASCII_US ).getStr() );
if( pPasswd )
+ {
aParseTilde = OUString::createFromAscii(pPasswd->pw_dir);
+ }
else
+ {
return sal_False; // no such user
+ }
#endif
// in case the path is "~username" then there should
@@ -1350,10 +1361,10 @@
if( !bTrailingSlash )
{
- if( !aParseTilde.Len() || aParseTilde.EqualsAscii( "/" ) )
+ if( aParseTilde.isEmpty() || aParseTilde == "/")
{
// "/" path should be converted to "/."
- aParseTilde = OUString("/.");
+ aParseTilde = "/.";
}
else
{
@@ -1363,21 +1374,21 @@
}
else
{
- if( aParseTilde.GetChar( aParseTilde.Len() - 1 ) != '/' )
- aParseTilde += '/';
- if( aText.Len() > 2 )
- aParseTilde += aText.Copy( 2 );
+ if( aParseTilde[ aParseTilde.getLength() - 1 ] != '/' )
+ aParseTilde += "/";
+ if( aText.getLength() > 2 )
+ aParseTilde += aText.copy( 2 );
}
aText = aParseTilde;
- aBaseURL = String(); // tilde provide absolute path
+ aBaseURL = OUString(); // tilde provide absolute path
}
#endif
return sal_True;
}
-void SvtURLBox::SetFilter(const String& _sFilter)
+void SvtURLBox::SetFilter(const OUString& _sFilter)
{
pImp->m_aFilters.clear();
FilterMatch::createWildCardFilterList(_sFilter,pImp->m_aFilters);
--
To view, visit https://gerrit.libreoffice.org/4256
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I457834f2c7eef221db97387410115600748f1375
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Norbert Thiebaud <nthiebaud at gmail.com>
More information about the LibreOffice
mailing list