sw/qa/extras/globalfilter/globalfilter.cxx | 7 +-- sw/qa/extras/inc/bordertest.hxx | 7 +-- sw/qa/extras/inc/swmodeltestbase.hxx | 13 +----- sw/qa/extras/mailmerge/mailmerge.cxx | 8 +-- sw/qa/extras/tiledrendering/tiledrendering.cxx | 2 sw/qa/extras/uiwriter/uiwriter.cxx | 27 ++++++------ sw/source/core/access/acchyperlink.cxx | 5 -- sw/source/core/access/accpara.cxx | 53 ++++++------------------- sw/source/core/access/accselectionhelper.cxx | 8 --- sw/source/core/doc/docglos.cxx | 10 ++-- sw/source/core/doc/docxforms.cxx | 6 -- sw/source/core/edit/edlingu.cxx | 32 +++++---------- sw/source/core/fields/authfld.cxx | 23 +++++----- sw/source/core/fields/flddropdown.cxx | 4 - sw/source/core/unocore/SwXTextDefaults.cxx | 6 -- sw/source/core/unocore/unochart.cxx | 46 ++++++++------------- sw/source/core/unocore/unocoll.cxx | 13 ++---- sw/source/core/unocore/unocrsrhelper.cxx | 4 - sw/source/core/unocore/unodraw.cxx | 16 ++----- sw/source/core/unocore/unoevent.cxx | 4 - sw/source/core/unocore/unoflatpara.cxx | 8 +-- sw/source/core/unocore/unoframe.cxx | 10 +--- sw/source/core/unocore/unoidx.cxx | 8 +-- sw/source/core/unocore/unoobj.cxx | 31 ++++++-------- sw/source/core/unocore/unoparagraph.cxx | 17 ++------ sw/source/core/unocore/unoport.cxx | 7 --- sw/source/core/unocore/unosett.cxx | 15 ++----- sw/source/core/unocore/unosrch.cxx | 9 +--- sw/source/core/unocore/unostyle.cxx | 12 ++--- sw/source/core/unocore/unotext.cxx | 31 +++++--------- sw/source/core/unocore/unotextmarkup.cxx | 27 ++++-------- 31 files changed, 176 insertions(+), 293 deletions(-)
New commits: commit 3e8989d47e3116a99d4b9f6d03800464ff235de8 Author: Arkadiy Illarionov <qar...@gmail.com> AuthorDate: Sat Jul 6 17:07:05 2019 +0300 Commit: Arkadiy Illarionov <qar...@gmail.com> CommitDate: Mon Jul 8 21:23:39 2019 +0200 Simplify Sequence iterations in sw/qa/* and sw/source/core/* Use range-based loops, STL and comphelper functions Change-Id: I5bd910a86bd80c553cd4a0c044a8eb61084f77ae Reviewed-on: https://gerrit.libreoffice.org/75167 Tested-by: Jenkins Reviewed-by: Arkadiy Illarionov <qar...@gmail.com> diff --git a/sw/qa/extras/globalfilter/globalfilter.cxx b/sw/qa/extras/globalfilter/globalfilter.cxx index 012e16eb3de2..337d182b4809 100644 --- a/sw/qa/extras/globalfilter/globalfilter.cxx +++ b/sw/qa/extras/globalfilter/globalfilter.cxx @@ -634,9 +634,8 @@ void Test::testMSCharBackgroundEditing() xRun->setPropertyValue("CharHighlight", uno::makeAny(static_cast<sal_Int32>(COL_TRANSPARENT))); // Remove shading marker uno::Sequence<beans::PropertyValue> aGrabBag = getProperty<uno::Sequence<beans::PropertyValue> >(xRun,"CharInteropGrabBag"); - for (int j = 0; j < aGrabBag.getLength(); ++j) + for (beans::PropertyValue& rProp : aGrabBag) { - beans::PropertyValue& rProp = aGrabBag[j]; if (rProp.Name == "CharShadingMarker") { CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), true, rProp.Value.get<bool>()); @@ -1207,7 +1206,7 @@ void Test::testDropDownFormField() { pListEntries->second >>= vListEntries; - if(vListEntries.getLength()) + if(vListEntries.hasElements()) { auto pResult = pParameters->find(ODF_FORMDROPDOWN_RESULT); if (pResult != pParameters->end()) @@ -1220,7 +1219,7 @@ void Test::testDropDownFormField() // The first one is empty if(nIndex == 0) { - CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(0), vListEntries.getLength()); + CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), !vListEntries.hasElements()); CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), sal_Int32(-1), nSelection); } else // The second one has list and also a selected item diff --git a/sw/qa/extras/inc/bordertest.hxx b/sw/qa/extras/inc/bordertest.hxx index b1376ee36530..52776c38e012 100644 --- a/sw/qa/extras/inc/bordertest.hxx +++ b/sw/qa/extras/inc/bordertest.hxx @@ -155,7 +155,6 @@ public: { uno::Reference<text::XTextTable> const xTextTable(xServiceInfo, uno::UNO_QUERY_THROW); uno::Sequence<OUString> const cells = xTextTable->getCellNames(); - sal_Int32 nLength = cells.getLength(); if(currentTable == sal_Int32(1)) tempMap = &map1; @@ -174,13 +173,13 @@ public: BorderLineMap::iterator it = tempMap->begin(); - for (sal_Int32 i = 0; i < nLength; ++i) + for (const auto& rCell : cells) { - uno::Reference<table::XCell> xCell = xTextTable->getCellByName(cells[i]); + uno::Reference<table::XCell> xCell = xTextTable->getCellByName(rCell); uno::Reference< beans::XPropertySet > xPropSet(xCell, uno::UNO_QUERY_THROW); uno::Any aAny = xPropSet->getPropertyValue("TopBorder"); table::BorderLine aBorderLine; - it = tempMap->find(cells[i]); + it = tempMap->find(rCell); if ((aAny >>= aBorderLine) && (it!=tempMap->end())) { sal_Int32 innerLineWidth = aBorderLine.InnerLineWidth; diff --git a/sw/qa/extras/inc/swmodeltestbase.hxx b/sw/qa/extras/inc/swmodeltestbase.hxx index fac758a30ccf..db18b5d9b9be 100644 --- a/sw/qa/extras/inc/swmodeltestbase.hxx +++ b/sw/qa/extras/inc/swmodeltestbase.hxx @@ -603,15 +603,10 @@ protected: { uno::Sequence< beans::PropertyValue > aPropertyValue; xLevels->getByIndex(nNumberingLevel) >>= aPropertyValue; - for( int j = 0 ; j< aPropertyValue.getLength() ; ++j) - { - beans::PropertyValue aProp= aPropertyValue[j]; - if (aProp.Name == "NumberingType") - { - nNumberingType = aProp.Value.get<sal_Int16>(); - break; - } - } + auto pProp = std::find_if(aPropertyValue.begin(), aPropertyValue.end(), + [](const beans::PropertyValue& rProp) { return rProp.Name == "NumberingType"; }); + if (pProp != aPropertyValue.end()) + nNumberingType = pProp->Value.get<sal_Int16>(); } } return nNumberingType; diff --git a/sw/qa/extras/mailmerge/mailmerge.cxx b/sw/qa/extras/mailmerge/mailmerge.cxx index 5395afa25bce..6c5a2de4d495 100644 --- a/sw/qa/extras/mailmerge/mailmerge.cxx +++ b/sw/qa/extras/mailmerge/mailmerge.cxx @@ -180,14 +180,12 @@ public: uno::Sequence< beans::NamedValue > aSeqMailMergeArgs = comphelper::containerToSequence( mMMargs ); uno::Any res = mxJob->execute( aSeqMailMergeArgs ); - const beans::NamedValue *pArguments = aSeqMailMergeArgs.getConstArray(); bool bOk = true; bool bMMFilenameFromColumn = false; - sal_Int32 nArgs = aSeqMailMergeArgs.getLength(); - for (sal_Int32 i = 0; i < nArgs; ++i) { - const OUString &rName = pArguments[i].Name; - const uno::Any &rValue = pArguments[i].Value; + for (const beans::NamedValue& rArgument : aSeqMailMergeArgs) { + const OUString &rName = rArgument.Name; + const uno::Any &rValue = rArgument.Value; // all error checking was already done by the MM job execution if (rName == UNO_NAME_OUTPUT_URL) diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx index c06f150ccf32..60d51cfc9739 100644 --- a/sw/qa/extras/tiledrendering/tiledrendering.cxx +++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx @@ -2091,7 +2091,7 @@ void checkPageHeaderOrFooter(const SfxViewShell* pViewShell, sal_uInt16 nWhich, CPPUNIT_ASSERT_EQUAL(OUString("Default Style"), aSeq[0]); } else - CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aSeq.getLength()); + CPPUNIT_ASSERT(!aSeq.hasElements()); }; } diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index 471d726e9626..d5a53d73841c 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -1908,17 +1908,17 @@ void SwUiWriterTest::testDefaultsOfOutlineNumbering() alocale.Country = "US"; uno::Sequence<beans::PropertyValues> aPropVal(xDefNum->getDefaultContinuousNumberingLevels(alocale)); CPPUNIT_ASSERT_EQUAL(sal_Int32(8), aPropVal.getLength()); - for(int i=0;i<aPropVal.getLength();i++) + for(const auto& rPropValues : aPropVal) { - CPPUNIT_ASSERT_EQUAL(sal_Int32(5), aPropVal[i].getLength()); - for(int j=0;j<aPropVal[i].getLength();j++) + CPPUNIT_ASSERT_EQUAL(sal_Int32(5), rPropValues.getLength()); + for(const auto& rPropVal : rPropValues) { - uno::Any aAny = (aPropVal[i])[j].Value; - if((aPropVal[i])[j].Name == "Prefix" || (aPropVal[i])[j].Name == "Suffix" || (aPropVal[i])[j].Name == "Transliteration") + uno::Any aAny = rPropVal.Value; + if(rPropVal.Name == "Prefix" || rPropVal.Name == "Suffix" || rPropVal.Name == "Transliteration") CPPUNIT_ASSERT_EQUAL(OUString("string"), aAny.getValueTypeName()); - else if((aPropVal[i])[j].Name == "NumberingType") + else if(rPropVal.Name == "NumberingType") CPPUNIT_ASSERT_EQUAL(OUString("short"), aAny.getValueTypeName()); - else if((aPropVal[i])[j].Name == "NatNum") + else if(rPropVal.Name == "NatNum") CPPUNIT_ASSERT_EQUAL(OUString("short"), aAny.getValueTypeName()); //It is expected to be long but right now its short !error! else @@ -1981,7 +1981,7 @@ void SwUiWriterTest::testXFlatParagraph() xFlatPara3->changeAttributes(sal_Int32(0), sal_Int32(5), aDescriptor); //checking Language Portions uno::Sequence<::sal_Int32> aLangPortions(xFlatPara4->getLanguagePortions()); - CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aLangPortions.getLength()); + CPPUNIT_ASSERT(!aLangPortions.hasElements()); //examining Language of text css::lang::Locale alocale = xFlatPara4->getLanguageOfText(sal_Int32(0), sal_Int32(4)); CPPUNIT_ASSERT_EQUAL(OUString("en"), alocale.Language); @@ -2000,17 +2000,16 @@ void SwUiWriterTest::testTdf81995() alocale.Country = "US"; uno::Sequence<uno::Reference<container::XIndexAccess>> aIndexAccess(xDefNum->getDefaultOutlineNumberings(alocale)); CPPUNIT_ASSERT_EQUAL(sal_Int32(8), aIndexAccess.getLength()); - for(int i=0;i<aIndexAccess.getLength();i++) + for(const auto& rIndexAccess : aIndexAccess) { - CPPUNIT_ASSERT_EQUAL(sal_Int32(5), aIndexAccess[i]->getCount()); - for(int j=0;j<aIndexAccess[i]->getCount();j++) + CPPUNIT_ASSERT_EQUAL(sal_Int32(5), rIndexAccess->getCount()); + for(int j=0;j<rIndexAccess->getCount();j++) { uno::Sequence<beans::PropertyValue> aProps; - aIndexAccess[i]->getByIndex(j) >>= aProps; + rIndexAccess->getByIndex(j) >>= aProps; CPPUNIT_ASSERT_EQUAL(sal_Int32(12), aProps.getLength()); - for(int k=0;k<aProps.getLength();k++) + for(const beans::PropertyValue& rProp : aProps) { - const beans::PropertyValue& rProp = aProps[k]; uno::Any aAny = rProp.Value; if(rProp.Name == "Prefix" || rProp.Name == "Suffix" || rProp.Name == "BulletChar" || rProp.Name == "BulletFontName" || rProp.Name == "Transliteration") CPPUNIT_ASSERT_EQUAL(OUString("string"), aAny.getValueTypeName()); diff --git a/sw/source/core/access/acchyperlink.cxx b/sw/source/core/access/acchyperlink.cxx index 4877ffbe7970..e7d756af731c 100644 --- a/sw/source/core/access/acchyperlink.cxx +++ b/sw/source/core/access/acchyperlink.cxx @@ -211,13 +211,10 @@ sal_Bool SAL_CALL SwAccessibleHyperlink::isValid( ) uno::Reference< css::container::XNameAccess > xLinks = xLTS->getLinks(); uno::Reference< css::container::XNameAccess > xSubLinks; const uno::Sequence< OUString > aNames( xLinks->getElementNames() ); - const sal_uLong nLinks = aNames.getLength(); - const OUString* pNames = aNames.getConstArray(); - for( sal_uLong i = 0; i < nLinks; i++ ) + for( const OUString& aLink : aNames ) { uno::Any aAny; - OUString aLink( *pNames++ ); aAny = xLinks->getByName( aLink ); aAny >>= xSubLinks; if (xSubLinks->hasByName(sText.copy(1)) ) diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx index 31d00a30021e..9574855492e8 100644 --- a/sw/source/core/access/accpara.cxx +++ b/sw/source/core/access/accpara.cxx @@ -18,6 +18,7 @@ */ #include <memory> +#include <numeric> #include <txtfrm.hxx> #include <flyfrm.hxx> #include <ndtxt.hxx> @@ -1593,11 +1594,9 @@ void SwAccessibleParagraph::_getDefaultAttributesImpl( } else { - const OUString* pReqAttrs = aRequestedAttributes.getConstArray(); - const sal_Int32 nLength = aRequestedAttributes.getLength(); - for( sal_Int32 i = 0; i < nLength; ++i ) + for( const OUString& rReqAttr : aRequestedAttributes ) { - tAccParaPropValMap::const_iterator const aIter = aDefAttrSeq.find( pReqAttrs[i] ); + tAccParaPropValMap::const_iterator const aIter = aDefAttrSeq.find( rReqAttr ); if ( aIter != aDefAttrSeq.end() ) { rDefAttrSeq[ aIter->first ] = aIter->second; @@ -1618,30 +1617,13 @@ uno::Sequence< PropertyValue > SwAccessibleParagraph::getDefaultAttributes( // #i92233# static const char sMMToPixelRatio[] = "MMToPixelRatio"; - bool bProvideMMToPixelRatio( false ); - { - if ( !aRequestedAttributes.hasElements() ) - { - bProvideMMToPixelRatio = true; - } - else - { - const OUString* aRequestedAttrIter = - std::find( aRequestedAttributes.begin(), aRequestedAttributes.end(), sMMToPixelRatio ); - if ( aRequestedAttrIter != aRequestedAttributes.end() ) - bProvideMMToPixelRatio = true; - } - } + bool bProvideMMToPixelRatio( !aRequestedAttributes.hasElements() || + (comphelper::findValue(aRequestedAttributes, sMMToPixelRatio) != -1) ); uno::Sequence< PropertyValue > aValues( aDefAttrSeq.size() + ( bProvideMMToPixelRatio ? 1 : 0 ) ); - PropertyValue* pValues = aValues.getArray(); - sal_Int32 i = 0; - for ( const auto& rEntry : aDefAttrSeq ) - { - pValues[i] = rEntry.second; - ++i; - } + std::transform(aDefAttrSeq.begin(), aDefAttrSeq.end(), aValues.begin(), + [](const auto& rEntry) -> PropertyValue { return rEntry.second; }); // #i92233# if ( bProvideMMToPixelRatio ) @@ -1654,7 +1636,7 @@ uno::Sequence< PropertyValue > SwAccessibleParagraph::getDefaultAttributes( rPropVal.Value <<= fRatio; rPropVal.Handle = -1; rPropVal.State = beans::PropertyState_DEFAULT_VALUE; - pValues[ aValues.getLength() - 1 ] = rPropVal; + aValues[ aValues.getLength() - 1 ] = rPropVal; } return aValues; @@ -1749,11 +1731,9 @@ void SwAccessibleParagraph::_getRunAttributesImpl( } else { - const OUString* pReqAttrs = aRequestedAttributes.getConstArray(); - const sal_Int32 nLength = aRequestedAttributes.getLength(); - for( sal_Int32 i = 0; i < nLength; ++i ) + for( const OUString& rReqAttr : aRequestedAttributes ) { - tAccParaPropValMap::iterator aIter = aRunAttrSeq.find( pReqAttrs[i] ); + tAccParaPropValMap::iterator aIter = aRunAttrSeq.find( rReqAttr ); if ( aIter != aRunAttrSeq.end() ) { rRunAttrSeq[ (*aIter).first ] = (*aIter).second; @@ -1835,12 +1815,9 @@ void SwAccessibleParagraph::_getSupplementalAttributesImpl( } } - const OUString* pSupplementalAttrs = aRequestedAttributes.getConstArray(); - const sal_Int32 nSupplementalLength = aRequestedAttributes.getLength(); - - for( sal_Int32 index = 0; index < nSupplementalLength; ++index ) + for( const OUString& rSupplementalAttr : aRequestedAttributes ) { - tAccParaPropValMap::const_iterator const aIter = aSupplementalAttrSeq.find( pSupplementalAttrs[index] ); + tAccParaPropValMap::const_iterator const aIter = aSupplementalAttrSeq.find( rSupplementalAttr ); if ( aIter != aSupplementalAttrSeq.end() ) { rSupplementalAttrSeq[ aIter->first ] = aIter->second; @@ -2643,10 +2620,8 @@ sal_Bool SwAccessibleParagraph::setAttributes( // build sorted index array sal_Int32 nLength = rAttributeSet.getLength(); const PropertyValue* pPairs = rAttributeSet.getConstArray(); - std::vector<sal_Int32> aIndices; - aIndices.reserve(nLength); - for (sal_Int32 i = 0; i < nLength; ++i) - aIndices.push_back(i); + std::vector<sal_Int32> aIndices(nLength); + std::iota(aIndices.begin(), aIndices.end(), 0); std::sort(aIndices.begin(), aIndices.end(), IndexCompare(pPairs)); // create sorted sequences according to index array diff --git a/sw/source/core/access/accselectionhelper.cxx b/sw/source/core/access/accselectionhelper.cxx index d37e7c1ba9be..8b1416b9d576 100644 --- a/sw/source/core/access/accselectionhelper.cxx +++ b/sw/source/core/access/accselectionhelper.cxx @@ -124,12 +124,8 @@ static bool lcl_getSelectedState(const SwAccessibleChild& aChild, if( pRStateSet.is() ) { Sequence<short> aStates = pRStateSet->getStates(); - sal_Int32 count = aStates.getLength(); - for( sal_Int32 i = 0; i < count; i++ ) - { - if( aStates[i] == AccessibleStateType::SELECTED) - return true; - } + if (std::find(aStates.begin(), aStates.end(), AccessibleStateType::SELECTED) != aStates.end()) + return true; } } return false; diff --git a/sw/source/core/doc/docglos.cxx b/sw/source/core/doc/docglos.cxx index e55d9e420871..ea05dac8a66f 100644 --- a/sw/source/core/doc/docglos.cxx +++ b/sw/source/core/doc/docglos.cxx @@ -57,9 +57,9 @@ void SwDoc::ReplaceUserDefinedDocumentProperties( uno::Sequence<beans::Property> tgtprops = xTargetUDSet->getPropertySetInfo()->getProperties(); - for (sal_Int32 i = 0; i < tgtprops.getLength(); ++i) { + for (const auto& rTgtProp : tgtprops) { try { - xTargetUD->removeProperty(tgtprops [i].Name); + xTargetUD->removeProperty(rTgtProp.Name); } catch (uno::Exception &) { // ignore } @@ -69,10 +69,10 @@ void SwDoc::ReplaceUserDefinedDocumentProperties( = xSourceUDSet->getPropertySetInfo(); uno::Sequence<beans::Property> srcprops = xSetInfo->getProperties(); - for (sal_Int32 i = 0; i < srcprops.getLength(); ++i) { + for (const auto& rSrcProp : srcprops) { try { - OUString name = srcprops[i].Name; - xTargetUD->addProperty(name, srcprops[i].Attributes, + OUString name = rSrcProp.Name; + xTargetUD->addProperty(name, rSrcProp.Attributes, xSourceUDSet->getPropertyValue(name)); } catch (uno::Exception &) { // ignore diff --git a/sw/source/core/doc/docxforms.cxx b/sw/source/core/doc/docxforms.cxx index 1c98d3aa7472..dc4088f734a9 100644 --- a/sw/source/core/doc/docxforms.cxx +++ b/sw/source/core/doc/docxforms.cxx @@ -93,12 +93,10 @@ void SwDoc::disposeXForms( ) { // iterate over all models uno::Sequence<OUString> aNames = mxXForms->getElementNames(); - const OUString* pNames = aNames.getConstArray(); - sal_Int32 nNames = aNames.getLength(); - for( sal_Int32 n = 0; (n < nNames); n++ ) + for( const OUString& rName : aNames ) { Reference< xforms::XModel > xModel( - mxXForms->getByName( pNames[n] ), UNO_QUERY ); + mxXForms->getByName( rName ), UNO_QUERY ); if( xModel.is() ) { diff --git a/sw/source/core/edit/edlingu.cxx b/sw/source/core/edit/edlingu.cxx index 335041745d0b..40df71f1500a 100644 --- a/sw/source/core/edit/edlingu.cxx +++ b/sw/source/core/edit/edlingu.cxx @@ -1000,19 +1000,16 @@ bool SwEditShell::GetGrammarCorrection( bRes = true; // get suggestions to use for the specific error position - sal_Int32 nErrors = rResult.aErrors.getLength(); rSuggestions.realloc( 0 ); - for (sal_Int32 i = 0; i < nErrors; ++i ) + // return suggestions for first error that includes the given error position + auto pError = std::find_if(rResult.aErrors.begin(), rResult.aErrors.end(), + [rErrorPosInText, nLen](const linguistic2::SingleProofreadingError &rError) { + return rError.nErrorStart <= rErrorPosInText + && rErrorPosInText + nLen <= rError.nErrorStart + rError.nErrorLength; }); + if (pError != rResult.aErrors.end()) { - // return suggestions for first error that includes the given error position - const linguistic2::SingleProofreadingError &rError = rResult.aErrors[i]; - if (rError.nErrorStart <= rErrorPosInText && - rErrorPosInText + nLen <= rError.nErrorStart + rError.nErrorLength) - { - rSuggestions = rError.aSuggestions; - rErrorIndexInResult = i; - break; - } + rSuggestions = pError->aSuggestions; + rErrorIndexInResult = static_cast<sal_Int32>(std::distance(rResult.aErrors.begin(), pError)); } } @@ -1533,15 +1530,10 @@ void SwSpellIter::CreatePortion(uno::Reference< XSpellAlternatives > const & xAl aPortion.aGrammarError = pGrammarResult->aErrors[0]; aPortion.sText = pGrammarResult->aText.copy( aPortion.aGrammarError.nErrorStart, aPortion.aGrammarError.nErrorLength ); aPortion.xGrammarChecker = pGrammarResult->xProofreader; - const beans::PropertyValue* pProperties = pGrammarResult->aProperties.getConstArray(); - for( sal_Int32 nProp = 0; nProp < pGrammarResult->aProperties.getLength(); ++nProp ) - { - if ( pProperties->Name == "DialogTitle" ) - { - pProperties->Value >>= aPortion.sDialogTitle; - break; - } - } + auto pProperty = std::find_if(pGrammarResult->aProperties.begin(), pGrammarResult->aProperties.end(), + [](const beans::PropertyValue& rProperty) { return rProperty.Name == "DialogTitle"; }); + if (pProperty != pGrammarResult->aProperties.end()) + pProperty->Value >>= aPortion.sDialogTitle; } } else diff --git a/sw/source/core/fields/authfld.cxx b/sw/source/core/fields/authfld.cxx index 92557eadf4d0..b42a91e56d65 100644 --- a/sw/source/core/fields/authfld.cxx +++ b/sw/source/core/fields/authfld.cxx @@ -399,23 +399,23 @@ void SwAuthorityFieldType::PutValue( const Any& rAny, sal_uInt16 nWhichId ) //TODO: Limiting to the first SAL_MAX_UINT16 elements of aSeq so that size of // m_SortKeyArr remains in range of sal_uInt16, as GetSortKeyCount and GetSortKey // still expect m_SortKeyArr to be indexed by sal_uInt16: - for(sal_Int32 i = 0; i < aSeq.getLength() && i < SAL_MAX_UINT16; i++) + auto nSize = std::min<sal_Int32>(aSeq.getLength(), SAL_MAX_UINT16); + for(sal_Int32 i = 0; i < nSize; i++) { - const PropertyValue* pValue = pValues[i].getConstArray(); SwTOXSortKey aSortKey; - for(sal_Int32 j = 0; j < pValues[i].getLength(); j++) + for(const PropertyValue& rValue : pValues[i]) { - if(pValue[j].Name == UNO_NAME_SORT_KEY) + if(rValue.Name == UNO_NAME_SORT_KEY) { - sal_Int16 nVal = -1; pValue[j].Value >>= nVal; + sal_Int16 nVal = -1; rValue.Value >>= nVal; if(nVal >= 0 && nVal < AUTH_FIELD_END) aSortKey.eField = static_cast<ToxAuthorityField>(nVal); else bRet = false; } - else if(pValue[j].Name == UNO_NAME_IS_SORT_ASCENDING) + else if(rValue.Name == UNO_NAME_IS_SORT_ASCENDING) { - aSortKey.bSortAscending = *o3tl::doAccess<bool>(pValue[j].Value); + aSortKey.bSortAscending = *o3tl::doAccess<bool>(rValue.Value); } } m_SortKeyArr.push_back(aSortKey); @@ -636,21 +636,20 @@ bool SwAuthorityField::PutValue( const Any& rAny, sal_uInt16 /*nWhichId*/ ) OUStringBuffer sBuf; comphelper::string::padToLength(sBuf, AUTH_FIELD_ISBN, TOX_STYLE_DELIMITER); OUString sToSet(sBuf.makeStringAndClear()); - const PropertyValue* pParam = aParam.getConstArray(); - for(sal_Int32 i = 0; i < aParam.getLength(); i++) + for(const PropertyValue& rParam : aParam) { - const sal_Int32 nFound = lcl_Find(pParam[i].Name); + const sal_Int32 nFound = lcl_Find(rParam.Name); if(nFound >= 0) { OUString sContent; if(AUTH_FIELD_AUTHORITY_TYPE == nFound) { sal_Int16 nVal = 0; - pParam[i].Value >>= nVal; + rParam.Value >>= nVal; sContent = OUString::number(nVal); } else - pParam[i].Value >>= sContent; + rParam.Value >>= sContent; sToSet = comphelper::string::setToken(sToSet, nFound, TOX_STYLE_DELIMITER, sContent); } } diff --git a/sw/source/core/fields/flddropdown.cxx b/sw/source/core/fields/flddropdown.cxx index cb7d706c3941..a90da4a2a4b7 100644 --- a/sw/source/core/fields/flddropdown.cxx +++ b/sw/source/core/fields/flddropdown.cxx @@ -111,9 +111,7 @@ void SwDropDownField::SetItems(const uno::Sequence<OUString> & rItems) { aValues.clear(); - sal_Int32 aCount = rItems.getLength(); - for (int i = 0; i < aCount; i++) - aValues.push_back(rItems[i]); + comphelper::sequenceToContainer(aValues, rItems); aSelectedItem.clear(); } diff --git a/sw/source/core/unocore/SwXTextDefaults.cxx b/sw/source/core/unocore/SwXTextDefaults.cxx index ffbbb29f2217..41c094d6fb96 100644 --- a/sw/source/core/unocore/SwXTextDefaults.cxx +++ b/sw/source/core/unocore/SwXTextDefaults.cxx @@ -174,12 +174,10 @@ PropertyState SAL_CALL SwXTextDefaults::getPropertyState( const OUString& rPrope Sequence< PropertyState > SAL_CALL SwXTextDefaults::getPropertyStates( const Sequence< OUString >& rPropertyNames ) { const sal_Int32 nCount = rPropertyNames.getLength(); - const OUString * pNames = rPropertyNames.getConstArray(); Sequence < PropertyState > aRet ( nCount ); - PropertyState *pState = aRet.getArray(); - for ( sal_Int32 nIndex = 0; nIndex < nCount; nIndex++) - pState[nIndex] = getPropertyState( pNames[nIndex] ); + std::transform(rPropertyNames.begin(), rPropertyNames.end(), aRet.begin(), + [this](const OUString& rName) -> PropertyState { return getPropertyState(rName); }); return aRet; } diff --git a/sw/source/core/unocore/unochart.cxx b/sw/source/core/unocore/unochart.cxx index d2dc97d216f5..eb81443bf984 100644 --- a/sw/source/core/unocore/unochart.cxx +++ b/sw/source/core/unocore/unochart.cxx @@ -548,39 +548,38 @@ uno::Reference< chart2::data::XDataSource > SwChartDataProvider::Impl_createData OSL_ENSURE( nArgs != 0, "no properties provided" ); if (nArgs == 0) return xRes; - const beans::PropertyValue *pArg = rArguments.getConstArray(); - for (sal_Int32 i = 0; i < nArgs; ++i) + for (const beans::PropertyValue& rArg : rArguments) { - if ( pArg[i].Name == "DataRowSource" ) + if ( rArg.Name == "DataRowSource" ) { chart::ChartDataRowSource eSource; - if (!(pArg[i].Value >>= eSource)) + if (!(rArg.Value >>= eSource)) { sal_Int32 nTmp = 0; - if (!(pArg[i].Value >>= nTmp)) + if (!(rArg.Value >>= nTmp)) throw lang::IllegalArgumentException(); eSource = static_cast< chart::ChartDataRowSource >( nTmp ); } bDtaSrcIsColumns = eSource == chart::ChartDataRowSource_COLUMNS; } - else if ( pArg[i].Name == "FirstCellAsLabel" ) + else if ( rArg.Name == "FirstCellAsLabel" ) { - if (!(pArg[i].Value >>= bFirstIsLabel)) + if (!(rArg.Value >>= bFirstIsLabel)) throw lang::IllegalArgumentException(); } - else if ( pArg[i].Name == "CellRangeRepresentation" ) + else if ( rArg.Name == "CellRangeRepresentation" ) { - if (!(pArg[i].Value >>= aRangeRepresentation)) + if (!(rArg.Value >>= aRangeRepresentation)) throw lang::IllegalArgumentException(); } - else if ( pArg[i].Name == "SequenceMapping" ) + else if ( rArg.Name == "SequenceMapping" ) { - if (!(pArg[i].Value >>= aSequenceMapping)) + if (!(rArg.Value >>= aSequenceMapping)) throw lang::IllegalArgumentException(); } - else if ( pArg[i].Name == "ChartOleObjectName" ) + else if ( rArg.Name == "ChartOleObjectName" ) { - if (!(pArg[i].Value >>= aChartOleObjectName)) + if (!(rArg.Value >>= aChartOleObjectName)) throw lang::IllegalArgumentException(); } } @@ -642,13 +641,12 @@ uno::Reference< chart2::data::XDataSource > SwChartDataProvider::Impl_createData throw lang::IllegalArgumentException(); SortSubranges( aSubRanges, bDtaSrcIsColumns ); - const OUString *pSubRanges = aSubRanges.getConstArray(); // get table format for that single table from above SwFrameFormat *pTableFormat = nullptr; // pointer to table format std::shared_ptr<SwUnoCursor> pUnoCursor; // here required to check if the cells in the range do actually exist if (aSubRanges.hasElements()) - GetFormatAndCreateCursorFromRangeRep( pDoc, pSubRanges[0], &pTableFormat, pUnoCursor ); + GetFormatAndCreateCursorFromRangeRep( pDoc, aSubRanges[0], &pTableFormat, pUnoCursor ); if (!pTableFormat || !pUnoCursor) throw lang::IllegalArgumentException(); @@ -669,12 +667,11 @@ uno::Reference< chart2::data::XDataSource > SwChartDataProvider::Impl_createData //!! by proceeding this way we automatically get rid of //!! multiple listed or overlapping cell ranges which should //!! just be ignored silently - sal_Int32 nSubRanges = aSubRanges.getLength(); - for (sal_Int32 i = 0; i < nSubRanges; ++i) + for (const OUString& rSubRange : aSubRanges) { OUString aTableName, aStartCell, aEndCell; bool bOk2 = GetTableAndCellsFromRangeRep( - pSubRanges[i], aTableName, aStartCell, aEndCell ); + rSubRange, aTableName, aStartCell, aEndCell ); OSL_ENSURE(bOk2, "failed to get table and start/end cells"); sal_Int32 nStartRow, nStartCol, nEndRow, nEndCol; @@ -879,19 +876,16 @@ uno::Reference< chart2::data::XDataSource > SwChartDataProvider::Impl_createData } // apply 'SequenceMapping' if it was provided - sal_Int32 nSequenceMappingLen = aSequenceMapping.getLength(); - if (nSequenceMappingLen) + if (aSequenceMapping.hasElements()) { - sal_Int32 *pSequenceMapping = aSequenceMapping.getArray(); uno::Sequence<uno::Reference<chart2::data::XLabeledDataSequence>> aOld_LDS(aLDS); uno::Reference<chart2::data::XLabeledDataSequence>* pOld_LDS = aOld_LDS.getArray(); sal_Int32 nNewCnt = 0; - for (sal_Int32 i = 0; i < nSequenceMappingLen; ++i) + for (sal_Int32 nIdx : aSequenceMapping) { // check that index to be used is valid // and has not yet been used - sal_Int32 nIdx = pSequenceMapping[i]; if (0 <= nIdx && nIdx < nNumLDS && pOld_LDS[nIdx].is()) { pLDS[nNewCnt++] = pOld_LDS[nIdx]; @@ -1238,14 +1232,12 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SwChartDataProvider::detectArgume uno::Sequence< OUString > aSortedRanges; GetSubranges( aCellRanges, aSortedRanges, false /*sub ranges should already be normalized*/ ); SortSubranges( aSortedRanges, (nDtaSrcIsColumns == 1) ); - sal_Int32 nSortedRanges = aSortedRanges.getLength(); - const OUString *pSortedRanges = aSortedRanges.getConstArray(); OUString aSortedCellRanges; - for (sal_Int32 i = 0; i < nSortedRanges; ++i) + for (const OUString& rSortedRange : aSortedRanges) { if (!aSortedCellRanges.isEmpty()) aSortedCellRanges += ";"; - aSortedCellRanges += pSortedRanges[i]; + aSortedCellRanges += rSortedRange; } // build value for 'SequenceMapping' diff --git a/sw/source/core/unocore/unocoll.cxx b/sw/source/core/unocore/unocoll.cxx index dcc16bd7aa30..e9c1a8ba7c27 100644 --- a/sw/source/core/unocore/unocoll.cxx +++ b/sw/source/core/unocore/unocoll.cxx @@ -124,14 +124,11 @@ public: uno::Sequence< OUString > sModuleNames = xLib->getElementNames(); uno::Reference< script::vba::XVBAModuleInfo > xVBAModuleInfo( xLib, uno::UNO_QUERY ); - for ( sal_Int32 i=0; i < sModuleNames.getLength(); ++i ) - { - if ( xVBAModuleInfo->hasModuleInfo( sModuleNames[ i ] ) && xVBAModuleInfo->getModuleInfo( sModuleNames[ i ] ).ModuleType == script::ModuleType::DOCUMENT ) - { - msThisDocumentCodeName = sModuleNames[ i ]; - break; - } - } + auto pModuleName = std::find_if(sModuleNames.begin(), sModuleNames.end(), [&xVBAModuleInfo](const OUString& rName) { + return xVBAModuleInfo->hasModuleInfo(rName) + && xVBAModuleInfo->getModuleInfo(rName).ModuleType == script::ModuleType::DOCUMENT; }); + if (pModuleName != sModuleNames.end()) + msThisDocumentCodeName = *pModuleName; } catch( uno::Exception& ) { diff --git a/sw/source/core/unocore/unocrsrhelper.cxx b/sw/source/core/unocore/unocrsrhelper.cxx index 2e935b87477c..b00e4fb9ee67 100644 --- a/sw/source/core/unocore/unocrsrhelper.cxx +++ b/sw/source/core/unocore/unocrsrhelper.cxx @@ -1223,9 +1223,9 @@ void makeRedline( SwPaM const & rPaM, std::vector<sal_uInt16> aWhichPairs; std::vector<SfxItemPropertySimpleEntry const*> aEntries; aEntries.reserve(aRevertProperties.getLength()); - for (sal_Int32 i = 0; i < aRevertProperties.getLength(); ++i) + for (const auto& rRevertProperty : aRevertProperties) { - const OUString &rPropertyName = aRevertProperties[i].Name; + const OUString &rPropertyName = rRevertProperty.Name; SfxItemPropertySimpleEntry const* pEntry = rPropSet.getPropertyMap().getByName(rPropertyName); if (!pEntry) diff --git a/sw/source/core/unocore/unodraw.cxx b/sw/source/core/unocore/unodraw.cxx index 58fdfa68d696..712342578872 100644 --- a/sw/source/core/unocore/unodraw.cxx +++ b/sw/source/core/unocore/unodraw.cxx @@ -2656,20 +2656,14 @@ css::drawing::PolyPolygonBezierCoords SwXShape::ConvertPolyPolygonBezierToLayout const basegfx::B2DHomMatrix aMatrix(basegfx::utils::createTranslateB2DHomMatrix( aTranslateDiff.X, aTranslateDiff.Y)); - const sal_Int32 nOuterSequenceCount(aConvertedPath.Coordinates.getLength()); - drawing::PointSequence* pInnerSequence = aConvertedPath.Coordinates.getArray(); - for(sal_Int32 a(0); a < nOuterSequenceCount; a++) + for(drawing::PointSequence& rInnerSequence : aConvertedPath.Coordinates) { - const sal_Int32 nInnerSequenceCount(pInnerSequence->getLength()); - awt::Point* pArray = pInnerSequence->getArray(); - - for(sal_Int32 b(0); b < nInnerSequenceCount; b++) + for(awt::Point& rPoint : rInnerSequence) { - basegfx::B2DPoint aNewCoordinatePair(pArray->X, pArray->Y); + basegfx::B2DPoint aNewCoordinatePair(rPoint.X, rPoint.Y); aNewCoordinatePair *= aMatrix; - pArray->X = basegfx::fround(aNewCoordinatePair.getX()); - pArray->Y = basegfx::fround(aNewCoordinatePair.getY()); - pArray++; + rPoint.X = basegfx::fround(aNewCoordinatePair.getX()); + rPoint.Y = basegfx::fround(aNewCoordinatePair.getY()); } } } diff --git a/sw/source/core/unocore/unoevent.cxx b/sw/source/core/unocore/unoevent.cxx index 823de312d97b..d3ddb75ed719 100644 --- a/sw/source/core/unocore/unoevent.cxx +++ b/sw/source/core/unocore/unoevent.cxx @@ -142,11 +142,9 @@ void SwHyperlinkEventDescriptor::copyMacrosFromNameReplace( { // iterate over all names (all names that *we* support) Sequence<OUString> aNames = getElementNames(); - sal_Int32 nCount = aNames.getLength(); - for(sal_Int32 i = 0; i < nCount; i++) + for(const OUString& rName : aNames) { // copy element for that name - const OUString& rName = aNames[i]; if (xReplace->hasByName(rName)) { SvBaseEventDescriptor::replaceByName(rName, diff --git a/sw/source/core/unocore/unoflatpara.cxx b/sw/source/core/unocore/unoflatpara.cxx index 099cf4a999df..909e6fc069e2 100644 --- a/sw/source/core/unocore/unoflatpara.cxx +++ b/sw/source/core/unocore/unoflatpara.cxx @@ -268,8 +268,8 @@ void SAL_CALL SwXFlatParagraph::changeText(::sal_Int32 nPos, ::sal_Int32 nLen, c uno::Reference< beans::XPropertySet > xPropSet( xRange, uno::UNO_QUERY ); if ( xPropSet.is() ) { - for ( sal_Int32 i = 0; i < aAttributes.getLength(); ++i ) - xPropSet->setPropertyValue( aAttributes[i].Name, aAttributes[i].Value ); + for ( const auto& rAttribute : aAttributes ) + xPropSet->setPropertyValue( rAttribute.Name, rAttribute.Value ); } IDocumentContentOperations& rIDCO = pOldTextNode->getIDocumentContentOperations(); @@ -301,8 +301,8 @@ void SAL_CALL SwXFlatParagraph::changeAttributes(::sal_Int32 nPos, ::sal_Int32 n uno::Reference< beans::XPropertySet > xPropSet( xRange, uno::UNO_QUERY ); if ( xPropSet.is() ) { - for ( sal_Int32 i = 0; i < aAttributes.getLength(); ++i ) - xPropSet->setPropertyValue( aAttributes[i].Name, aAttributes[i].Value ); + for ( const auto& rAttribute : aAttributes ) + xPropSet->setPropertyValue( rAttribute.Name, rAttribute.Value ); } ClearTextNode(); // TODO: is this really needed? diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx index a4d54beabdd0..8c41d7fbe0fd 100644 --- a/sw/source/core/unocore/unoframe.cxx +++ b/sw/source/core/unocore/unoframe.cxx @@ -1479,11 +1479,10 @@ void SwXFrame::setPropertyValue(const OUString& rPropertyName, const ::uno::Any& else if(aValue >>= aParam) { tools::PolyPolygon aPoly(static_cast<sal_uInt16>(aParam.getLength())); - for(sal_Int32 i = 0; i < aParam.getLength(); i++) + for(const ::drawing::PointSequence& rPointSeq : aParam) { - const ::drawing::PointSequence* pPointSeq = aParam.getConstArray(); - sal_Int32 nPoints = pPointSeq[i].getLength(); - const ::awt::Point* pPoints = pPointSeq[i].getConstArray(); + sal_Int32 nPoints = rPointSeq.getLength(); + const ::awt::Point* pPoints = rPointSeq.getConstArray(); tools::Polygon aSet( static_cast<sal_uInt16>(nPoints) ); for(sal_Int32 j = 0; j < nPoints; j++) { @@ -2461,8 +2460,7 @@ uno::Sequence< beans::PropertyState > SwXFrame::getPropertyStates( } else if(IsDescriptor()) { - for(int i = 0; i < aPropertyNames.getLength(); i++) - pStates[i] = beans::PropertyState_DIRECT_VALUE; + std::fill(aStates.begin(), aStates.end(), beans::PropertyState_DIRECT_VALUE); } else throw uno::RuntimeException(); diff --git a/sw/source/core/unocore/unoidx.cxx b/sw/source/core/unocore/unoidx.cxx index f9bae53a53fc..48ac53e30dcd 100644 --- a/sw/source/core/unocore/unoidx.cxx +++ b/sw/source/core/unocore/unoidx.cxx @@ -2700,12 +2700,10 @@ SwXDocumentIndex::TokenAccess_Impl::replaceByIndex( } OUStringBuffer sPattern; - const sal_Int32 nTokens = aSeq.getLength(); - const beans::PropertyValues* pTokens = aSeq.getConstArray(); - for(sal_Int32 i = 0; i < nTokens; i++) + for(const beans::PropertyValues& rToken : aSeq) { - const beans::PropertyValue* pProperties = pTokens[i].getConstArray(); - const sal_Int32 nProperties = pTokens[i].getLength(); + const beans::PropertyValue* pProperties = rToken.getConstArray(); + const sal_Int32 nProperties = rToken.getLength(); //create an invalid token SwFormToken aToken(TOKEN_END); for(sal_Int32 j = 0; j < nProperties; j++) diff --git a/sw/source/core/unocore/unoobj.cxx b/sw/source/core/unocore/unoobj.cxx index 03699a2ee9d2..cc13a87a6767 100644 --- a/sw/source/core/unocore/unoobj.cxx +++ b/sw/source/core/unocore/unoobj.cxx @@ -1786,9 +1786,9 @@ void SwUnoCursorHelper::SetPropertyValues( std::vector<sal_uInt16> aWhichPairs; std::vector<SfxItemPropertySimpleEntry const*> aEntries; aEntries.reserve(rPropertyValues.getLength()); - for (sal_Int32 i = 0; i < rPropertyValues.getLength(); ++i) + for (const auto& rPropVal : rPropertyValues) { - const OUString &rPropertyName = rPropertyValues[i].Name; + const OUString &rPropertyName = rPropVal.Name; SfxItemPropertySimpleEntry const* pEntry = rPropSet.getPropertyMap().getByName(rPropertyName); @@ -2263,8 +2263,8 @@ SwXTextCursor::getPropertyValues( const uno::Sequence< OUString >& aPropertyName { // a banal implementation for now uno::Sequence< uno::Any > aValues( aPropertyNames.getLength() ); - for (sal_Int32 i = 0; i < aPropertyNames.getLength(); i++) - aValues[i] = getPropertyValue( aPropertyNames[ i ] ); + std::transform(aPropertyNames.begin(), aPropertyNames.end(), aValues.begin(), + [this](const OUString& rName) -> uno::Any { return getPropertyValue( rName ); }); return aValues; } @@ -2350,32 +2350,30 @@ SwXTextCursor::setPropertiesToDefault( SwUnoCursor & rUnoCursor( m_pImpl->GetCursorOrThrow() ); - const sal_Int32 nCount = rPropertyNames.getLength(); - if ( nCount ) + if ( rPropertyNames.hasElements() ) { SwDoc & rDoc = *rUnoCursor.GetDoc(); - const OUString * pNames = rPropertyNames.getConstArray(); std::set<sal_uInt16> aWhichIds; std::set<sal_uInt16> aParaWhichIds; - for (sal_Int32 i = 0; i < nCount; i++) + for (const OUString& rName : rPropertyNames) { SfxItemPropertySimpleEntry const*const pEntry = - m_pImpl->m_rPropSet.getPropertyMap().getByName( pNames[i] ); + m_pImpl->m_rPropSet.getPropertyMap().getByName( rName ); if (!pEntry) { - if (pNames[i] == UNO_NAME_IS_SKIP_HIDDEN_TEXT || - pNames[i] == UNO_NAME_IS_SKIP_PROTECTED_TEXT) + if (rName == UNO_NAME_IS_SKIP_HIDDEN_TEXT || + rName == UNO_NAME_IS_SKIP_PROTECTED_TEXT) { continue; } throw beans::UnknownPropertyException( - "Unknown property: " + pNames[i], + "Unknown property: " + rName, static_cast<cppu::OWeakObject *>(this)); } if (pEntry->nFlags & beans::PropertyAttribute::READONLY) { throw uno::RuntimeException( - "setPropertiesToDefault: property is read-only: " + pNames[i], + "setPropertiesToDefault: property is read-only: " + rName, static_cast<cppu::OWeakObject *>(this)); } @@ -2586,7 +2584,6 @@ bool SwUnoCursorHelper::ConvertSortProperties( SwSortOptions& rSortOpt) { bool bRet = true; - const beans::PropertyValue* pProperties = rDescriptor.getConstArray(); rSortOpt.bTable = false; rSortOpt.cDeli = ' '; @@ -2611,10 +2608,10 @@ bool SwUnoCursorHelper::ConvertSortProperties( bool bOldSortdescriptor(false); bool bNewSortdescriptor(false); - for (sal_Int32 n = 0; n < rDescriptor.getLength(); ++n) + for (const beans::PropertyValue& rProperty : rDescriptor) { - uno::Any aValue( pProperties[n].Value ); - const OUString& rPropName = pProperties[n].Name; + uno::Any aValue( rProperty.Value ); + const OUString& rPropName = rProperty.Name; // old and new sortdescriptor if ( rPropName == "IsSortInTable" ) diff --git a/sw/source/core/unocore/unoparagraph.cxx b/sw/source/core/unocore/unoparagraph.cxx index ce9a7d5ce5ff..f7c7949b1e34 100644 --- a/sw/source/core/unocore/unoparagraph.cxx +++ b/sw/source/core/unocore/unoparagraph.cxx @@ -707,17 +707,11 @@ SwXParagraph::getPropertyValuesTolerant( uno::Sequence< beans::GetDirectPropertyTolerantResult > aTmpRes( m_pImpl->GetPropertyValuesTolerant_Impl( rPropertyNames, false ) ); - const beans::GetDirectPropertyTolerantResult *pTmpRes = - aTmpRes.getConstArray(); // copy temporary result to final result type const sal_Int32 nLen = aTmpRes.getLength(); uno::Sequence< beans::GetPropertyTolerantResult > aRes( nLen ); - beans::GetPropertyTolerantResult *pRes = aRes.getArray(); - for (sal_Int32 i = 0; i < nLen; i++) - { - *pRes++ = *pTmpRes++; - } + std::copy(aTmpRes.begin(), aTmpRes.end(), aRes.begin()); return aRes; } @@ -746,7 +740,6 @@ SwXParagraph::Impl::GetPropertyValuesTolerant_Impl( const SwAttrSet& rValueAttrSet = rTextNode.GetSwAttrSet(); sal_Int32 nProps = rPropertyNames.getLength(); - const OUString *pProp = rPropertyNames.getConstArray(); uno::Sequence< beans::GetDirectPropertyTolerantResult > aResult( nProps ); beans::GetDirectPropertyTolerantResult *pResult = aResult.getArray(); @@ -755,17 +748,17 @@ SwXParagraph::Impl::GetPropertyValuesTolerant_Impl( // get entry to start with const SfxItemPropertyMap &rPropMap = m_rPropSet.getPropertyMap(); - for (sal_Int32 i = 0; i < nProps; ++i) + for (const OUString& rProp : rPropertyNames) { OSL_ENSURE( nIdx < nProps, "index out ouf bounds" ); beans::GetDirectPropertyTolerantResult &rResult = pResult[nIdx]; try { - rResult.Name = pProp[i]; + rResult.Name = rProp; SfxItemPropertySimpleEntry const*const pEntry = - rPropMap.getByName( pProp[i] ); + rPropMap.getByName( rProp ); if (!pEntry) // property available? { rResult.Result = @@ -788,7 +781,7 @@ SwXParagraph::Impl::GetPropertyValuesTolerant_Impl( // (compare to SwXParagraph::getPropertyValue(s)) uno::Any aValue; if (! ::sw::GetDefaultTextContentValue( - aValue, pProp[i], pEntry->nWID ) ) + aValue, rProp, pEntry->nWID ) ) { SwPosition aPos( rTextNode ); SwPaM aPam( aPos ); diff --git a/sw/source/core/unocore/unoport.cxx b/sw/source/core/unocore/unoport.cxx index 7c03d12a7623..e97e65b32f98 100644 --- a/sw/source/core/unocore/unoport.cxx +++ b/sw/source/core/unocore/unoport.cxx @@ -377,7 +377,7 @@ uno::Sequence< uno::Any > SwXTextPortion::GetPropertyValues_Impl( { sal_Int32 nLength = rPropertyNames.getLength(); const OUString *pPropertyNames = rPropertyNames.getConstArray(); - uno::Sequence< uno::Any > aValues(rPropertyNames.getLength()); + uno::Sequence< uno::Any > aValues(nLength); uno::Any *pValues = aValues.getArray(); SwUnoCursor& rUnoCursor = GetCursor(); @@ -555,14 +555,11 @@ uno::Sequence< beans::GetPropertyTolerantResult > SAL_CALL SwXTextPortion::getPr uno::Sequence< beans::GetDirectPropertyTolerantResult > aTmpRes( GetPropertyValuesTolerant_Impl( rPropertyNames, false ) ); - const beans::GetDirectPropertyTolerantResult *pTmpRes = aTmpRes.getConstArray(); // copy temporary result to final result type sal_Int32 nLen = aTmpRes.getLength(); uno::Sequence< beans::GetPropertyTolerantResult > aRes( nLen ); - beans::GetPropertyTolerantResult *pRes = aRes.getArray(); - for (sal_Int32 i = 0; i < nLen; i++) - *pRes++ = *pTmpRes++; + std::copy(aTmpRes.begin(), aTmpRes.end(), aRes.begin()); return aRes; } diff --git a/sw/source/core/unocore/unosett.cxx b/sw/source/core/unocore/unosett.cxx index 54cac96775b1..7e32b867274a 100644 --- a/sw/source/core/unocore/unosett.cxx +++ b/sw/source/core/unocore/unosett.cxx @@ -79,6 +79,7 @@ #include <svl/listener.hxx> #include <paratr.hxx> #include <sal/log.hxx> +#include <numeric> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -1592,12 +1593,10 @@ void SwXNumberingRules::SetPropertiesToNumFormat( InChapterLast = 24 }; - const beans::PropertyValue* pPropArray = rProperties.getConstArray(); std::vector<PropertyValue const*> aPropertyValues; bool bExcept = false; - for(sal_Int32 i = 0; i < rProperties.getLength() && !bExcept; i++) + for(const beans::PropertyValue& rProp : rProperties) { - const beans::PropertyValue& rProp = pPropArray[i]; bExcept = true; for(size_t j = 0; j < SAL_N_ELEMENTS( aNumPropertyNames ); j++) { @@ -1617,6 +1616,8 @@ void SwXNumberingRules::SetPropertiesToNumFormat( } SAL_WARN_IF( bExcept, "sw.uno", "Unknown/incorrect property " << rProp.Name << ", failing" ); aPropertyValues.push_back(& rProp); + if(bExcept) + break; } bool bWrongArg = false; @@ -2402,12 +2403,8 @@ uno::Sequence< TextColumn > SwXTextColumns::getColumns() void SwXTextColumns::setColumns(const uno::Sequence< TextColumn >& rColumns) { SolarMutexGuard aGuard; - sal_Int32 nReferenceTemp = 0; - const TextColumn* prCols = rColumns.getConstArray(); - for(long i = 0; i < rColumns.getLength(); i++) - { - nReferenceTemp += prCols[i].Width; - } + sal_Int32 nReferenceTemp = std::accumulate(rColumns.begin(), rColumns.end(), sal_Int32(0), + [](const sal_Int32 nSum, const TextColumn& rCol) { return nSum + rCol.Width; }); m_bIsAutomaticWidth = false; m_nReference = !nReferenceTemp ? USHRT_MAX : nReferenceTemp; m_aTextColumns = rColumns; diff --git a/sw/source/core/unocore/unosrch.cxx b/sw/source/core/unocore/unosrch.cxx index 427791fc7e5d..93dee1364529 100644 --- a/sw/source/core/unocore/unosrch.cxx +++ b/sw/source/core/unocore/unosrch.cxx @@ -71,24 +71,21 @@ SwSearchProperties_Impl::SwSearchProperties_Impl() : void SwSearchProperties_Impl::SetProperties(const uno::Sequence< beans::PropertyValue >& aSearchAttribs) { - const beans::PropertyValue* pProps = aSearchAttribs.getConstArray(); - //delete all existing values for(size_t i = 0; i < aPropertyEntries.size(); ++i) { pValueArr[i].reset(); } - const sal_uInt32 nLen = aSearchAttribs.getLength(); - for(sal_uInt32 i = 0; i < nLen; ++i) + for(const beans::PropertyValue& rSearchAttrib : aSearchAttribs) { - const OUString& sName = pProps[i].Name; + const OUString& sName = rSearchAttrib.Name; auto aIt = std::find_if(aPropertyEntries.begin(), aPropertyEntries.end(), [&sName](const SfxItemPropertyNamedEntry& rProp) { return rProp.sName == sName; }); if( aIt == aPropertyEntries.end() ) throw beans::UnknownPropertyException(); auto nIndex = static_cast<sal_uInt32>(std::distance(aPropertyEntries.begin(), aIt)); - pValueArr[nIndex].reset( new beans::PropertyValue(pProps[i]) ); + pValueArr[nIndex].reset( new beans::PropertyValue(rSearchAttrib) ); } } diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx index 4f1d0571380b..204a3a737358 100644 --- a/sw/source/core/unocore/unostyle.cxx +++ b/sw/source/core/unocore/unostyle.cxx @@ -3532,17 +3532,15 @@ uno::Reference< style::XAutoStyle > SwXAutoStyleFamily::insertStyle( throw uno::RuntimeException(); SwAttrSet aSet( m_pDocShell->GetDoc()->GetAttrPool(), pRange ); - const beans::PropertyValue* pSeq = Values.getConstArray(); - sal_Int32 nLen = Values.getLength(); const bool bTakeCareOfDrawingLayerFillStyle(IStyleAccess::AUTO_STYLE_PARA == m_eFamily); if(!bTakeCareOfDrawingLayerFillStyle) { - for( sal_Int32 i = 0; i < nLen; ++i ) + for( const beans::PropertyValue& rValue : Values ) { try { - pPropSet->setPropertyValue( pSeq[i].Name, pSeq[i].Value, aSet ); + pPropSet->setPropertyValue( rValue.Name, rValue.Value, aSet ); } catch (const beans::UnknownPropertyException &) { @@ -3566,10 +3564,10 @@ uno::Reference< style::XAutoStyle > SwXAutoStyleFamily::insertStyle( // used slots functionality here to do this correctly const SfxItemPropertyMap& rMap = pPropSet->getPropertyMap(); - for( sal_Int32 i = 0; i < nLen; ++i ) + for( const beans::PropertyValue& rValue : Values ) { - const OUString& rPropName = pSeq[i].Name; - uno::Any aValue(pSeq[i].Value); + const OUString& rPropName = rValue.Name; + uno::Any aValue(rValue.Value); const SfxItemPropertySimpleEntry* pEntry = rMap.getByName(rPropName); if (!pEntry) diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx index 204cf81cf677..992c8be80532 100644 --- a/sw/source/core/unocore/unotext.cxx +++ b/sw/source/core/unocore/unotext.cxx @@ -1448,16 +1448,13 @@ SwXText::insertTextContentWithProperties( { try { - const sal_Int32 nLen(rCharacterAndParagraphProperties.getLength()); const uno::Reference< beans::XPropertySet > xAnchor( xTextContent->getAnchor(), uno::UNO_QUERY); if (xAnchor.is()) { - for (sal_Int32 nElement = 0; nElement < nLen; ++nElement) + for (const auto& rProperty : rCharacterAndParagraphProperties) { - xAnchor->setPropertyValue( - rCharacterAndParagraphProperties[nElement].Name, - rCharacterAndParagraphProperties[nElement].Value); + xAnchor->setPropertyValue(rProperty.Name, rProperty.Value); } } } @@ -1673,11 +1670,9 @@ SwXText::convertToTextFrame( rNewFrame.SetSelection( aStartPam ); try { - const beans::PropertyValue* pValues = rFrameProperties.getConstArray(); - for (sal_Int32 nProp = 0; nProp < rFrameProperties.getLength(); ++nProp) + for (const beans::PropertyValue& rValue : rFrameProperties) { - rNewFrame.SwXFrame::setPropertyValue( - pValues[nProp].Name, pValues[nProp].Value); + rNewFrame.SwXFrame::setPropertyValue(rValue.Name, rValue.Value); } { // has to be in a block to remove the SwIndexes before @@ -1975,20 +1970,17 @@ lcl_ApplyRowProperties( { uno::Reference< beans::XPropertySet > xRow; rRow >>= xRow; - const beans::PropertyValue* pProperties = rRowProperties.getConstArray(); - for (sal_Int32 nProperty = 0; nProperty < rRowProperties.getLength(); - ++nProperty) + for (const beans::PropertyValue& rProperty : rRowProperties) { - if ( pProperties[ nProperty ].Name == "TableColumnSeparators" ) + if ( rProperty.Name == "TableColumnSeparators" ) { // add the separators to access the cell's positions // for vertical merging later TableColumnSeparators aSeparators; - pProperties[ nProperty ].Value >>= aSeparators; + rProperty.Value >>= aSeparators; rRowSeparators = aSeparators; } - xRow->setPropertyValue( - pProperties[ nProperty ].Name, pProperties[ nProperty ].Value); + xRow->setPropertyValue(rProperty.Name, rProperty.Value); } } @@ -2008,12 +2000,11 @@ lcl_ApplyCellProperties( const uno::Reference< uno::XInterface >& xCell, std::vector<VerticallyMergedCell> & rMergedCells) { - const sal_Int32 nCellProperties = rCellProperties.getLength(); const uno::Reference< beans::XPropertySet > xCellPS(xCell, uno::UNO_QUERY); - for (sal_Int32 nProperty = 0; nProperty < nCellProperties; ++nProperty) + for (const auto& rCellProperty : rCellProperties) { - const OUString & rName = rCellProperties[nProperty].Name; - const uno::Any & rValue = rCellProperties[nProperty].Value; + const OUString & rName = rCellProperty.Name; + const uno::Any & rValue = rCellProperty.Value; if ( rName == "VerticalMerge" ) { // determine left border position diff --git a/sw/source/core/unocore/unotextmarkup.cxx b/sw/source/core/unocore/unotextmarkup.cxx index 1cd5d76e779a..955793003b4a 100644 --- a/sw/source/core/unocore/unotextmarkup.cxx +++ b/sw/source/core/unocore/unotextmarkup.cxx @@ -396,31 +396,26 @@ void SAL_CALL SwXTextMarkup::commitMultiTextMarkup( if (!m_pImpl->m_pTextNode) return; - // check for equal length of all sequences - sal_Int32 nLen = rMarkups.getLength(); - // for grammar checking there should be exactly one sentence markup // and 0..n grammar markups. // Different markups are not expected but may be applied anyway since // that should be no problem... // but it has to be implemented, at the moment only this function is for // grammar markups and sentence markup only! - sal_Int32 nSentenceMarkUpIndex = -1; - const text::TextMarkupDescriptor *pMarkups = rMarkups.getConstArray(); - sal_Int32 i; - for( i = 0; i < nLen; ++i ) + const text::TextMarkupDescriptor *pSentenceMarkUp = nullptr; + for( const text::TextMarkupDescriptor &rDesc : rMarkups ) { - if (pMarkups[i].nType == text::TextMarkupType::SENTENCE) + if (rDesc.nType == text::TextMarkupType::SENTENCE) { - if (nSentenceMarkUpIndex != -1) + if (pSentenceMarkUp != nullptr) throw lang::IllegalArgumentException(); // there is already one sentence markup - nSentenceMarkUpIndex = i; + pSentenceMarkUp = &rDesc; } - else if( pMarkups[i].nType != text::TextMarkupType::PROOFREADING ) + else if( rDesc.nType != text::TextMarkupType::PROOFREADING ) return; } - if( nSentenceMarkUpIndex == -1 ) + if( pSentenceMarkUp == nullptr ) return; // get appropriate list to use... @@ -449,16 +444,15 @@ void SAL_CALL SwXTextMarkup::commitMultiTextMarkup( { const ModelToViewHelper::ModelPosition aSentenceEnd = m_pImpl->m_ConversionMap.ConvertToModelPosition( - pMarkups[nSentenceMarkUpIndex].nOffset + pMarkups[nSentenceMarkUpIndex].nLength ); + pSentenceMarkUp->nOffset + pSentenceMarkUp->nLength ); bAcceptGrammarError = aSentenceEnd.mnPos > pWList->GetBeginInv(); pWList->ClearGrammarList( aSentenceEnd.mnPos ); } if( bAcceptGrammarError ) { - for( i = 0; i < nLen; ++i ) + for( const text::TextMarkupDescriptor &rDesc : rMarkups ) { - const text::TextMarkupDescriptor &rDesc = pMarkups[i]; lcl_commitGrammarMarkUp(m_pImpl->m_ConversionMap, pWList, rDesc.nType, rDesc.aIdentifier, rDesc.nOffset, rDesc.nLength, rDesc.xMarkupInfoContainer ); } @@ -466,8 +460,7 @@ void SAL_CALL SwXTextMarkup::commitMultiTextMarkup( else { bRepaint = false; - i = nSentenceMarkUpIndex; - const text::TextMarkupDescriptor &rDesc = pMarkups[i]; + const text::TextMarkupDescriptor &rDesc = *pSentenceMarkUp; lcl_commitGrammarMarkUp(m_pImpl->m_ConversionMap, pWList, rDesc.nType, rDesc.aIdentifier, rDesc.nOffset, rDesc.nLength, rDesc.xMarkupInfoContainer ); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits