cui/source/options/optpath.cxx | 106 +++++++++++++++++------------- cui/source/tabpages/macroass.cxx | 2 editeng/source/editeng/editdbg.cxx | 7 - sd/source/filter/ppt/pptin.cxx | 20 +++-- starmath/source/view.cxx | 55 +++++++-------- sw/source/ui/dbui/mmoutputtypepage.cxx | 15 +--- sw/source/uibase/dbui/mailmergehelper.cxx | 21 ++--- 7 files changed, 117 insertions(+), 109 deletions(-)
New commits: commit 8be829eebf92f5af32e370e8c00b9b1e28ff95c7 Author: Matteo Casalin <[email protected]> Date: Mon Sep 14 22:34:35 2015 +0200 sal_uInt16 to sal_Int32 Change-Id: I7010e7daefd1710c41b526c085c892ac13f54cd0 diff --git a/editeng/source/editeng/editdbg.cxx b/editeng/source/editeng/editdbg.cxx index a4cbb28..5e65479 100644 --- a/editeng/source/editeng/editdbg.cxx +++ b/editeng/source/editeng/editdbg.cxx @@ -349,8 +349,7 @@ void EditDbg::ShowEditEngineData( EditEngine* pEE, bool bInfoBox ) fprintf( fp, "\nCharacter attribute:" ); bool bZeroAttr = false; - sal_uInt16 z; - for ( z = 0; z < pPPortion->GetNode()->GetCharAttribs().Count(); z++ ) + for ( sal_Int32 z = 0; z < pPPortion->GetNode()->GetCharAttribs().Count(); ++z ) { const EditCharAttrib& rAttr = pPPortion->GetNode()->GetCharAttribs().GetAttribs()[z]; OStringBuffer aCharAttribs; @@ -372,7 +371,7 @@ void EditDbg::ShowEditEngineData( EditEngine* pEE, bool bInfoBox ) if ( bZeroAttr ) fprintf( fp, "\nNULL-Attribute!" ); - sal_uInt16 nTextPortions = pPPortion->GetTextPortions().Count(); + const sal_Int32 nTextPortions = pPPortion->GetTextPortions().Count(); OStringBuffer aPortionStr("\nText portions: #"); aPortionStr.append(static_cast<sal_Int32>(nTextPortions)); aPortionStr.append(" \nA"); @@ -383,7 +382,7 @@ void EditDbg::ShowEditEngineData( EditEngine* pEE, bool bInfoBox ) aPortionStr.append(static_cast<sal_Int32>(nPortion)); aPortionStr.append(": "); sal_Int32 n = 0; - for ( z = 0; z < nTextPortions; z++ ) + for ( sal_Int32 z = 0; z < nTextPortions; ++z ) { TextPortion& rPortion = pPPortion->GetTextPortions()[z]; aPortionStr.append(' '); commit 552e68a15a41e01b2e9f5ef75b32f5acdf7b41ce Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 17:58:24 2015 +0200 Avoid getTokenCount in SmViewShell::DrawText Change-Id: I1a4ee666900c3c412777ea2e8c01a4f38dc58b3a diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx index 803c30a..a84ea4f 100644 --- a/starmath/source/view.cxx +++ b/starmath/source/view.cxx @@ -1081,13 +1081,16 @@ void SmViewShell::DrawTextLine(OutputDevice& rDevice, const Point& rPosition, co void SmViewShell::DrawText(OutputDevice& rDevice, const Point& rPosition, const OUString& rText, sal_uInt16 MaxWidth) { - sal_uInt16 nLines = comphelper::string::getTokenCount(rText, '\n'); + if (rText.isEmpty()) + return; + Point aPoint(rPosition); Size aSize; - for (sal_uInt16 i = 0; i < nLines; i++) + sal_Int32 nPos = 0; + do { - OUString aLine = rText.getToken(i, '\n'); + OUString aLine = rText.getToken(0, '\n', nPos); aLine = comphelper::string::remove(aLine, '\r'); aSize = GetTextLineSize(rDevice, aLine); if (aSize.Width() > MaxWidth) @@ -1135,6 +1138,7 @@ void SmViewShell::DrawText(OutputDevice& rDevice, const Point& rPosition, const aPoint.Y() += aSize.Height(); } } + while ( nPos >= 0 ); } void SmViewShell::Impl_Print(OutputDevice &rOutDev, const SmPrintUIOptions &rPrintUIOptions, Rectangle aOutRect, Point aZeroPoint ) commit 809a4ef445ef0290a4d05babac2f585d1e6ed56f Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 17:54:17 2015 +0200 Avoid getTokenCount in SmViewShell::DrawTextLine Change-Id: If2c059b1284257c73e64f30ffe845ee4d1ccc84d diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx index 7bfe1df..803c30a 100644 --- a/starmath/source/view.cxx +++ b/starmath/source/view.cxx @@ -1058,23 +1058,21 @@ Size SmViewShell::GetTextSize(OutputDevice& rDevice, const OUString& rText, long void SmViewShell::DrawTextLine(OutputDevice& rDevice, const Point& rPosition, const OUString& rLine) { Point aPoint(rPosition); - - sal_uInt16 nTabs = comphelper::string::getTokenCount(rLine, '\t'); - long nTabPos = 0; - if (nTabs > 0) - nTabPos = rDevice.approximate_char_width() * 8; + const long nTabPos = rLine.isEmpty() ? 0 : rDevice.approximate_char_width() * 8; if (nTabPos) { - for (sal_uInt16 i = 0; i < nTabs; ++i) + sal_Int32 nPos = 0; + do { - if (i > 0) + if (nPos > 0) aPoint.X() = ((aPoint.X() / nTabPos) + 1) * nTabPos; - OUString aText = rLine.getToken(i, '\t'); + OUString aText = rLine.getToken(0, '\t', nPos); rDevice.DrawText(aPoint, aText); aPoint.X() += rDevice.GetTextWidth(aText); } + while ( nPos >= 0 ); } else rDevice.DrawText(aPoint, rLine); commit fa29fab1be6a1e93ea25cf87aefec3da04dff357 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 17:48:47 2015 +0200 Avoid getTokenCount in SmViewShell::GetTextSize Change-Id: Ic81b961ae2360ea3fe40c9e536a6f10a5788fe1a diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx index 8627f37..7bfe1df 100644 --- a/starmath/source/view.cxx +++ b/starmath/source/view.cxx @@ -1000,11 +1000,13 @@ Size SmViewShell::GetTextSize(OutputDevice& rDevice, const OUString& rText, long { Size aSize; Size aTextSize; - sal_uInt16 nLines = comphelper::string::getTokenCount(rText, '\n'); + if (rText.isEmpty()) + return aTextSize; - for (sal_uInt16 i = 0; i < nLines; i++) + sal_Int32 nPos = 0; + do { - OUString aLine = rText.getToken(i, '\n'); + OUString aLine = rText.getToken(0, '\n', nPos); aLine = comphelper::string::remove(aLine, '\r'); aSize = GetTextLineSize(rDevice, aLine); @@ -1048,6 +1050,7 @@ Size SmViewShell::GetTextSize(OutputDevice& rDevice, const OUString& rText, long aTextSize.Width() = std::max(aTextSize.Width(), aSize.Width()); } } + while (nPos >= 0); return aTextSize; } commit 584d55178d2e390e60355b18bbac4be16fe750dd Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 17:41:04 2015 +0200 String tokens do not include token separator Change-Id: I03ab73e5f53b2068efc3c4cdaed15f2ec3854c76 diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx index b10981b..8627f37 100644 --- a/starmath/source/view.cxx +++ b/starmath/source/view.cxx @@ -1006,8 +1006,6 @@ Size SmViewShell::GetTextSize(OutputDevice& rDevice, const OUString& rText, long { OUString aLine = rText.getToken(i, '\n'); aLine = comphelper::string::remove(aLine, '\r'); - aLine = comphelper::string::stripStart(aLine, '\n'); - aLine = comphelper::string::stripEnd(aLine, '\n'); aSize = GetTextLineSize(rDevice, aLine); @@ -1071,8 +1069,6 @@ void SmViewShell::DrawTextLine(OutputDevice& rDevice, const Point& rPosition, co aPoint.X() = ((aPoint.X() / nTabPos) + 1) * nTabPos; OUString aText = rLine.getToken(i, '\t'); - aText = comphelper::string::stripStart(aText, '\t'); - aText = comphelper::string::stripEnd(aText, '\t'); rDevice.DrawText(aPoint, aText); aPoint.X() += rDevice.GetTextWidth(aText); } @@ -1092,8 +1088,6 @@ void SmViewShell::DrawText(OutputDevice& rDevice, const Point& rPosition, const { OUString aLine = rText.getToken(i, '\n'); aLine = comphelper::string::remove(aLine, '\r'); - aLine = comphelper::string::stripEnd(aLine, '\n'); - aLine = comphelper::string::stripEnd(aLine, '\n'); aSize = GetTextLineSize(rDevice, aLine); if (aSize.Width() > MaxWidth) { commit 90059da96a91dd2271aeba4101cee8ce827e3c4e Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 17:14:23 2015 +0200 Avoid getTokenCount in SmViewShell::SetZoomFactor Change-Id: Idb874a60868595ccc648da86c8bd32c28b92547b diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx index 1df935c..b10981b 100644 --- a/starmath/source/view.cxx +++ b/starmath/source/view.cxx @@ -976,23 +976,21 @@ void SmViewShell::SetZoomFactor( const Fraction &rX, const Fraction &rY ) Size SmViewShell::GetTextLineSize(OutputDevice& rDevice, const OUString& rLine) { Size aSize(rDevice.GetTextWidth(rLine), rDevice.GetTextHeight()); - sal_uInt16 nTabs = comphelper::string::getTokenCount(rLine, '\t'); - long nTabPos = 0; - if (nTabs > 0) - nTabPos = rDevice.approximate_char_width() * 8; + const long nTabPos = rLine.isEmpty() ? 0 : rDevice.approximate_char_width() * 8; if (nTabPos) { aSize.Width() = 0; - - for (sal_uInt16 i = 0; i < nTabs; i++) + sal_Int32 nPos = 0; + do { - if (i > 0) + if (nPos > 0) aSize.Width() = ((aSize.Width() / nTabPos) + 1) * nTabPos; - OUString aText = rLine.getToken(i, '\t'); + const OUString aText = rLine.getToken(0, '\t', nPos); aSize.Width() += rDevice.GetTextWidth(aText); } + while (nPos >= 0); } return aSize; commit 13ea7ab912093d2c890e4533f54c21eca5f4f585 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 17:13:18 2015 +0200 Fix typo in (my) commit 6f971c4de0d5377a9dd8e010512f5abbd399231e Change-Id: I6253addfede852c9c954de59c465a8cfd729ddf9 diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index f35bb59..fab65ab 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -433,7 +433,7 @@ bool ImplSdPPTImport::Import() aStringAry[nTokenCount] = OUStringToOString(aString.getToken( 0, (sal_Unicode)',', nPos ), RTL_TEXTENCODING_UTF8); } - while ( ++nTokenCount < SAL_N_ELMENTS(aStringAry) && nPos >= 0 ); + while ( ++nTokenCount < SAL_N_ELEMENTS(aStringAry) && nPos >= 0 ); bool bDocInternalSubAddress = false; commit 4cc8558d8e93f57fef057d433e67c5a6c7438233 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 17:08:09 2015 +0200 String tokens do not include token separator Change-Id: Ia469f84412bdaed59b9e9eb3c8942de3d14270b9 diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx index d3d093b..1df935c 100644 --- a/starmath/source/view.cxx +++ b/starmath/source/view.cxx @@ -991,8 +991,6 @@ Size SmViewShell::GetTextLineSize(OutputDevice& rDevice, const OUString& rLine) aSize.Width() = ((aSize.Width() / nTabPos) + 1) * nTabPos; OUString aText = rLine.getToken(i, '\t'); - aText = comphelper::string::stripStart(aText, '\t'); - aText = comphelper::string::stripEnd(aText, '\t'); aSize.Width() += rDevice.GetTextWidth(aText); } } commit 895f24ffca080516b877e86ad0ce7b076e14418d Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 16:59:29 2015 +0200 Avoid getTokenCount in ImplSdPPTImport::Import Change-Id: I7ed99aa72bc775b98f5ca738c35706629a58dc96 diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index 76f331d..f35bb59 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -426,17 +426,19 @@ bool ImplSdPPTImport::Import() sal_uInt32 nPageNumber = 0; OUString aString( pHyperlink->aSubAdress ); OString aStringAry[ 3 ]; - sal_uInt16 nTokenCount = comphelper::string::getTokenCount(aString, ','); - if ( nTokenCount > 3 ) - nTokenCount = 3; - sal_uInt16 nToken; - for( nToken = 0; nToken < nTokenCount; nToken++ ) - aStringAry[nToken] = OUStringToOString(aString.getToken( nToken, (sal_Unicode)',' ), RTL_TEXTENCODING_UTF8); + size_t nTokenCount = 0; + sal_Int32 nPos = 0; + do + { + aStringAry[nTokenCount] = + OUStringToOString(aString.getToken( 0, (sal_Unicode)',', nPos ), RTL_TEXTENCODING_UTF8); + } + while ( ++nTokenCount < SAL_N_ELMENTS(aStringAry) && nPos >= 0 ); bool bDocInternalSubAddress = false; // first pass, searching for a SlideId - for( nToken = 0; nToken < nTokenCount; nToken++ ) + for( size_t nToken = 0; nToken < nTokenCount; ++nToken ) { if (comphelper::string::isdigitAsciiString(aStringAry[nToken])) { @@ -459,7 +461,7 @@ bool ImplSdPPTImport::Import() } if ( !bDocInternalSubAddress ) { // second pass, searching for a SlideName - for ( nToken = 0; nToken < nTokenCount; nToken++ ) + for ( size_t nToken = 0; nToken < nTokenCount; ++nToken ) { OUString aToken(OStringToOUString(aStringAry[nToken], RTL_TEXTENCODING_UTF8)); std::vector<OUString>::const_iterator pIter = @@ -474,7 +476,7 @@ bool ImplSdPPTImport::Import() } if ( !bDocInternalSubAddress ) { // third pass, searching for a slide number - for ( nToken = 0; nToken < nTokenCount; nToken++ ) + for ( size_t nToken = 0; nToken < nTokenCount; ++nToken ) { if (comphelper::string::isdigitAsciiString(aStringAry[nToken])) { commit f7b305015043c4f9e0a669afc7222d873c548ad5 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 16:50:53 2015 +0200 Avoid getTokenCount in (SwMailMergeOutputTypePage) TypeHdl_Impl link Change-Id: If506716a45a869c40a0a449189b049c38215e25c diff --git a/sw/source/ui/dbui/mmoutputtypepage.cxx b/sw/source/ui/dbui/mmoutputtypepage.cxx index 382c09c..c2f84e9 100644 --- a/sw/source/ui/dbui/mmoutputtypepage.cxx +++ b/sw/source/ui/dbui/mmoutputtypepage.cxx @@ -77,7 +77,6 @@ IMPL_LINK_NOARG_TYPED(SwMailMergeOutputTypePage, TypeHdl_Impl, Button*, void) #include <rtl/ref.hxx> #include <com/sun/star/mail/XSmtpService.hpp> -#include <comphelper/string.hxx> #include <vcl/svapp.hxx> #include <vcl/idle.hxx> @@ -505,27 +504,25 @@ void SwSendMailDialog::IterateMails() //CC and BCC are tokenized by ';' if(!pCurrentMailDescriptor->sCC.isEmpty()) { - OUString sTokens( pCurrentMailDescriptor->sCC ); - sal_uInt16 nTokens = comphelper::string::getTokenCount(sTokens, ';'); sal_Int32 nPos = 0; - for( sal_uInt16 nToken = 0; nToken < nTokens; ++nToken) + do { - OUString sTmp = sTokens.getToken( 0, ';', nPos); + OUString sTmp = pCurrentMailDescriptor->sCC.getToken( 0, ';', nPos ); if( !sTmp.isEmpty() ) pMessage->addCcRecipient( sTmp ); } + while (nPos >= 0); } if(!pCurrentMailDescriptor->sBCC.isEmpty()) { - OUString sTokens( pCurrentMailDescriptor->sBCC ); - sal_uInt16 nTokens = comphelper::string::getTokenCount(sTokens, ';'); sal_Int32 nPos = 0; - for( sal_uInt16 nToken = 0; nToken < nTokens; ++nToken) + do { - OUString sTmp = sTokens.getToken( 0, ';', nPos); + OUString sTmp = pCurrentMailDescriptor->sBCC.getToken( 0, ';', nPos ); if( !sTmp.isEmpty() ) pMessage->addBccRecipient( sTmp ); } + while (nPos >= 0); } m_pImpl->xMailDispatcher->enqueueMailMessage( xMessage ); pCurrentMailDescriptor = m_pImpl->GetNextDescriptor(); commit b5e214f27c5fc8911e131597c628d5062aa056a1 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 16:45:25 2015 +0200 Avoid getTokenCount in SwAddressPreview::DrawText_Impl Change-Id: I28c678d0d3db4cbea6c15141d1d0157447cd4db7 diff --git a/sw/source/uibase/dbui/mailmergehelper.cxx b/sw/source/uibase/dbui/mailmergehelper.cxx index 79113f1..2f91678 100644 --- a/sw/source/uibase/dbui/mailmergehelper.cxx +++ b/sw/source/uibase/dbui/mailmergehelper.cxx @@ -34,7 +34,6 @@ #include <com/sun/star/mail/MailServiceProvider.hpp> #include <com/sun/star/mail/XSmtpService.hpp> #include <comphelper/processfactory.hxx> -#include <comphelper/string.hxx> #include <vcl/msgbox.hxx> #include <vcl/settings.hxx> #include <vcl/builderfactory.hxx> @@ -449,16 +448,16 @@ void SwAddressPreview::DrawText_Impl(vcl::RenderContext& rRenderContext, const O rRenderContext.DrawRect(Rectangle(rTopLeft, rSize)); } sal_Int32 nHeight = GetTextHeight(); - OUString sAddress(rAddress); - sal_uInt16 nTokens = comphelper::string::getTokenCount(sAddress, '\n'); Point aStart = rTopLeft; //put it away from the border aStart.Move(2, 2); - for (sal_uInt16 nToken = 0; nToken < nTokens; nToken++) + sal_Int32 nPos = 0; + do { - rRenderContext.DrawText(aStart, sAddress.getToken(nToken, '\n')); + rRenderContext.DrawText(aStart, rAddress.getToken(0, '\n', nPos)); aStart.Y() += nHeight; } + while (nPos >= 0); } OUString SwAddressPreview::FillData( commit f50c547e22e0793061c5123cccb8c292e57de470 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 16:38:49 2015 +0200 No need to copy OUStrings in SwMailMergeHelper::CheckMailAddress Change-Id: I77ff719274991d901cf3869cd45ea416c772be2f diff --git a/sw/source/uibase/dbui/mailmergehelper.cxx b/sw/source/uibase/dbui/mailmergehelper.cxx index 3901058..79113f1 100644 --- a/sw/source/uibase/dbui/mailmergehelper.cxx +++ b/sw/source/uibase/dbui/mailmergehelper.cxx @@ -72,17 +72,15 @@ OUString CallSaveAsDialog(OUString& rFilter) /* simple address check: check for '@' for at least one '.' after the '@' - and for at least to characters before and after the dot + and for at least two characters before and after the dot */ bool CheckMailAddress( const OUString& rMailAddress ) { - OUString sAddress(rMailAddress); - if (!(comphelper::string::getTokenCount(sAddress, '@') == 2)) + const sal_Int32 nPosAt = rMailAddress.indexOf('@'); + if (nPosAt<0 || rMailAddress.lastIndexOf('@')!=nPosAt) return false; - sAddress = sAddress.getToken(1, '@'); - if (comphelper::string::getTokenCount(sAddress, '.') < 2) - return false; - if(sAddress.getToken( 0, '.').getLength() < 2 || sAddress.getToken( 1, '.').getLength() < 2) + const sal_Int32 nPosDot = rMailAddress.indexOf('.', nPosAt); + if (nPosDot<0 || nPosDot-nPosAt<3 || rMailAddress.getLength()-nPosDot<3) return false; return true; } commit 84e4d7d214505127abedfaadff2ff1e582a0633f Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 16:16:17 2015 +0200 sal_uInt16 to sal_Int32 Change-Id: I16169aa22b373beb768d12bb304b5e816d40b2d4 diff --git a/cui/source/tabpages/macroass.cxx b/cui/source/tabpages/macroass.cxx index 2401676..0379d68 100644 --- a/cui/source/tabpages/macroass.cxx +++ b/cui/source/tabpages/macroass.cxx @@ -100,7 +100,7 @@ OUString ConvertToUIName_Impl( SvxMacro *pMacro ) OUString aEntry; if ( pMacro->GetLanguage() != "JavaScript" ) { - sal_uInt16 nCount = comphelper::string::getTokenCount(aName, '.'); + const sal_Int32 nCount = comphelper::string::getTokenCount(aName, '.'); aEntry = aName.getToken( nCount-1, '.' ); if ( nCount > 2 ) { commit 356ba01b7c1c25ef01babd568f4adcf884dce249 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 15:05:58 2015 +0200 Use search position in getToken Change-Id: If801cb8c4aef16ecac1c747e56bf0c1797d7db21 diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index 16bae49..2aa6aaf 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -801,11 +801,12 @@ void SvxPathTabPage::SetPathList( // save user paths char cDelim = MULTIPATH_DELIMITER; - sal_uInt16 nCount = comphelper::string::getTokenCount(_rUserPath, cDelim); + const sal_Int32 nCount = comphelper::string::getTokenCount(_rUserPath, cDelim); Sequence< OUString > aPathSeq( nCount ); OUString* pArray = aPathSeq.getArray(); - for ( sal_uInt16 i = 0; i < nCount; ++i ) - pArray[i] = _rUserPath.getToken( i, cDelim ); + sal_Int32 nPos = 0; + for ( sal_Int32 i = 0; i < nCount; ++i ) + pArray[i] = _rUserPath.getToken( 0, cDelim, nPos ); Any aValue = makeAny( aPathSeq ); pImpl->m_xPathSettings->setPropertyValue( sCfgName + POSTFIX_USER, aValue); commit af6d9db3fc1dddd65299eb0bfb5b366700edc742 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 14:56:22 2015 +0200 Avoid getTokenCount in PathHdl_Impl link Change-Id: Idfc4977283373349d6c636c91e631eb98684ae56 diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index 370f71c..16bae49 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -584,19 +584,24 @@ IMPL_LINK_NOARG_TYPED(SvxPathTabPage, PathHdl_Impl, Button*, void) sWritable.clear(); OUString sFullPath; OUString sNewPath = pMultiDlg->GetPath(); - char cDelim = MULTIPATH_DELIMITER; - sal_uInt16 nCount = comphelper::string::getTokenCount(sNewPath, cDelim); - if ( nCount > 0 ) + if ( !sNewPath.isEmpty() ) { - sal_uInt16 i = 0; - for ( ; i < nCount - 1; ++i ) + const sal_Unicode cDelim = MULTIPATH_DELIMITER; + sal_Int32 nNextPos = 0; + for (;;) { + const OUString sToken(sNewPath.getToken( 0, cDelim, nNextPos )); + if ( nNextPos<0 ) + { + // Last token need a different handling + sWritable = sToken; + break; + } if ( !sUser.isEmpty() ) sUser += OUString(cDelim); - sUser += sNewPath.getToken( i, cDelim ); + sUser += sToken; } sFullPath = sUser; - sWritable += sNewPath.getToken( i, cDelim ); if ( !sFullPath.isEmpty() ) sFullPath += OUString(cDelim); sFullPath += sWritable; commit a3bbb7e63c1f5e7f5d63678e7d35f8847e4a9370 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 14:51:08 2015 +0200 sFullPath is empty for sure, here Change-Id: Idee351bf2515dd7343b6a74eba98d1df7f4d5ffc diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index 98999d9..370f71c 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -595,9 +595,7 @@ IMPL_LINK_NOARG_TYPED(SvxPathTabPage, PathHdl_Impl, Button*, void) sUser += OUString(cDelim); sUser += sNewPath.getToken( i, cDelim ); } - if ( !sFullPath.isEmpty() ) - sFullPath += OUString(cDelim); - sFullPath += sUser; + sFullPath = sUser; sWritable += sNewPath.getToken( i, cDelim ); if ( !sFullPath.isEmpty() ) sFullPath += OUString(cDelim); commit aef2aa22180be4b99b0a4e28b3bc13f82ad436c5 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 14:33:09 2015 +0200 Avoid getTokenCount in StandardHdl_Impl link (3) Change-Id: Ib68b48fd14cbfae234d03a2963991a1c8581423b diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index 0a97795..98999d9 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -444,16 +444,23 @@ IMPL_LINK_NOARG_TYPED(SvxPathTabPage, StandardHdl_Impl, Button*, void) while ( nOldPos >= 0 ); OUString sUserPath, sWritablePath; - sal_uInt16 nOldCount = comphelper::string::getTokenCount(sTemp, MULTIPATH_DELIMITER); - sal_uInt16 i; - for ( i = 0; nOldCount > 0 && i < nOldCount - 1; ++i ) + if ( !sTemp.isEmpty() ) { - if ( !sUserPath.isEmpty() ) - sUserPath += OUStringLiteral1<MULTIPATH_DELIMITER>(); - sUserPath += sTemp.getToken( i, MULTIPATH_DELIMITER ); + sal_Int32 nNextPos = 0; + for (;;) + { + const OUString sToken = sTemp.getToken( 0, MULTIPATH_DELIMITER, nNextPos ); + if ( nNextPos<0 ) + { + // Last token need a different handling + sWritablePath = sToken; + break; + } + if ( !sUserPath.isEmpty() ) + sUserPath += OUStringLiteral1<MULTIPATH_DELIMITER>(); + sUserPath += sToken; + } } - sWritablePath = sTemp.getToken( nOldCount - 1, MULTIPATH_DELIMITER ); - pPathBox->SetEntryText( Convert_Impl( sTemp ), pEntry, 1 ); pPathImpl->eState = SfxItemState::SET; pPathImpl->sUserPath = sUserPath; commit 57c0ca2e575813626d0c2c994e0a4b52253f42b1 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 13:09:42 2015 +0200 Avoid getTokenCount in StandardHdl_Impl link (2) Change-Id: I0164f81e6308c5a5c1b4d93e8df55aa911ea8b4c diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index 8354185..0a97795 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -419,12 +419,11 @@ IMPL_LINK_NOARG_TYPED(SvxPathTabPage, StandardHdl_Impl, Button*, void) bool bReadOnly = false; GetPathList( pPathImpl->nRealId, sInternal, sUser, sWritable, bReadOnly ); - sal_uInt16 i; - sal_uInt16 nOldCount = comphelper::string::getTokenCount(aOldPath, MULTIPATH_DELIMITER); - for ( i = 0; i < nOldCount; ++i ) + sal_Int32 nOldPos = 0; + do { bool bFound = false; - OUString sOnePath = aOldPath.getToken( i, MULTIPATH_DELIMITER ); + const OUString sOnePath = aOldPath.getToken( 0, MULTIPATH_DELIMITER, nOldPos ); if ( !sInternal.isEmpty() ) { sal_Int32 nInternalPos = 0; @@ -442,9 +441,11 @@ IMPL_LINK_NOARG_TYPED(SvxPathTabPage, StandardHdl_Impl, Button*, void) sTemp += sOnePath; } } + while ( nOldPos >= 0 ); OUString sUserPath, sWritablePath; - nOldCount = comphelper::string::getTokenCount(sTemp, MULTIPATH_DELIMITER); + sal_uInt16 nOldCount = comphelper::string::getTokenCount(sTemp, MULTIPATH_DELIMITER); + sal_uInt16 i; for ( i = 0; nOldCount > 0 && i < nOldCount - 1; ++i ) { if ( !sUserPath.isEmpty() ) commit 261471afa11f670a1ac19edc61c17e37d505dac0 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 13:04:46 2015 +0200 Avoid getTokenCount in StandardHdl_Impl link (1) Change-Id: I3a74980fec63085fe60f6f413c77b54dcd4df0ab diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index 3cc1dce..8354185 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -421,15 +421,19 @@ IMPL_LINK_NOARG_TYPED(SvxPathTabPage, StandardHdl_Impl, Button*, void) sal_uInt16 i; sal_uInt16 nOldCount = comphelper::string::getTokenCount(aOldPath, MULTIPATH_DELIMITER); - sal_uInt16 nIntCount = comphelper::string::getTokenCount(sInternal, MULTIPATH_DELIMITER); for ( i = 0; i < nOldCount; ++i ) { bool bFound = false; OUString sOnePath = aOldPath.getToken( i, MULTIPATH_DELIMITER ); - for ( sal_uInt16 j = 0; !bFound && j < nIntCount; ++j ) + if ( !sInternal.isEmpty() ) { - if ( sInternal.getToken( j, MULTIPATH_DELIMITER ) == sOnePath ) - bFound = true; + sal_Int32 nInternalPos = 0; + do + { + if ( sInternal.getToken( 0, MULTIPATH_DELIMITER, nInternalPos ) == sOnePath ) + bFound = true; + } + while ( !bFound && nInternalPos >= 0 ); } if ( !bFound ) { commit 02d1aaf12cd1c9a6b7c79d7fbb5f65dd12199ab0 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 12:45:08 2015 +0200 Reduce OUString copies Change-Id: I443a327ce2f089b7930678d21572a43a28cdea51 diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index bfc0b73..3cc1dce 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -317,8 +317,7 @@ void SvxPathTabPage::Reset( const SfxItemSet* ) if ( !sTmpPath.isEmpty() && !sWritable.isEmpty() ) sTmpPath += OUStringLiteral1<MULTIPATH_DELIMITER>(); sTmpPath += sWritable; - OUString aValue( sTmpPath ); - aValue = Convert_Impl( aValue ); + const OUString aValue = Convert_Impl( sTmpPath ); nWidth2 = std::max(nWidth2, pPathBox->GetTextWidth(aValue)); aStr += aValue; SvTreeListEntry* pEntry = pPathBox->InsertEntry( aStr ); @@ -481,12 +480,11 @@ void SvxPathTabPage::ChangeCurrentEntry( const OUString& _rFolder ) // old path is an URL? INetURLObject aObj( sWritable ); bool bURL = ( aObj.GetProtocol() != INetProtocol::NotValid ); - OUString aPathStr( _rFolder ); - INetURLObject aNewObj( aPathStr ); + INetURLObject aNewObj( _rFolder ); aNewObj.removeFinalSlash(); // then the new path also an URL else system path - OUString sNewPathStr = bURL ? aPathStr : aNewObj.getFSysPath( INetURLObject::FSYS_DETECT ); + OUString sNewPathStr = bURL ? _rFolder : aNewObj.getFSysPath( INetURLObject::FSYS_DETECT ); bool bChanged = #ifdef UNX @@ -564,9 +562,8 @@ IMPL_LINK_NOARG_TYPED(SvxPathTabPage, PathHdl_Impl, Button*, void) sPath += sWritable; pMultiDlg->SetPath( sPath ); - OUString sPathName = SvTabListBox::GetEntryText( pEntry, 0 ); - OUString sNewTitle( pImpl->m_sMultiPathDlg ); - sNewTitle = sNewTitle.replaceFirst( VAR_ONE, sPathName ); + const OUString sPathName = SvTabListBox::GetEntryText( pEntry, 0 ); + const OUString sNewTitle = pImpl->m_sMultiPathDlg.replaceFirst( VAR_ONE, sPathName ); pMultiDlg->SetTitle( sNewTitle ); if ( pMultiDlg->Execute() == RET_OK && pEntry ) @@ -799,7 +796,7 @@ void SvxPathTabPage::SetPathList( sCfgName + POSTFIX_USER, aValue); // then the writable path - aValue = makeAny( OUString( _rWritablePath ) ); + aValue = makeAny( _rWritablePath ); pImpl->m_xPathSettings->setPropertyValue( sCfgName + POSTFIX_WRITABLE, aValue); } commit 9f3222789fa6684701b9f2088a7bb3b198274e20 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 12:33:37 2015 +0200 This was probably the original intent (wrong index in inner loop body) Change-Id: I17bec80168cc56fa5ab47da65e85a90c32c958b3 diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index e7f2a58..bfc0b73 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -429,7 +429,7 @@ IMPL_LINK_NOARG_TYPED(SvxPathTabPage, StandardHdl_Impl, Button*, void) OUString sOnePath = aOldPath.getToken( i, MULTIPATH_DELIMITER ); for ( sal_uInt16 j = 0; !bFound && j < nIntCount; ++j ) { - if ( sInternal.getToken( i, MULTIPATH_DELIMITER ) == sOnePath ) + if ( sInternal.getToken( j, MULTIPATH_DELIMITER ) == sOnePath ) bFound = true; } if ( !bFound ) commit 83dd91fb20b7fb28f3f4e3e28789b34534bcd4be Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 12:31:28 2015 +0200 Convert_Impl can be static Change-Id: If99b39aa46bfb02ece72944b9122b04458a0dae6 diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index 289d295..e7f2a58 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -141,7 +141,7 @@ static OUString getCfgName_Impl( sal_uInt16 _nHandle ) #define MULTIPATH_DELIMITER ';' -OUString Convert_Impl( const OUString& rValue ) +static OUString Convert_Impl( const OUString& rValue ) { OUString aReturn; if (rValue.isEmpty()) commit bbdbdbc31de0236708ee3f918c49aa7193323b65 Author: Matteo Casalin <[email protected]> Date: Sun Sep 13 12:29:16 2015 +0200 Avoid getTokenCount in Convert_Impl (optpath.cxx) Change-Id: Icc434c714fead503c3fd292bd9609c3905023676 diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index 002d16e..289d295 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -143,17 +143,22 @@ static OUString getCfgName_Impl( sal_uInt16 _nHandle ) OUString Convert_Impl( const OUString& rValue ) { - char cDelim = MULTIPATH_DELIMITER; - sal_uInt16 nCount = comphelper::string::getTokenCount(rValue, cDelim); OUString aReturn; - for ( sal_uInt16 i=0; i<nCount ; ++i ) + if (rValue.isEmpty()) + return aReturn; + + const sal_Unicode cDelim = MULTIPATH_DELIMITER; + sal_Int32 nPos = 0; + + for (;;) { - OUString aValue = rValue.getToken( i, cDelim ); + OUString aValue = rValue.getToken( 0, cDelim, nPos ); INetURLObject aObj( aValue ); if ( aObj.GetProtocol() == INetProtocol::File ) aReturn += aObj.PathToFileName(); - if ( i+1 < nCount) - aReturn += OUStringLiteral1<MULTIPATH_DELIMITER>(); + if ( nPos < 0 ) + break; + aReturn += OUStringLiteral1<MULTIPATH_DELIMITER>(); } return aReturn; _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
