From a37535e3ff7be959d9a3aab3399ffbcc89688662 Mon Sep 17 00:00:00 2001 From: Matteo Casalin Date: Sun, 13 Sep 2015 10:44:38 +0200 Subject: Avoid getTokenCount in SvxMultiPathDialog::SetPath and SvxPathSelectDialog::SetPath Change-Id: I4d360caacf438949ccd9a90c4fec14a7e7d1c009 --- cui/source/dialogs/multipat.cxx | 56 ++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 26 deletions(-) (limited to 'cui/source/dialogs/multipat.cxx') diff --git a/cui/source/dialogs/multipat.cxx b/cui/source/dialogs/multipat.cxx index cd6dca3af00a..2b91b89066f2 100644 --- a/cui/source/dialogs/multipat.cxx +++ b/cui/source/dialogs/multipat.cxx @@ -29,7 +29,6 @@ #include #include -#include #include #include #include @@ -304,25 +303,26 @@ OUString SvxPathSelectDialog::GetPath() const void SvxMultiPathDialog::SetPath( const OUString& rPath ) { - sal_Unicode cDelim = SVT_SEARCHPATH_DELIMITER; - sal_uInt16 nCount = comphelper::string::getTokenCount(rPath, cDelim); - - for ( sal_uInt16 i = 0; i < nCount; ++i ) + if ( !rPath.isEmpty() ) { - OUString sPath = rPath.getToken( i, cDelim ); - OUString sSystemPath; - bool bIsSystemPath = - osl::FileBase::getSystemPathFromFileURL(sPath, sSystemPath) == osl::FileBase::E_None; - - OUString sEntry( '\t' ); - sEntry += (bIsSystemPath ? sSystemPath : OUString(sPath)); - SvTreeListEntry* pEntry = m_pRadioLB->InsertEntry( sEntry ); - OUString* pURL = new OUString( sPath ); - pEntry->SetUserData( pURL ); - } + const sal_Unicode cDelim = SVT_SEARCHPATH_DELIMITER; + sal_uLong nCount = 0; + sal_Int32 nIndex = 0; + do + { + const OUString sPath = rPath.getToken( 0, cDelim, nIndex ); + OUString sSystemPath; + bool bIsSystemPath = + osl::FileBase::getSystemPathFromFileURL(sPath, sSystemPath) == osl::FileBase::E_None; + + const OUString sEntry( "\t" + bIsSystemPath ? sSystemPath : sPath); + SvTreeListEntry* pEntry = m_pRadioLB->InsertEntry( sEntry ); + OUString* pURL = new OUString( sPath ); + pEntry->SetUserData( pURL ); + ++nCount; + } + while (nIndex >= 0); - if (nCount > 0) - { SvTreeListEntry* pEntry = m_pRadioLB->GetEntry( nCount - 1 ); if ( pEntry ) { @@ -337,17 +337,21 @@ void SvxMultiPathDialog::SetPath( const OUString& rPath ) void SvxPathSelectDialog::SetPath(const OUString& rPath) { sal_Unicode cDelim = SVT_SEARCHPATH_DELIMITER; - sal_uInt16 nCount = comphelper::string::getTokenCount(rPath, cDelim); - for ( sal_uInt16 i = 0; i < nCount; ++i ) + if ( !rPath.isEmpty() ) { - OUString sPath = rPath.getToken( i, cDelim ); - OUString sSystemPath; - bool bIsSystemPath = - osl::FileBase::getSystemPathFromFileURL(sPath, sSystemPath) == osl::FileBase::E_None; + sal_Int32 nIndex = 0; + do + { + const OUString sPath = rPath.getToken( 0, cDelim, nIndex ); + OUString sSystemPath; + bool bIsSystemPath = + osl::FileBase::getSystemPathFromFileURL(sPath, sSystemPath) == osl::FileBase::E_None; - const sal_Int32 nPos = m_pPathLB->InsertEntry( bIsSystemPath ? sSystemPath : sPath ); - m_pPathLB->SetEntryData( nPos, new OUString( sPath ) ); + const sal_Int32 nPos = m_pPathLB->InsertEntry( bIsSystemPath ? sSystemPath : sPath ); + m_pPathLB->SetEntryData( nPos, new OUString( sPath ) ); + } + while (nIndex >= 0); } SelectHdl_Impl( NULL ); -- cgit