sc/qa/unit/helper/qahelper.cxx | 4 sc/source/core/data/documen5.cxx | 10 -- sc/source/core/data/dpobject.cxx | 10 -- sc/source/core/data/dpoutput.cxx | 22 +--- sc/source/core/data/dpresfilter.cxx | 10 -- sc/source/core/data/dptabsrc.cxx | 24 ++-- sc/source/core/data/tabprotection.cxx | 11 -- sc/source/core/tool/addincol.cxx | 64 ++++--------- sc/source/core/tool/appoptio.cxx | 4 sc/source/core/tool/charthelper.cxx | 9 + sc/source/core/tool/rangeseq.cxx | 18 +-- sc/source/core/tool/rangeutl.cxx | 4 sc/source/core/tool/unitconv.cxx | 6 - sc/source/core/tool/userlist.cxx | 8 - sc/source/filter/excel/xechart.cxx | 72 ++++++-------- sc/source/filter/excel/xeescher.cxx | 16 +-- sc/source/filter/ftools/fapihelper.cxx | 7 - sc/source/filter/oox/formulabase.cxx | 12 -- sc/source/filter/oox/workbookhelper.cxx | 18 +-- sc/source/filter/xcl97/xcl97esc.cxx | 7 - sc/source/filter/xcl97/xcl97rec.cxx | 4 sc/source/filter/xml/XMLCodeNameProvider.cxx | 7 - sc/source/filter/xml/XMLExportDatabaseRanges.cxx | 11 -- sc/source/filter/xml/xmlcvali.cxx | 16 +-- sc/source/filter/xml/xmlimprt.cxx | 69 ++++++-------- sc/source/filter/xml/xmlstyli.cxx | 4 sc/source/ui/Accessibility/AccessibleCell.cxx | 13 -- sc/source/ui/Accessibility/AccessibleGlobal.cxx | 11 -- sc/source/ui/cctrl/tbzoomsliderctrl.cxx | 7 - sc/source/ui/dbgui/dapidata.cxx | 10 -- sc/source/ui/dbgui/tpsort.cxx | 4 sc/source/ui/docshell/docsh2.cxx | 7 - sc/source/ui/miscdlgs/optsolver.cxx | 16 +-- sc/source/ui/miscdlgs/solveroptions.cxx | 4 sc/source/ui/miscdlgs/solverutil.cxx | 3 sc/source/ui/unoobj/appluno.cxx | 5 - sc/source/ui/unoobj/celllistsource.cxx | 9 + sc/source/ui/unoobj/cellsuno.cxx | 85 ++++++----------- sc/source/ui/unoobj/cellvaluebinding.cxx | 9 + sc/source/ui/unoobj/chart2uno.cxx | 41 ++++---- sc/source/ui/unoobj/chartuno.cxx | 31 +----- sc/source/ui/unoobj/condformatuno.cxx | 8 - sc/source/ui/unoobj/cursuno.cxx | 4 sc/source/ui/unoobj/dapiuno.cxx | 39 +++---- sc/source/ui/unoobj/datauno.cxx | 18 +-- sc/source/ui/unoobj/defltuno.cxx | 6 - sc/source/ui/unoobj/dispuno.cxx | 10 -- sc/source/ui/unoobj/docuno.cxx | 66 +++++-------- sc/source/ui/unoobj/eventuno.cxx | 4 sc/source/ui/unoobj/filtuno.cxx | 5 - sc/source/ui/unoobj/fmtuno.cxx | 6 - sc/source/ui/unoobj/funcuno.cxx | 7 - sc/source/ui/unoobj/shapeuno.cxx | 19 +-- sc/source/ui/unoobj/styleuno.cxx | 28 ++--- sc/source/ui/unoobj/viewuno.cxx | 5 - sc/source/ui/vba/vbachart.cxx | 7 - sc/source/ui/vba/vbachartobjects.cxx | 14 +- sc/source/ui/vba/vbaeventshelper.cxx | 10 -- sc/source/ui/vba/vbapagebreaks.cxx | 18 +-- sc/source/ui/vba/vbapagesetup.cxx | 7 - sc/source/ui/vba/vbarange.cxx | 27 ++--- sc/source/ui/vba/vbasheetobject.cxx | 13 +- sc/source/ui/vba/vbaworkbook.cxx | 69 ++++++-------- sc/source/ui/vba/vbaworksheets.cxx | 5 - sc/source/ui/vba/vbawsfunction.cxx | 6 - sc/source/ui/view/dbfunc3.cxx | 7 - sc/source/ui/view/drawvie4.cxx | 14 +- sc/source/ui/view/viewdata.cxx | 113 +++++++++++------------ 68 files changed, 494 insertions(+), 743 deletions(-)
New commits: commit fca94779872b8ba0b0583d0b7068f1a46beb88c5 Author: Arkadiy Illarionov <qar...@gmail.com> AuthorDate: Sat Aug 3 22:59:04 2019 +0300 Commit: Arkadiy Illarionov <qar...@gmail.com> CommitDate: Fri Aug 9 16:58:06 2019 +0200 Simplify Sequence iterations in sc Use range-based loops, STL and comphelper functions Change-Id: I047fb2e6ec9591166339b9748c5013a32185f14b Reviewed-on: https://gerrit.libreoffice.org/76912 Tested-by: Jenkins Reviewed-by: Arkadiy Illarionov <qar...@gmail.com> diff --git a/sc/qa/unit/helper/qahelper.cxx b/sc/qa/unit/helper/qahelper.cxx index c5f183161a78..219d47635feb 100644 --- a/sc/qa/unit/helper/qahelper.cxx +++ b/sc/qa/unit/helper/qahelper.cxx @@ -11,6 +11,7 @@ #include "csv_handler.hxx" #include "debughelper.hxx" #include <drwlayer.hxx> +#include <comphelper/sequence.hxx> #include <compiler.hxx> #include <conditio.hxx> #include <stlsheet.hxx> @@ -375,8 +376,7 @@ std::vector<OUString> getChartRangeRepresentations(const SdrOle2Obj& rChartObj) } Sequence<OUString> aRangeRepSeqs = xDataRec->getUsedRangeRepresentations(); - for (sal_Int32 i = 0, n = aRangeRepSeqs.getLength(); i < n; ++i) - aRangeReps.push_back(aRangeRepSeqs[i]); + comphelper::sequenceToContainer(aRangeReps, aRangeRepSeqs); return aRangeReps; } diff --git a/sc/source/core/data/documen5.cxx b/sc/source/core/data/documen5.cxx index ea449fc6cdda..198cba53017e 100644 --- a/sc/source/core/data/documen5.cxx +++ b/sc/source/core/data/documen5.cxx @@ -57,11 +57,8 @@ static void lcl_GetChartParameters( const uno::Reference< chart2::XChartDocument { uno::Sequence< beans::PropertyValue > aArgs( xProvider->detectArguments( xDataSource ) ); - const beans::PropertyValue* pPropArray = aArgs.getConstArray(); - long nPropCount = aArgs.getLength(); - for (long i = 0; i < nPropCount; i++) + for (const beans::PropertyValue& rProp : aArgs) { - const beans::PropertyValue& rProp = pPropArray[i]; OUString aPropName(rProp.Name); if ( aPropName == "CellRangeRepresentation" ) @@ -377,12 +374,11 @@ void ScDocument::RestoreChartListener( const OUString& rName ) { uno::Sequence<OUString> aRepresentations( xReceiver->getUsedRangeRepresentations() ); ScRangeListRef aRanges = new ScRangeList; - sal_Int32 nRangeCount = aRepresentations.getLength(); - for ( sal_Int32 i=0; i<nRangeCount; i++ ) + for ( const auto& rRepresentation : aRepresentations ) { ScRange aRange; ScAddress::Details aDetails(GetAddressConvention(), 0, 0); - if ( aRange.ParseAny( aRepresentations[i], this, aDetails ) & ScRefFlags::VALID ) + if ( aRange.ParseAny( rRepresentation, this, aDetails ) & ScRefFlags::VALID ) aRanges->push_back( aRange ); } diff --git a/sc/source/core/data/dpobject.cxx b/sc/source/core/data/dpobject.cxx index 57c1b7723c71..16e8e794d019 100644 --- a/sc/source/core/data/dpobject.cxx +++ b/sc/source/core/data/dpobject.cxx @@ -1175,10 +1175,8 @@ bool ScDPObject::IsDimNameInUse(const OUString& rName) const Reference<container::XNameAccess> xDims = xSource->getDimensions(); Sequence<OUString> aDimNames = xDims->getElementNames(); - sal_Int32 n = aDimNames.getLength(); - for (sal_Int32 i = 0; i < n; ++i) + for (const OUString& rDimName : aDimNames) { - const OUString& rDimName = aDimNames[i]; if (rDimName.equalsIgnoreAsciiCase(rName)) return true; @@ -2121,10 +2119,8 @@ static PivotFunc lcl_FirstSubTotal( const uno::Reference<beans::XPropertySet>& x if ( aSubAny >>= aSeq ) { PivotFunc nMask = PivotFunc::NONE; - const sal_Int16* pArray = aSeq.getConstArray(); - long nCount = aSeq.getLength(); - for (long i=0; i<nCount; i++) - nMask |= ScDataPilotConversion::FunctionBit(pArray[i]); + for (const sal_Int16 nElem : aSeq) + nMask |= ScDataPilotConversion::FunctionBit(nElem); return nMask; } } diff --git a/sc/source/core/data/dpoutput.cxx b/sc/source/core/data/dpoutput.cxx index cb117b6a6f90..1fc5a06a4739 100644 --- a/sc/source/core/data/dpoutput.cxx +++ b/sc/source/core/data/dpoutput.cxx @@ -443,13 +443,9 @@ bool lcl_MemberEmpty( const uno::Sequence<sheet::MemberResult>& rSeq ) { // used to skip levels that have no members - long nLen = rSeq.getLength(); - const sheet::MemberResult* pArray = rSeq.getConstArray(); - for (long i=0; i<nLen; i++) - if (pArray[i].Flags & sheet::MemberResultFlags::HASMEMBER) - return false; - - return true; // no member data -> empty + return std::none_of(rSeq.begin(), rSeq.end(), + [](const sheet::MemberResult& rMem) { + return rMem.Flags & sheet::MemberResultFlags::HASMEMBER; }); } /** @@ -471,9 +467,8 @@ uno::Sequence<sheet::MemberResult> getVisiblePageMembersAsResults( const uno::Re std::vector<sheet::MemberResult> aRes; uno::Sequence<OUString> aNames = xNA->getElementNames(); - for (sal_Int32 i = 0; i < aNames.getLength(); ++i) + for (const OUString& rName : aNames) { - const OUString& rName = aNames[i]; xNA->getByName(rName); uno::Reference<beans::XPropertySet> xMemPS(xNA->getByName(rName), UNO_QUERY); @@ -1188,13 +1183,10 @@ void ScDPOutput::GetMemberResultNames(ScDPUniqueStringSet& rNames, long nDimensi if ( bFound ) { - const sheet::MemberResult* pArray = aMemberResults.getConstArray(); - long nResultCount = aMemberResults.getLength(); - - for (long nItem=0; nItem<nResultCount; nItem++) + for (const sheet::MemberResult& rMemberResult : aMemberResults) { - if ( pArray[nItem].Flags & sheet::MemberResultFlags::HASMEMBER ) - rNames.insert(pArray[nItem].Name); + if ( rMemberResult.Flags & sheet::MemberResultFlags::HASMEMBER ) + rNames.insert(rMemberResult.Name); } } } diff --git a/sc/source/core/data/dpresfilter.cxx b/sc/source/core/data/dpresfilter.cxx index 2efb4563f8ee..1e6da5ee3410 100644 --- a/sc/source/core/data/dpresfilter.cxx +++ b/sc/source/core/data/dpresfilter.cxx @@ -199,13 +199,11 @@ void ScDPResultTree::clear() const ScDPResultTree::ValuesType* ScDPResultTree::getResults( const uno::Sequence<sheet::DataPilotFieldFilter>& rFilters) const { - const sheet::DataPilotFieldFilter* p = rFilters.getConstArray(); - const sheet::DataPilotFieldFilter* pEnd = p + static_cast<size_t>(rFilters.getLength()); const MemberNode* pMember = mpRoot.get(); - for (; p != pEnd; ++p) + for (const sheet::DataPilotFieldFilter& rFilter : rFilters) { auto itDim = pMember->maChildDimensions.find( - ScGlobal::pCharClass->uppercase(p->FieldName)); + ScGlobal::pCharClass->uppercase(rFilter.FieldName)); if (itDim == pMember->maChildDimensions.end()) // Specified dimension not found. @@ -213,12 +211,12 @@ const ScDPResultTree::ValuesType* ScDPResultTree::getResults( const DimensionNode* pDim = itDim->second.get(); MembersType::const_iterator itMem( pDim->maChildMembersValueNames.find( - ScGlobal::pCharClass->uppercase( p->MatchValueName))); + ScGlobal::pCharClass->uppercase( rFilter.MatchValueName))); if (itMem == pDim->maChildMembersValueNames.end()) { // Specified member name not found, try locale independent value. - itMem = pDim->maChildMembersValues.find( ScGlobal::pCharClass->uppercase( p->MatchValue)); + itMem = pDim->maChildMembersValues.find( ScGlobal::pCharClass->uppercase( rFilter.MatchValue)); if (itMem == pDim->maChildMembersValues.end()) // Specified member not found. diff --git a/sc/source/core/data/dptabsrc.cxx b/sc/source/core/data/dptabsrc.cxx index c72f34a559cc..fac81c88e24a 100644 --- a/sc/source/core/data/dptabsrc.cxx +++ b/sc/source/core/data/dptabsrc.cxx @@ -433,10 +433,8 @@ Sequence< Sequence<Any> > SAL_CALL ScDPSource::getDrillDownData(const Sequence<s long nColumnCount = GetData()->GetColumnCount(); vector<ScDPFilteredCache::Criterion> aFilterCriteria; - sal_Int32 nFilterCount = aFilters.getLength(); - for (sal_Int32 i = 0; i < nFilterCount; ++i) + for (const sheet::DataPilotFieldFilter& rFilter : aFilters) { - const sheet::DataPilotFieldFilter& rFilter = aFilters[i]; const OUString& aFieldName = rFilter.FieldName; for (long nCol = 0; nCol < nColumnCount; ++nCol) { @@ -2091,10 +2089,9 @@ void SAL_CALL ScDPLevel::setPropertyValue( const OUString& aPropertyName, const uno::Sequence<sheet::GeneralFunction> aSeq; aValue >>= aSeq; aSubTotals.realloc(aSeq.getLength()); - for (sal_Int32 nIndex = 0; nIndex < aSeq.getLength(); nIndex++) - { - aSubTotals[nIndex] = static_cast<sal_Int16>(aSeq[nIndex]); - } + std::transform(aSeq.begin(), aSeq.end(), aSubTotals.begin(), + [](const sheet::GeneralFunction& rFunc) -> sal_Int16 { + return static_cast<sal_Int16>(rFunc); }); } else if ( aPropertyName == SC_UNO_DP_SUBTOTAL2 ) aValue >>= aSubTotals; @@ -2122,13 +2119,12 @@ uno::Any SAL_CALL ScDPLevel::getPropertyValue( const OUString& aPropertyName ) uno::Sequence<sal_Int16> aSeq = getSubTotals(); uno::Sequence<sheet::GeneralFunction> aNewSeq; aNewSeq.realloc(aSeq.getLength()); - for (sal_Int32 nIndex = 0; nIndex < aSeq.getLength(); nIndex++) - { - if (aSeq[nIndex] == sheet::GeneralFunction2::MEDIAN) - aNewSeq[nIndex] = sheet::GeneralFunction_NONE; - else - aNewSeq[nIndex] = static_cast<sheet::GeneralFunction>(aSeq[nIndex]); - } + std::transform(aSeq.begin(), aSeq.end(), aNewSeq.begin(), + [](const sal_Int16 nFunc) -> sheet::GeneralFunction { + if (nFunc == sheet::GeneralFunction2::MEDIAN) + return sheet::GeneralFunction_NONE; + return static_cast<sheet::GeneralFunction>(nFunc); + }); aRet <<= aNewSeq; } diff --git a/sc/source/core/data/tabprotection.cxx b/sc/source/core/data/tabprotection.cxx index ea211bed1173..bf6076327bc7 100644 --- a/sc/source/core/data/tabprotection.cxx +++ b/sc/source/core/data/tabprotection.cxx @@ -21,6 +21,7 @@ #include <svl/PasswordHelper.hxx> #include <comphelper/docpasswordhelper.hxx> #include <comphelper/hash.hxx> +#include <comphelper/sequence.hxx> #include <osl/diagnose.h> #include <document.hxx> @@ -186,11 +187,7 @@ Sequence<sal_Int8> ScTableProtectionImpl::hashPassword( // TODO: Right now, we only support double-hash by SHA1. if (eHash == PASSHASH_SHA1) { - vector<sal_Char> aChars; - sal_Int32 n = rPassHash.getLength(); - aChars.reserve(n); - for (sal_Int32 i = 0; i < n; ++i) - aChars.push_back(static_cast<sal_Char>(rPassHash[i])); + auto aChars = comphelper::sequenceToContainer<vector<sal_Char>>(rPassHash); Sequence<sal_Int8> aNewHash; SvPasswordHelper::GetHashPassword(aNewHash, aChars.data(), aChars.size()); @@ -328,8 +325,8 @@ void ScTableProtectionImpl::setPasswordHash( maPassHash = aPassword; #if DEBUG_TAB_PROTECTION - for (sal_Int32 i = 0; i < nLen; ++i) - printf("%2.2X ", static_cast<sal_uInt8>(aPassword[i])); + for (sal_Int8 n : aPassword) + printf("%2.2X ", static_cast<sal_uInt8>(n)); printf("\n"); #endif } diff --git a/sc/source/core/tool/addincol.cxx b/sc/source/core/tool/addincol.cxx index 7279aa4029ec..63eb607e9264 100644 --- a/sc/source/core/tool/addincol.cxx +++ b/sc/source/core/tool/addincol.cxx @@ -115,16 +115,11 @@ const ::std::vector<ScUnoAddInFuncData::LocalizedName>& ScUnoAddInFuncData::GetC OUString aMethodName = xFunction->getName(); uno::Sequence< sheet::LocalizedName> aCompNames( xComp->getCompatibilityNames( aMethodName )); maCompNames.clear(); - sal_Int32 nSeqLen = aCompNames.getLength(); - if ( nSeqLen ) + for (const sheet::LocalizedName& rCompName : aCompNames) { - const sheet::LocalizedName* pArray = aCompNames.getArray(); - for (sal_Int32 i=0; i<nSeqLen; i++) - { - maCompNames.emplace_back( - LanguageTag::convertToBcp47( pArray[i].Locale, false), - pArray[i].Name); - } + maCompNames.emplace_back( + LanguageTag::convertToBcp47( rCompName.Locale, false), + rCompName.Name); } } } @@ -355,10 +350,8 @@ void ScUnoAddInCollection::ReadConfiguration() // get the list of add-ins (services) uno::Sequence<OUString> aServiceNames = rAddInConfig.GetNodeNames( "" ); - sal_Int32 nServiceCount = aServiceNames.getLength(); - for ( sal_Int32 nService = 0; nService < nServiceCount; nService++ ) + for ( const OUString& aServiceName : aServiceNames ) { - OUString aServiceName = aServiceNames[nService]; ScUnoAddInHelpIdGenerator aHelpIdGenerator( aServiceName ); OUString aFunctionsPath(aServiceName + sSlash + CFGSTR_ADDINFUNCTIONS); @@ -446,17 +439,14 @@ void ScUnoAddInCollection::ReadConfiguration() uno::Sequence<beans::PropertyValue> aLocalEntries; if ( aCompProperties[0] >>= aLocalEntries ) { - sal_Int32 nLocaleCount = aLocalEntries.getLength(); - const beans::PropertyValue* pConfigArray = aLocalEntries.getConstArray(); - - for ( sal_Int32 nLocale = 0; nLocale < nLocaleCount; nLocale++ ) + for ( const beans::PropertyValue& rConfig : aLocalEntries ) { // PropertyValue name is the locale ("convert" from // string to canonicalize) - OUString aLocale( LanguageTag( pConfigArray[nLocale].Name, true).getBcp47( false)); + OUString aLocale( LanguageTag( rConfig.Name, true).getBcp47( false)); // PropertyValue value is the localized value (string in this case) OUString aName; - pConfigArray[nLocale].Value >>= aName; + rConfig.Value >>= aName; aCompNames.emplace_back( aLocale, aName); } } @@ -477,14 +467,12 @@ void ScUnoAddInCollection::ReadConfiguration() uno::Sequence<OUString> aArgPropNames( nArgumentCount * 2 ); OUString* pPropNameArray = aArgPropNames.getArray(); - sal_Int32 nArgument; sal_Int32 nIndex = 0; - const OUString* pArgNameArray = aArgumentNames.getConstArray(); - for ( nArgument = 0; nArgument < nArgumentCount; nArgument++ ) + for ( const OUString& rArgName : aArgumentNames ) { OUString aOneArgPath = aArgumentsPath; aOneArgPath += sSlash; - aOneArgPath += pArgNameArray[nArgument]; + aOneArgPath += rArgName; aOneArgPath += sSlash; pPropNameArray[nIndex++] = aOneArgPath @@ -496,6 +484,7 @@ void ScUnoAddInCollection::ReadConfiguration() uno::Sequence<uno::Any> aArgProperties = rAddInConfig.GetProperties( aArgPropNames ); if ( aArgProperties.getLength() == aArgPropNames.getLength() ) { + const OUString* pArgNameArray = aArgumentNames.getConstArray(); const uno::Any* pPropArray = aArgProperties.getConstArray(); OUString sDisplayName; OUString sDescription; @@ -508,7 +497,7 @@ void ScUnoAddInCollection::ReadConfiguration() pVisibleArgs.reset(new ScAddInArgDesc[nVisibleCount]); nIndex = 0; - for ( nArgument = 0; nArgument < nArgumentCount; nArgument++ ) + for ( sal_Int32 nArgument = 0; nArgument < nArgumentCount; nArgument++ ) { pPropArray[nIndex++] >>= sDisplayName; pPropArray[nIndex++] >>= sDescription; @@ -998,11 +987,8 @@ void ScUnoAddInCollection::UpdateFromAddIn( const uno::Reference<uno::XInterface { uno::Sequence< uno::Reference<reflection::XIdlMethod> > aMethods = xAcc->getMethods( beans::MethodConcept::ALL ); - long nMethodCount = aMethods.getLength(); - const uno::Reference<reflection::XIdlMethod>* pArray = aMethods.getConstArray(); - for (long nFuncPos=0; nFuncPos<nMethodCount; nFuncPos++) + for (const uno::Reference<reflection::XIdlMethod>& xFunc : aMethods) { - uno::Reference<reflection::XIdlMethod> xFunc = pArray[nFuncPos]; if (xFunc.is()) { OUString aFuncU = xFunc->getName(); @@ -1031,8 +1017,7 @@ void ScUnoAddInCollection::UpdateFromAddIn( const uno::Reference<uno::XInterface xFunc->getParameterInfos(); long nParamCount = aParams.getLength(); const reflection::ParamInfo* pParArr = aParams.getConstArray(); - long nParamPos; - for (nParamPos=0; nParamPos<nParamCount; nParamPos++) + for (long nParamPos=0; nParamPos<nParamCount; nParamPos++) { if ( pParArr[nParamPos].aMode != reflection::ParamMode_IN ) bValid = false; @@ -1054,15 +1039,15 @@ void ScUnoAddInCollection::UpdateFromAddIn( const uno::Reference<uno::XInterface ScAddInArgDesc aDesc; pVisibleArgs.reset(new ScAddInArgDesc[nVisibleCount]); long nDestPos = 0; - for (nParamPos=0; nParamPos<nParamCount; nParamPos++) + for (const auto& rParam : aParams) { uno::Reference<reflection::XIdlClass> xParClass = - pParArr[nParamPos].aType; + rParam.aType; ScAddInArgumentType eArgType = lcl_GetArgType( xParClass ); if ( eArgType != SC_ADDINARG_CALLER ) { const ScAddInArgDesc* pOldArgDesc = - lcl_FindArgDesc( *pOldData, pParArr[nParamPos].aName ); + lcl_FindArgDesc( *pOldData, rParam.aName ); if ( pOldArgDesc ) { aDesc.aName = pOldArgDesc->aName; @@ -1078,7 +1063,7 @@ void ScUnoAddInCollection::UpdateFromAddIn( const uno::Reference<uno::XInterface aDesc.eType = eArgType; aDesc.bOptional = bOptional; //TODO: initialize aInternalName only from config? - aDesc.aInternalName = pParArr[nParamPos].aName; + aDesc.aInternalName = rParam.aName; pVisibleArgs[nDestPos++] = aDesc; } @@ -1400,16 +1385,9 @@ void ScUnoAddInCall::ExecuteCall() uno::Sequence<uno::Any> aRealArgs( nDestLen ); uno::Any* pDest = aRealArgs.getArray(); - const uno::Any* pSource = aArgs.getConstArray(); - long nSrcPos = 0; - - for ( long nDestPos = 0; nDestPos < nDestLen; nDestPos++ ) - { - if ( nDestPos == nCallPos ) - pDest[nDestPos] = aCallerAny; - else - pDest[nDestPos] = pSource[nSrcPos++]; - } + pDest = std::copy_n(aArgs.begin(), nCallPos, pDest); + *pDest = aCallerAny; + std::copy(std::next(aArgs.begin(), nCallPos), aArgs.end(), std::next(pDest)); ExecuteCallWithArgs( aRealArgs ); } diff --git a/sc/source/core/tool/appoptio.cxx b/sc/source/core/tool/appoptio.cxx index c5cb0591bbaf..d181a450b795 100644 --- a/sc/source/core/tool/appoptio.cxx +++ b/sc/source/core/tool/appoptio.cxx @@ -176,9 +176,9 @@ static void lcl_SetSortList( const Any& rValue ) { aList.clear(); - for (long i=0; i<nCount; i++) + for (const auto& rStr : aSeq) { - ScUserListData* pNew = new ScUserListData( pArray[i] ); + ScUserListData* pNew = new ScUserListData( rStr ); aList.push_back(pNew); } } diff --git a/sc/source/core/tool/charthelper.cxx b/sc/source/core/tool/charthelper.cxx index f6e065152d5d..b9a2de4f0ac5 100644 --- a/sc/source/core/tool/charthelper.cxx +++ b/sc/source/core/tool/charthelper.cxx @@ -203,9 +203,8 @@ void ScChartHelper::GetChartRanges( const uno::Reference< chart2::XChartDocument uno::Sequence< uno::Reference< chart2::data::XLabeledDataSequence > > aLabeledDataSequences( xDataSource->getDataSequences() ); rRanges.reserve(2*aLabeledDataSequences.getLength()); - for( sal_Int32 nN=0;nN<aLabeledDataSequences.getLength();nN++) + for(const uno::Reference<chart2::data::XLabeledDataSequence>& xLabeledSequence : aLabeledDataSequences) { - uno::Reference< chart2::data::XLabeledDataSequence > xLabeledSequence( aLabeledDataSequences[nN] ); if(!xLabeledSequence.is()) continue; uno::Reference< chart2::data::XDataSequence > xLabel( xLabeledSequence->getLabel()); @@ -236,9 +235,11 @@ void ScChartHelper::SetChartRanges( const uno::Reference< chart2::XChartDocument uno::Sequence< uno::Reference< chart2::data::XLabeledDataSequence > > aLabeledDataSequences( xDataSource->getDataSequences() ); sal_Int32 nRange=0; - for( sal_Int32 nN=0; (nN<aLabeledDataSequences.getLength()) && (nRange<rRanges.getLength()); nN++ ) + for( uno::Reference<chart2::data::XLabeledDataSequence>& xLabeledSequence : aLabeledDataSequences ) { - uno::Reference< chart2::data::XLabeledDataSequence > xLabeledSequence( aLabeledDataSequences[nN] ); + if( nRange >= rRanges.getLength() ) + break; + if(!xLabeledSequence.is()) continue; uno::Reference< beans::XPropertySet > xLabel( xLabeledSequence->getLabel(), uno::UNO_QUERY ); diff --git a/sc/source/core/tool/rangeseq.cxx b/sc/source/core/tool/rangeseq.cxx index 33c90d9c67df..86b614b0853a 100644 --- a/sc/source/core/tool/rangeseq.cxx +++ b/sc/source/core/tool/rangeseq.cxx @@ -360,17 +360,17 @@ ScMatrixRef ScSequenceToMatrix::CreateMixedMatrix( const css::uno::Any & rAny ) if ( rAny >>= aSequence ) { sal_Int32 nRowCount = aSequence.getLength(); - const uno::Sequence<uno::Any>* pRowArr = aSequence.getConstArray(); sal_Int32 nMaxColCount = 0; - sal_Int32 nCol, nRow; - for (nRow=0; nRow<nRowCount; nRow++) + if (nRowCount) { - sal_Int32 nTmp = pRowArr[nRow].getLength(); - if ( nTmp > nMaxColCount ) - nMaxColCount = nTmp; + auto pRow = std::max_element(aSequence.begin(), aSequence.end(), + [](const uno::Sequence<uno::Any>& a, const uno::Sequence<uno::Any>& b) { + return a.getLength() < b.getLength(); }); + nMaxColCount = pRow->getLength(); } if ( nMaxColCount && nRowCount ) { + const uno::Sequence<uno::Any>* pRowArr = aSequence.getConstArray(); OUString aUStr; xMatrix = new ScMatrix( static_cast<SCSIZE>(nMaxColCount), @@ -382,11 +382,11 @@ ScMatrixRef ScSequenceToMatrix::CreateMixedMatrix( const css::uno::Any & rAny ) OSL_FAIL( "ScSequenceToMatrix::CreateMixedMatrix: matrix exceeded max size, returning NULL matrix"); return nullptr; } - for (nRow=0; nRow<nRowCount; nRow++) + for (sal_Int32 nRow=0; nRow<nRowCount; nRow++) { sal_Int32 nColCount = pRowArr[nRow].getLength(); const uno::Any* pColArr = pRowArr[nRow].getConstArray(); - for (nCol=0; nCol<nColCount; nCol++) + for (sal_Int32 nCol=0; nCol<nColCount; nCol++) { double fVal; uno::TypeClass eClass; @@ -416,7 +416,7 @@ ScMatrixRef ScSequenceToMatrix::CreateMixedMatrix( const css::uno::Any & rAny ) static_cast<SCSIZE>(nRow) ); } } - for (nCol=nColCount; nCol<nMaxColCount; nCol++) + for (sal_Int32 nCol=nColCount; nCol<nMaxColCount; nCol++) { xMatrix->PutEmpty( static_cast<SCSIZE>(nCol), diff --git a/sc/source/core/tool/rangeutl.cxx b/sc/source/core/tool/rangeutl.cxx index a29b33907869..a2058a3023fd 100644 --- a/sc/source/core/tool/rangeutl.cxx +++ b/sc/source/core/tool/rangeutl.cxx @@ -696,10 +696,8 @@ void ScRangeStringConverter::GetStringFromRangeList( sal_Unicode cSeparator ) { OUString sRangeListStr; - sal_Int32 nCount = rRangeSeq.getLength(); - for( sal_Int32 nIndex = 0; nIndex < nCount; nIndex++ ) + for( const table::CellRangeAddress& rRange : rRangeSeq ) { - const table::CellRangeAddress& rRange = rRangeSeq[ nIndex ]; GetStringFromRange( sRangeListStr, rRange, pDocument, eConv, cSeparator, true ); } rString = sRangeListStr; diff --git a/sc/source/core/tool/unitconv.cxx b/sc/source/core/tool/unitconv.cxx index 544542c207da..0030bbc86772 100644 --- a/sc/source/core/tool/unitconv.cxx +++ b/sc/source/core/tool/unitconv.cxx @@ -62,16 +62,14 @@ ScUnitConverter::ScUnitConverter() long nNodeCount = aNodeNames.getLength(); if ( nNodeCount ) { - const OUString* pNodeArray = aNodeNames.getConstArray(); Sequence<OUString> aValNames( nNodeCount * 3 ); OUString* pValNameArray = aValNames.getArray(); const OUString sSlash('/'); long nIndex = 0; - for (long i=0; i<nNodeCount; i++) + for (const OUString& rNode : aNodeNames) { - OUString sPrefix = pNodeArray[i]; - sPrefix += sSlash; + OUString sPrefix = rNode + sSlash; pValNameArray[nIndex++] = sPrefix + CFGSTR_UNIT_FROM; pValNameArray[nIndex++] = sPrefix + CFGSTR_UNIT_TO; diff --git a/sc/source/core/tool/userlist.cxx b/sc/source/core/tool/userlist.cxx index f4ae75ee844e..049fadbe47b4 100644 --- a/sc/source/core/tool/userlist.cxx +++ b/sc/source/core/tool/userlist.cxx @@ -207,9 +207,9 @@ ScUserList::ScUserList() uno::Sequence< i18n::Calendar2 > xCalendars( ScGlobal::pLocaleData->getAllCalendars() ); - for ( sal_Int32 j = 0; j < xCalendars.getLength(); ++j ) + for ( const auto& rCalendar : xCalendars ) { - xCal = xCalendars[j].Days; + xCal = rCalendar.Days; if ( xCal.hasElements() ) { OUStringBuffer aDayShortBuf, aDayLongBuf; @@ -218,7 +218,7 @@ ScUserList::ScUserList() sal_Int16 nStart = sal::static_int_cast<sal_Int16>(nLen); while (nStart > 0) { - if (xCal[--nStart].ID == xCalendars[j].StartOfWeek) + if (xCal[--nStart].ID == rCalendar.StartOfWeek) break; } sal_Int16 nLast = sal::static_int_cast<sal_Int16>( (nStart + nLen - 1) % nLen ); @@ -241,7 +241,7 @@ ScUserList::ScUserList() maData.push_back( std::make_unique<ScUserListData>( aDayLong )); } - xCal = xCalendars[j].Months; + xCal = rCalendar.Months; if ( xCal.hasElements() ) { OUStringBuffer aMonthShortBuf, aMonthLongBuf; diff --git a/sc/source/filter/excel/xechart.cxx b/sc/source/filter/excel/xechart.cxx index c87d46dc928d..0d3733d6e722 100644 --- a/sc/source/filter/excel/xechart.cxx +++ b/sc/source/filter/excel/xechart.cxx @@ -961,17 +961,15 @@ sal_uInt16 XclExpChSourceLink::ConvertStringSequence( const Sequence< Reference< namespace ApiScriptType = ::com::sun::star::i18n::ScriptType; // convert all formatted string entries from the sequence - const Reference< XFormattedString >* pBeg = rStringSeq.getConstArray(); - const Reference< XFormattedString >* pEnd = pBeg + rStringSeq.getLength(); - for( const Reference< XFormattedString >* pIt = pBeg; pIt != pEnd; ++pIt ) + for( const Reference< XFormattedString >& rString : rStringSeq ) { - if( pIt->is() ) + if( rString.is() ) { sal_uInt16 nWstrnFontIdx = EXC_FONT_NOTFOUND; sal_uInt16 nAsianFontIdx = EXC_FONT_NOTFOUND; sal_uInt16 nCmplxFontIdx = EXC_FONT_NOTFOUND; - OUString aText = (*pIt)->getString(); - ScfPropertySet aStrProp( *pIt ); + OUString aText = rString->getString(); + ScfPropertySet aStrProp( rString ); // #i63255# get script type for leading weak characters sal_Int16 nLastScript = XclExpStringHelper::GetLeadingScriptType( GetRoot(), aText ); @@ -1766,15 +1764,16 @@ bool XclExpChSerErrorBar::Convert( XclExpChSourceLink& rValueLink, sal_uInt16& r Reference< XDataSequence > xValueSeq; Sequence< Reference< XLabeledDataSequence > > aLabeledSeqVec = xDataSource->getDataSequences(); - const Reference< XLabeledDataSequence >* pBeg = aLabeledSeqVec.getConstArray(); - const Reference< XLabeledDataSequence >* pEnd = pBeg + aLabeledSeqVec.getLength(); - for( const Reference< XLabeledDataSequence >* pIt = pBeg; !xValueSeq.is() && (pIt != pEnd); ++pIt ) + for( const Reference< XLabeledDataSequence >& rLabeledSeq : aLabeledSeqVec ) { - Reference< XDataSequence > xTmpValueSeq = (*pIt)->getValues(); + Reference< XDataSequence > xTmpValueSeq = rLabeledSeq->getValues(); ScfPropertySet aValueProp( xTmpValueSeq ); OUString aCurrRole; if( aValueProp.GetProperty( aCurrRole, EXC_CHPROP_ROLE ) && (aCurrRole == aRole) ) + { xValueSeq = xTmpValueSeq; + break; + } } if( xValueSeq.is() ) { @@ -1847,11 +1846,9 @@ bool XclExpChSeries::ConvertDataSeries( // find first sequence with role 'values-y' Sequence< Reference< XLabeledDataSequence > > aLabeledSeqVec = xDataSource->getDataSequences(); - const Reference< XLabeledDataSequence >* pBeg = aLabeledSeqVec.getConstArray(); - const Reference< XLabeledDataSequence >* pEnd = pBeg + aLabeledSeqVec.getLength(); - for( const Reference< XLabeledDataSequence >* pIt = pBeg; pIt != pEnd; ++pIt ) + for( const Reference< XLabeledDataSequence >& rLabeledSeq : aLabeledSeqVec ) { - Reference< XDataSequence > xTmpValueSeq = (*pIt)->getValues(); + Reference< XDataSequence > xTmpValueSeq = rLabeledSeq->getValues(); ScfPropertySet aValueProp( xTmpValueSeq ); OUString aRole; if( aValueProp.GetProperty( aRole, EXC_CHPROP_ROLE ) ) @@ -1860,7 +1857,7 @@ bool XclExpChSeries::ConvertDataSeries( { xYValueSeq = xTmpValueSeq; if( !xTitleSeq.is() ) - xTitleSeq = (*pIt)->getLabel(); // ignore role of label sequence + xTitleSeq = rLabeledSeq->getLabel(); // ignore role of label sequence } else if( !xXValueSeq.is() && !rTypeInfo.mbCategoryAxis && (aRole == EXC_CHPROP_ROLE_XVALUES) ) { @@ -1869,7 +1866,7 @@ bool XclExpChSeries::ConvertDataSeries( else if( !xBubbleSeq.is() && (rTypeInfo.meTypeId == EXC_CHTYPEID_BUBBLES) && (aRole == EXC_CHPROP_ROLE_SIZEVALUES) ) { xBubbleSeq = xTmpValueSeq; - xTitleSeq = (*pIt)->getLabel(); // ignore role of label sequence + xTitleSeq = rLabeledSeq->getLabel(); // ignore role of label sequence } } } @@ -1939,12 +1936,12 @@ bool XclExpChSeries::ConvertDataSeries( Sequence< sal_Int32 > aPointIndexes; if( aSeriesProp.GetProperty( aPointIndexes, EXC_CHPROP_ATTRIBDATAPOINTS ) && aPointIndexes.hasElements() ) { - const sal_Int32* pnBeg = aPointIndexes.getConstArray(); - const sal_Int32* pnEnd = pnBeg + aPointIndexes.getLength(); - for( const sal_Int32* pnIt = pnBeg; (pnIt != pnEnd) && (*pnIt < nMaxPointCount); ++pnIt ) + for( const sal_Int32 nPointIndex : aPointIndexes ) { - aPointPos.mnPointIdx = static_cast< sal_uInt16 >( *pnIt ); - ScfPropertySet aPointProp = lclGetPointPropSet( xDataSeries, *pnIt ); + if (nPointIndex >= nMaxPointCount) + break; + aPointPos.mnPointIdx = static_cast< sal_uInt16 >( nPointIndex ); + ScfPropertySet aPointProp = lclGetPointPropSet( xDataSeries, nPointIndex ); XclExpChDataFormatRef xPointFmt( new XclExpChDataFormat( GetChRoot(), aPointPos, nFormatIdx ) ); xPointFmt->ConvertDataSeries( aPointProp, rTypeInfo ); maPointFmts.AppendRecord( xPointFmt ); @@ -1967,17 +1964,16 @@ bool XclExpChSeries::ConvertStockSeries( css::uno::Reference< css::chart2::XData // find first sequence with passed role Sequence< Reference< XLabeledDataSequence > > aLabeledSeqVec = xDataSource->getDataSequences(); - const Reference< XLabeledDataSequence >* pBeg = aLabeledSeqVec.getConstArray(); - const Reference< XLabeledDataSequence >* pEnd = pBeg + aLabeledSeqVec.getLength(); - for( const Reference< XLabeledDataSequence >* pIt = pBeg; !xYValueSeq.is() && (pIt != pEnd); ++pIt ) + for( const Reference< XLabeledDataSequence >& rLabeledSeq : aLabeledSeqVec ) { - Reference< XDataSequence > xTmpValueSeq = (*pIt)->getValues(); + Reference< XDataSequence > xTmpValueSeq = rLabeledSeq->getValues(); ScfPropertySet aValueProp( xTmpValueSeq ); OUString aRole; if( aValueProp.GetProperty( aRole, EXC_CHPROP_ROLE ) && (aRole == rValueRole) ) { xYValueSeq = xTmpValueSeq; - xTitleSeq = (*pIt)->getLabel(); // ignore role of label sequence + xTitleSeq = rLabeledSeq->getLabel(); // ignore role of label sequence + break; } } @@ -2070,12 +2066,10 @@ void XclExpChSeries::CreateTrendLines( css::uno::Reference< css::chart2::XDataSe if( xRegCurveCont.is() ) { Sequence< Reference< XRegressionCurve > > aRegCurveSeq = xRegCurveCont->getRegressionCurves(); - const Reference< XRegressionCurve >* pBeg = aRegCurveSeq.getConstArray(); - const Reference< XRegressionCurve >* pEnd = pBeg + aRegCurveSeq.getLength(); - for( const Reference< XRegressionCurve >* pIt = pBeg; pIt != pEnd; ++pIt ) + for( const Reference< XRegressionCurve >& rRegCurve : aRegCurveSeq ) { XclExpChSeriesRef xSeries = GetChartData().CreateSeries(); - if( xSeries && !xSeries->ConvertTrendLine( *this, *pIt ) ) + if( xSeries && !xSeries->ConvertTrendLine( *this, rRegCurve ) ) GetChartData().RemoveLastSeries(); } } @@ -2434,14 +2428,12 @@ void XclExpChTypeGroup::ConvertSeries( // copy data series attached to the current axes set to the vector Sequence< Reference< XDataSeries > > aSeriesSeq = xSeriesCont->getDataSeries(); - const Reference< XDataSeries >* pBeg = aSeriesSeq.getConstArray(); - const Reference< XDataSeries >* pEnd = pBeg + aSeriesSeq.getLength(); - for( const Reference< XDataSeries >* pIt = pBeg; pIt != pEnd; ++pIt ) + for( const Reference< XDataSeries >& rSeries : aSeriesSeq ) { - ScfPropertySet aSeriesProp( *pIt ); + ScfPropertySet aSeriesProp( rSeries ); sal_Int32 nSeriesAxesSetIdx(0); if( aSeriesProp.GetProperty( nSeriesAxesSetIdx, EXC_CHPROP_ATTAXISINDEX ) && (nSeriesAxesSetIdx == nGroupAxesSetIdx) ) - aSeriesVec.push_back( *pIt ); + aSeriesVec.push_back( rSeries ); } // Are there any series in the current axes set? @@ -3124,23 +3116,21 @@ sal_uInt16 XclExpChAxesSet::Convert( Reference< XDiagram > const & xDiagram, sal if( xChartTypeCont.is() ) { Sequence< Reference< XChartType > > aChartTypeSeq = xChartTypeCont->getChartTypes(); - const Reference< XChartType >* pBeg = aChartTypeSeq.getConstArray(); - const Reference< XChartType >* pEnd = pBeg + aChartTypeSeq.getLength(); - for( const Reference< XChartType >* pIt = pBeg; pIt != pEnd; ++pIt ) + for( const Reference< XChartType >& rChartType : aChartTypeSeq ) { XclExpChTypeGroupRef xTypeGroup( new XclExpChTypeGroup( GetChRoot(), nGroupIdx ) ); - xTypeGroup->ConvertType( xDiagram, *pIt, nApiAxesSetIdx, b3dChart, bSwappedAxesSet, bHasXLabels ); + xTypeGroup->ConvertType( xDiagram, rChartType, nApiAxesSetIdx, b3dChart, bSwappedAxesSet, bHasXLabels ); /* If new chart type group cannot be inserted into a combination chart with existing type groups, insert all series into last contained chart type group instead of creating a new group. */ XclExpChTypeGroupRef xLastGroup = GetLastTypeGroup(); if( xLastGroup && !(xTypeGroup->IsCombinable2d() && xLastGroup->IsCombinable2d()) ) { - xLastGroup->ConvertSeries( xDiagram, *pIt, nApiAxesSetIdx, bPercent, bConnectBars ); + xLastGroup->ConvertSeries( xDiagram, rChartType, nApiAxesSetIdx, bPercent, bConnectBars ); } else { - xTypeGroup->ConvertSeries( xDiagram, *pIt, nApiAxesSetIdx, bPercent, bConnectBars ); + xTypeGroup->ConvertSeries( xDiagram, rChartType, nApiAxesSetIdx, bPercent, bConnectBars ); if( xTypeGroup->IsValidGroup() ) { maTypeGroups.AppendRecord( xTypeGroup ); diff --git a/sc/source/filter/excel/xeescher.cxx b/sc/source/filter/excel/xeescher.cxx index 3787b75ad6f8..0e2e3e0ff919 100644 --- a/sc/source/filter/excel/xeescher.cxx +++ b/sc/source/filter/excel/xeescher.cxx @@ -62,6 +62,7 @@ #include <svx/xfillit0.hxx> #include <svx/xflclit.hxx> +#include <comphelper/sequence.hxx> #include <oox/token/tokens.hxx> #include <oox/token/relationship.hxx> #include <oox/export/drawingml.hxx> @@ -811,13 +812,10 @@ XclExpTbxControlObj::XclExpTbxControlObj( XclExpObjectManager& rRoot, Reference< Sequence< sal_Int16 > aSelection; if( aCtrlProp.GetProperty( aSelection, "SelectedItems" ) ) { - sal_Int32 nLen = aSelection.getLength(); - if( nLen > 0 ) + if( aSelection.hasElements() ) { mnSelEntry = aSelection[ 0 ] + 1; - maMultiSel.resize( nLen ); - const sal_Int16* pnBegin = aSelection.getConstArray(); - ::std::copy( pnBegin, pnBegin + nLen, maMultiSel.begin() ); + comphelper::sequenceToContainer(maMultiSel, aSelection); } } @@ -835,11 +833,9 @@ XclExpTbxControlObj::XclExpTbxControlObj( XclExpObjectManager& rRoot, Reference< aCtrlProp.GetProperty( aDefText, "Text" ) && aStringList.hasElements() && !aDefText.isEmpty() ) { - const OUString* pBegin = aStringList.getConstArray(); - const OUString* pEnd = pBegin + aStringList.getLength(); - const OUString* pString = ::std::find( pBegin, pEnd, aDefText ); - if( pString != pEnd ) - mnSelEntry = static_cast< sal_Int16 >( pString - pBegin + 1 ); // 1-based + auto nIndex = comphelper::findValue(aStringList, aDefText); + if( nIndex != -1 ) + mnSelEntry = static_cast< sal_Int16 >( nIndex + 1 ); // 1-based if( mnSelEntry > 0 ) maMultiSel.resize( 1, mnSelEntry - 1 ); } diff --git a/sc/source/filter/ftools/fapihelper.cxx b/sc/source/filter/ftools/fapihelper.cxx index 5e2ce066a286..bd5aac4ae5ef 100644 --- a/sc/source/filter/ftools/fapihelper.cxx +++ b/sc/source/filter/ftools/fapihelper.cxx @@ -217,12 +217,9 @@ void ScfPropertySet::GetProperties( Sequence< Any >& rValues, const Sequence< OU else if( mxPropSet.is() ) { sal_Int32 nLen = rPropNames.getLength(); - const OUString* pPropName = rPropNames.getConstArray(); - const OUString* pPropNameEnd = pPropName + nLen; rValues.realloc( nLen ); - Any* pValue = rValues.getArray(); - for( ; pPropName != pPropNameEnd; ++pPropName, ++pValue ) - *pValue = mxPropSet->getPropertyValue( *pPropName ); + std::transform(rPropNames.begin(), rPropNames.end(), rValues.begin(), + [this](const OUString& rPropName) -> Any { return mxPropSet->getPropertyValue(rPropName); }); } } catch( Exception& ) diff --git a/sc/source/filter/oox/formulabase.cxx b/sc/source/filter/oox/formulabase.cxx index 1a7822e7942f..f20cfb82a679 100644 --- a/sc/source/filter/oox/formulabase.cxx +++ b/sc/source/filter/oox/formulabase.cxx @@ -1238,10 +1238,8 @@ bool OpCodeProviderImpl::fillTokenMap( ApiTokenMap& orTokenMap, OpCodeEntrySeque orTokenMap.clear(); if( fillEntrySeq( orEntrySeq, rxMapper, nMapGroup ) ) { - const FormulaOpCodeMapEntry* pEntry = orEntrySeq.getConstArray(); - const FormulaOpCodeMapEntry* pEntryEnd = pEntry + orEntrySeq.getLength(); - for( ; pEntry != pEntryEnd; ++pEntry ) - orTokenMap[ pEntry->Name ] = pEntry->Token; + for( const FormulaOpCodeMapEntry& rEntry : orEntrySeq ) + orTokenMap[ rEntry.Name ] = rEntry.Token; } return orEntrySeq.hasElements(); } @@ -1252,10 +1250,8 @@ bool OpCodeProviderImpl::fillFuncTokenMaps( ApiTokenMap& orIntFuncTokenMap, ApiT orExtFuncTokenMap.clear(); if( fillEntrySeq( orEntrySeq, rxMapper, css::sheet::FormulaMapGroup::FUNCTIONS ) ) { - const FormulaOpCodeMapEntry* pEntry = orEntrySeq.getConstArray(); - const FormulaOpCodeMapEntry* pEntryEnd = pEntry + orEntrySeq.getLength(); - for( ; pEntry != pEntryEnd; ++pEntry ) - ((pEntry->Token.OpCode == OPCODE_EXTERNAL) ? orExtFuncTokenMap : orIntFuncTokenMap)[ pEntry->Name ] = pEntry->Token; + for( const FormulaOpCodeMapEntry& rEntry : orEntrySeq ) + ((rEntry.Token.OpCode == OPCODE_EXTERNAL) ? orExtFuncTokenMap : orIntFuncTokenMap)[ rEntry.Name ] = rEntry.Token; } return orEntrySeq.hasElements(); } diff --git a/sc/source/filter/oox/workbookhelper.cxx b/sc/source/filter/oox/workbookhelper.cxx index be05789251e3..00936636335d 100644 --- a/sc/source/filter/oox/workbookhelper.cxx +++ b/sc/source/filter/oox/workbookhelper.cxx @@ -733,13 +733,12 @@ void WorkbookHelper::finalizeWorkbookImport() { OUString sTabName; Reference< XNameAccess > xSheetsNC; - sal_Int32 nCount (aSeq.getLength()); - for (sal_Int32 i = 0; i < nCount; ++i) + for (const auto& rProp : aSeq) { - OUString sName(aSeq[i].Name); + OUString sName(rProp.Name); if (sName == SC_ACTIVETABLE) { - if(aSeq[i].Value >>= sTabName) + if(rProp.Value >>= sTabName) { SCTAB nTab(0); if (getScDocument().GetTable(sTabName, nTab)) @@ -748,7 +747,7 @@ void WorkbookHelper::finalizeWorkbookImport() } else if (sName == SC_TABLES) { - aSeq[i].Value >>= xSheetsNC; + rProp.Value >>= xSheetsNC; } } if (xSheetsNC.is() && xSheetsNC->hasByName(sTabName)) @@ -757,20 +756,19 @@ void WorkbookHelper::finalizeWorkbookImport() Any aAny = xSheetsNC->getByName(sTabName); if ( aAny >>= aProperties ) { - nCount = aProperties.getLength(); - for (sal_Int32 i = 0; i < nCount; ++i) + for (const auto& rProp : aProperties) { - OUString sName(aProperties[i].Name); + OUString sName(rProp.Name); if (sName == SC_POSITIONLEFT) { SCCOL nPosLeft; - aProperties[i].Value >>= nPosLeft; + rProp.Value >>= nPosLeft; getScDocument().SetPosLeft(nPosLeft); } else if (sName == SC_POSITIONTOP) { SCROW nPosTop; - aProperties[i].Value >>= nPosTop; + rProp.Value >>= nPosTop; getScDocument().SetPosTop(nPosTop); } } diff --git a/sc/source/filter/xcl97/xcl97esc.cxx b/sc/source/filter/xcl97/xcl97esc.cxx index 9ca76ae49c58..0602ae8d7fca 100644 --- a/sc/source/filter/xcl97/xcl97esc.cxx +++ b/sc/source/filter/xcl97/xcl97esc.cxx @@ -482,12 +482,11 @@ void XclEscherEx::ConvertTbxMacro( XclExpTbxControlObj& rTbxCtrlObj, Reference< Reference< XEventAttacherManager > xEventMgr( xFormIA, UNO_QUERY_THROW ); // loop over all events attached to the found control const Sequence< ScriptEventDescriptor > aEventSeq( xEventMgr->getScriptEvents( nFoundIdx ) ); - bool bFound = false; - for( sal_Int32 nEventIdx = 0, nEventCount = aEventSeq.getLength(); - !bFound && (nEventIdx < nEventCount); ++nEventIdx ) + for( const auto& rEvent : aEventSeq ) { // try to set the event data at the Excel control object, returns true on success - bFound = rTbxCtrlObj.SetMacroLink( aEventSeq[ nEventIdx ] ); + if (rTbxCtrlObj.SetMacroLink( rEvent )) + break; } } } diff --git a/sc/source/filter/xcl97/xcl97rec.cxx b/sc/source/filter/xcl97/xcl97rec.cxx index 1b82c93065b0..f7b27bfc8f15 100644 --- a/sc/source/filter/xcl97/xcl97rec.cxx +++ b/sc/source/filter/xcl97/xcl97rec.cxx @@ -194,9 +194,9 @@ bool IsValidObject( const XclObj& rObj ) if (!xCooSysSeq.hasElements()) return false; - for (sal_Int32 nCooSys = 0; nCooSys < xCooSysSeq.getLength(); ++nCooSys) + for (const auto& rCooSys : xCooSysSeq) { - Reference<chart2::XChartTypeContainer> xChartTypeCont(xCooSysSeq[nCooSys], uno::UNO_QUERY); + Reference<chart2::XChartTypeContainer> xChartTypeCont(rCooSys, uno::UNO_QUERY); if (!xChartTypeCont.is()) return false; diff --git a/sc/source/filter/xml/XMLCodeNameProvider.cxx b/sc/source/filter/xml/XMLCodeNameProvider.cxx index ef8f829bcbb1..4f71732450f1 100644 --- a/sc/source/filter/xml/XMLCodeNameProvider.cxx +++ b/sc/source/filter/xml/XMLCodeNameProvider.cxx @@ -30,13 +30,12 @@ bool XMLCodeNameProvider::_getCodeName( const uno::Any& aAny, OUString& rCodeNam if( !(aAny >>= aProps) ) return false; - sal_Int32 nPropCount = aProps.getLength(); - for( sal_Int32 i=0; i<nPropCount; i++ ) + for( const auto& rProp : aProps ) { - if( aProps[i].Name == "CodeName" ) + if( rProp.Name == "CodeName" ) { OUString sCodeName; - if( aProps[i].Value >>= sCodeName ) + if( rProp.Value >>= sCodeName ) { rCodeName = sCodeName; return true; diff --git a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx index c9b154409055..4ab20b0932f6 100644 --- a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx +++ b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx @@ -142,10 +142,8 @@ ScMyEmptyDatabaseRangesContainer ScXMLExportDatabaseRanges::GetEmptyDatabaseRang if (xDatabaseRanges.is()) { uno::Sequence <OUString> aRanges(xDatabaseRanges->getElementNames()); - sal_Int32 nDatabaseRangesCount = aRanges.getLength(); - for (sal_Int32 i = 0; i < nDatabaseRangesCount; ++i) + for (const OUString& sDatabaseRangeName : aRanges) { - OUString sDatabaseRangeName(aRanges[i]); uno::Reference <sheet::XDatabaseRange> xDatabaseRange(xDatabaseRanges->getByName(sDatabaseRangeName), uno::UNO_QUERY); if (xDatabaseRange.is()) { @@ -154,11 +152,10 @@ ScMyEmptyDatabaseRangesContainer ScXMLExportDatabaseRanges::GetEmptyDatabaseRang ::cppu::any2bool(xDatabaseRangePropertySet->getPropertyValue(SC_UNONAME_STRIPDAT))) { uno::Sequence <beans::PropertyValue> aImportProperties(xDatabaseRange->getImportDescriptor()); - sal_Int32 nLength = aImportProperties.getLength(); sheet::DataImportMode nSourceType = sheet::DataImportMode_NONE; - for (sal_Int32 j = 0; j < nLength; ++j) - if ( aImportProperties[j].Name == SC_UNONAME_SRCTYPE ) - aImportProperties[j].Value >>= nSourceType; + for (const auto& rProp : aImportProperties) + if ( rProp.Name == SC_UNONAME_SRCTYPE ) + rProp.Value >>= nSourceType; if (nSourceType != sheet::DataImportMode_NONE) { table::CellRangeAddress aArea = xDatabaseRange->getDataArea(); diff --git a/sc/source/filter/xml/xmlcvali.cxx b/sc/source/filter/xml/xmlcvali.cxx index 58a6e588dbc0..78dc7fd49597 100644 --- a/sc/source/filter/xml/xmlcvali.cxx +++ b/sc/source/filter/xml/xmlcvali.cxx @@ -387,17 +387,11 @@ void SAL_CALL ScXMLContentValidationContext::endFastElement( sal_Int32 /*nElemen uno::Sequence<beans::PropertyValue> aValues; pEvents->GetEventSequence( "OnError", aValues ); - sal_Int32 nLength = aValues.getLength(); - for( sal_Int32 i = 0; i < nLength; i++ ) - { - // #i47525# must allow "MacroName" or "Script" - if ( aValues[i].Name == "MacroName" || - aValues[i].Name == "Script" ) - { - aValues[i].Value >>= sErrorTitle; - break; - } - } + auto pValue = std::find_if(aValues.begin(), aValues.end(), + [](const beans::PropertyValue& rValue) { + return rValue.Name == "MacroName" || rValue.Name == "Script"; }); + if (pValue != aValues.end()) + pValue->Value >>= sErrorTitle; } ScMyImportValidation aValidation; diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx index 2c3f4d40e75a..dd4ac8a37ed1 100644 --- a/sc/source/filter/xml/xmlimprt.cxx +++ b/sc/source/filter/xml/xmlimprt.cxx @@ -811,8 +811,7 @@ SvXMLImportContext *ScXMLImport::CreateScriptContext( return pContext; } -void ScXMLImport::SetStatistics( - const uno::Sequence<beans::NamedValue> & i_rStats) +void ScXMLImport::SetStatistics(const uno::Sequence<beans::NamedValue> & i_rStats) { static const char* s_stats[] = { "TableCount", "CellCount", "ObjectCount", nullptr }; @@ -820,11 +819,11 @@ void ScXMLImport::SetStatistics( SvXMLImport::SetStatistics(i_rStats); sal_uInt32 nCount(0); - for (sal_Int32 i = 0; i < i_rStats.getLength(); ++i) { + for (const auto& rStat : i_rStats) { for (const char** pStat = s_stats; *pStat != nullptr; ++pStat) { - if (i_rStats[i].Name.equalsAscii(*pStat)) { + if (rStat.Name.equalsAscii(*pStat)) { sal_Int32 val = 0; - if (i_rStats[i].Value >>= val) { + if (rStat.Value >>= val) { nCount += val; } else { OSL_FAIL("ScXMLImport::SetStatistics: invalid entry"); @@ -960,32 +959,31 @@ void ScXMLImport::SetChangeTrackingViewSettings(const css::uno::Sequence<css::be { if (pDoc) { - sal_Int32 nCount(rChangeProps.getLength()); - if (nCount) + if (rChangeProps.hasElements()) { ScXMLImport::MutexGuard aGuard(*this); sal_Int16 nTemp16(0); std::unique_ptr<ScChangeViewSettings> pViewSettings(new ScChangeViewSettings()); - for (sal_Int32 i = 0; i < nCount; ++i) + for (const auto& rChangeProp : rChangeProps) { - OUString sName(rChangeProps[i].Name); + OUString sName(rChangeProp.Name); if (sName == "ShowChanges") - pViewSettings->SetShowChanges(::cppu::any2bool(rChangeProps[i].Value)); + pViewSettings->SetShowChanges(::cppu::any2bool(rChangeProp.Value)); else if (sName == "ShowAcceptedChanges") - pViewSettings->SetShowAccepted(::cppu::any2bool(rChangeProps[i].Value)); + pViewSettings->SetShowAccepted(::cppu::any2bool(rChangeProp.Value)); else if (sName == "ShowRejectedChanges") - pViewSettings->SetShowRejected(::cppu::any2bool(rChangeProps[i].Value)); + pViewSettings->SetShowRejected(::cppu::any2bool(rChangeProp.Value)); else if (sName == "ShowChangesByDatetime") - pViewSettings->SetHasDate(::cppu::any2bool(rChangeProps[i].Value)); + pViewSettings->SetHasDate(::cppu::any2bool(rChangeProp.Value)); else if (sName == "ShowChangesByDatetimeMode") { - if (rChangeProps[i].Value >>= nTemp16) + if (rChangeProp.Value >>= nTemp16) pViewSettings->SetTheDateMode(static_cast<SvxRedlinDateMode>(nTemp16)); } else if (sName == "ShowChangesByDatetimeFirstDatetime") { util::DateTime aDateTime; - if (rChangeProps[i].Value >>= aDateTime) + if (rChangeProp.Value >>= aDateTime) { pViewSettings->SetTheFirstDateTime(::DateTime(aDateTime)); } @@ -993,37 +991,37 @@ void ScXMLImport::SetChangeTrackingViewSettings(const css::uno::Sequence<css::be else if (sName == "ShowChangesByDatetimeSecondDatetime") { util::DateTime aDateTime; - if (rChangeProps[i].Value >>= aDateTime) + if (rChangeProp.Value >>= aDateTime) { pViewSettings->SetTheLastDateTime(::DateTime(aDateTime)); } } else if (sName == "ShowChangesByAuthor") - pViewSettings->SetHasAuthor(::cppu::any2bool(rChangeProps[i].Value)); + pViewSettings->SetHasAuthor(::cppu::any2bool(rChangeProp.Value)); else if (sName == "ShowChangesByAuthorName") { OUString sOUName; - if (rChangeProps[i].Value >>= sOUName) + if (rChangeProp.Value >>= sOUName) { pViewSettings->SetTheAuthorToShow(sOUName); } } else if (sName == "ShowChangesByComment") - pViewSettings->SetHasComment(::cppu::any2bool(rChangeProps[i].Value)); + pViewSettings->SetHasComment(::cppu::any2bool(rChangeProp.Value)); else if (sName == "ShowChangesByCommentText") { OUString sOUComment; - if (rChangeProps[i].Value >>= sOUComment) + if (rChangeProp.Value >>= sOUComment) { pViewSettings->SetTheComment(sOUComment); } } else if (sName == "ShowChangesByRanges") - pViewSettings->SetHasRange(::cppu::any2bool(rChangeProps[i].Value)); + pViewSettings->SetHasRange(::cppu::any2bool(rChangeProp.Value)); else if (sName == "ShowChangesByRangesList") { OUString sRanges; - if ((rChangeProps[i].Value >>= sRanges) && !sRanges.isEmpty()) + if ((rChangeProp.Value >>= sRanges) && !sRanges.isEmpty()) { ScRangeList aRangeList; ScRangeStringConverter::GetRangeListFromString( @@ -1039,26 +1037,25 @@ void ScXMLImport::SetChangeTrackingViewSettings(const css::uno::Sequence<css::be void ScXMLImport::SetViewSettings(const uno::Sequence<beans::PropertyValue>& aViewProps) { - sal_Int32 nCount(aViewProps.getLength()); sal_Int32 nHeight(0); sal_Int32 nLeft(0); sal_Int32 nTop(0); sal_Int32 nWidth(0); - for (sal_Int32 i = 0; i < nCount; ++i) + for (const auto& rViewProp : aViewProps) { - OUString sName(aViewProps[i].Name); + OUString sName(rViewProp.Name); if (sName == "VisibleAreaHeight") - aViewProps[i].Value >>= nHeight; + rViewProp.Value >>= nHeight; else if (sName == "VisibleAreaLeft") - aViewProps[i].Value >>= nLeft; + rViewProp.Value >>= nLeft; else if (sName == "VisibleAreaTop") - aViewProps[i].Value >>= nTop; + rViewProp.Value >>= nTop; else if (sName == "VisibleAreaWidth") - aViewProps[i].Value >>= nWidth; + rViewProp.Value >>= nWidth; else if (sName == "TrackedChangesViewSettings") { uno::Sequence<beans::PropertyValue> aChangeProps; - if(aViewProps[i].Value >>= aChangeProps) + if(rViewProp.Value >>= aChangeProps) SetChangeTrackingViewSettings(aChangeProps); } } @@ -1089,8 +1086,7 @@ void ScXMLImport::SetConfigurationSettings(const uno::Sequence<beans::PropertyVa if (xMultiServiceFactory.is()) { sal_Int32 nCount(aConfigProps.getLength()); - css::uno::Sequence<css::beans::PropertyValue> aFilteredProps( - aConfigProps.getLength()); + css::uno::Sequence<css::beans::PropertyValue> aFilteredProps(nCount); sal_Int32 nFilteredPropsLen = 0; for (sal_Int32 i = nCount - 1; i >= 0; --i) { @@ -1721,20 +1717,19 @@ void SAL_CALL ScXMLImport::endDocument() uno::Sequence< beans::PropertyValue > aSeq; if (xIndexAccess->getByIndex(0) >>= aSeq) { - sal_Int32 nCount (aSeq.getLength()); - for (sal_Int32 i = 0; i < nCount; ++i) + for (const auto& rProp : aSeq) { - OUString sName(aSeq[i].Name); + OUString sName(rProp.Name); if (sName == SC_ACTIVETABLE) { OUString sTabName; - if(aSeq[i].Value >>= sTabName) + if(rProp.Value >>= sTabName) { SCTAB nTab(0); if (pDoc->GetTable(sTabName, nTab)) { pDoc->SetVisibleTab(nTab); - i = nCount; + break; } } } diff --git a/sc/source/filter/xml/xmlstyli.cxx b/sc/source/filter/xml/xmlstyli.cxx index d3d2ac76e1c1..792e59594bc7 100644 --- a/sc/source/filter/xml/xmlstyli.cxx +++ b/sc/source/filter/xml/xmlstyli.cxx @@ -478,10 +478,8 @@ void XMLTableStyleContext::ApplyCondFormat( const uno::Sequence<table::CellRange return; ScRangeList aRangeList; - sal_Int32 nRanges = xCellRanges.getLength(); - for(sal_Int32 i = 0; i < nRanges; ++i) + for(const table::CellRangeAddress& aAddress : xCellRanges) { - table::CellRangeAddress aAddress = xCellRanges[i]; ScRange aRange( aAddress.StartColumn, aAddress.StartRow, aAddress.Sheet, aAddress.EndColumn, aAddress.EndRow, aAddress.Sheet ); aRangeList.Join( aRange ); } diff --git a/sc/source/ui/Accessibility/AccessibleCell.cxx b/sc/source/ui/Accessibility/AccessibleCell.cxx index e053ed209751..8922919f694a 100644 --- a/sc/source/ui/Accessibility/AccessibleCell.cxx +++ b/sc/source/ui/Accessibility/AccessibleCell.cxx @@ -520,19 +520,14 @@ uno::Sequence< beans::PropertyValue > SAL_CALL ScAccessibleCell::getCharacterAtt SolarMutexGuard aGuard; uno::Sequence< beans::PropertyValue > aAttribs = AccessibleStaticTextBase::getCharacterAttributes( nIndex, aRequestedAttributes ); - beans::PropertyValue *pAttribs = aAttribs.getArray(); sal_uInt16 nParaIndent = mpDoc->GetAttr( maCellAddress, ATTR_INDENT )->GetValue(); if (nParaIndent > 0) { - for (int i = 0; i < aAttribs.getLength(); ++i) - { - if ("ParaLeftMargin" == pAttribs[i].Name) - { - pAttribs[i].Value <<= nParaIndent; - break; - } - } + auto pAttrib = std::find_if(aAttribs.begin(), aAttribs.end(), + [](const beans::PropertyValue& rAttrib) { return "ParaLeftMargin" == rAttrib.Name; }); + if (pAttrib != aAttribs.end()) + pAttrib->Value <<= nParaIndent; } return aAttribs; } diff --git a/sc/source/ui/Accessibility/AccessibleGlobal.cxx b/sc/source/ui/Accessibility/AccessibleGlobal.cxx index 31d810bd2d0b..472197382c1f 100644 --- a/sc/source/ui/Accessibility/AccessibleGlobal.cxx +++ b/sc/source/ui/Accessibility/AccessibleGlobal.cxx @@ -48,15 +48,8 @@ sal_Bool SAL_CALL ScAccessibleStateSet::contains(sal_Int16 nState) sal_Bool SAL_CALL ScAccessibleStateSet::containsAll( const Sequence<sal_Int16>& aStateSet) { - sal_Int32 n = aStateSet.getLength(); - for (sal_Int32 i = 0; i < n; ++i) - { - if (!maStates.count(aStateSet[i])) - // This state is not set. - return false; - } - // All specified states are set. - return true; + return std::all_of(aStateSet.begin(), aStateSet.end(), + [this](const sal_Int16 nState) { return maStates.count(nState) != 0; }); } Sequence<sal_Int16> SAL_CALL ScAccessibleStateSet::getStates() diff --git a/sc/source/ui/cctrl/tbzoomsliderctrl.cxx b/sc/source/ui/cctrl/tbzoomsliderctrl.cxx index b97f5e4c85d3..77d7067b2dd4 100644 --- a/sc/source/ui/cctrl/tbzoomsliderctrl.cxx +++ b/sc/source/ui/cctrl/tbzoomsliderctrl.cxx @@ -337,11 +337,8 @@ void ScZoomSliderWnd::UpdateFromItem( const SvxZoomSliderItem* pZoomSliderItem ) // get all snapping points: std::set< sal_uInt16 > aTmpSnappingPoints; - for ( sal_Int32 j = 0; j < rSnappingPoints.getLength(); ++j ) - { - const sal_Int32 nSnappingPoint = rSnappingPoints[j]; - aTmpSnappingPoints.insert( static_cast<sal_uInt16>(nSnappingPoint) ); - } + std::transform(rSnappingPoints.begin(), rSnappingPoints.end(), std::inserter(aTmpSnappingPoints, aTmpSnappingPoints.end()), + [](const sal_Int32 nSnappingPoint) -> sal_uInt16 { return static_cast<sal_uInt16>(nSnappingPoint); }); // remove snapping points that are too close to each other: long nLastOffset = 0; diff --git a/sc/source/ui/dbgui/dapidata.cxx b/sc/source/ui/dbgui/dapidata.cxx index 06d360a163ac..638d6a20b8f3 100644 --- a/sc/source/ui/dbgui/dapidata.cxx +++ b/sc/source/ui/dbgui/dapidata.cxx @@ -55,11 +55,8 @@ ScDataPilotDatabaseDlg::ScDataPilotDatabaseDlg(weld::Window* pParent) uno::Reference<sdb::XDatabaseContext> xContext = sdb::DatabaseContext::create( comphelper::getProcessComponentContext() ); uno::Sequence<OUString> aNames = xContext->getElementNames(); - long nCount = aNames.getLength(); - const OUString* pArray = aNames.getConstArray(); - for (long nPos = 0; nPos < nCount; nPos++) + for( const OUString& aName : aNames ) { - OUString aName = pArray[nPos]; m_xLbDatabase->append_text(aName); } } @@ -162,11 +159,8 @@ void ScDataPilotDatabaseDlg::FillObjects() // fill list - long nCount = aNames.getLength(); - const OUString* pArray = aNames.getConstArray(); - for( long nPos=0; nPos<nCount; nPos++ ) + for( const OUString& aName : aNames ) { - OUString aName = pArray[nPos]; m_xCbObject->append_text(aName); } } diff --git a/sc/source/ui/dbgui/tpsort.cxx b/sc/source/ui/dbgui/tpsort.cxx index 1bf89c164644..d4654e3b83f4 100644 --- a/sc/source/ui/dbgui/tpsort.cxx +++ b/sc/source/ui/dbgui/tpsort.cxx @@ -890,10 +890,8 @@ void ScTabPageSortOptions::FillAlgor() uno::Sequence<OUString> aAlgos = m_xColWrap->listCollatorAlgorithms( aLocale ); long nCount = aAlgos.getLength(); - const OUString* pArray = aAlgos.getConstArray(); - for (long i=0; i<nCount; i++) + for (const OUString& sAlg : aAlgos) { - OUString sAlg = pArray[i]; OUString sUser = m_xColRes->GetTranslation( sAlg ); m_xLbAlgorithm->append_text(sUser); } diff --git a/sc/source/ui/docshell/docsh2.cxx b/sc/source/ui/docshell/docsh2.cxx index 4b872f0548de..00ecfe4b293d 100644 --- a/sc/source/ui/docshell/docsh2.cxx +++ b/sc/source/ui/docshell/docsh2.cxx @@ -129,12 +129,11 @@ void ScDocShell::InitItems() std::shared_ptr<SvxForbiddenCharactersTable> xForbiddenTable( SvxForbiddenCharactersTable::makeForbiddenCharactersTable(comphelper::getProcessComponentContext())); - const lang::Locale* pLocales = aLocales.getConstArray(); - for (sal_Int32 i = 0; i < aLocales.getLength(); i++) + for (const lang::Locale& rLocale : aLocales) { i18n::ForbiddenCharacters aForbidden; - aAsian.GetStartEndChars( pLocales[i], aForbidden.beginLine, aForbidden.endLine ); - LanguageType eLang = LanguageTag::convertToLanguageType(pLocales[i]); + aAsian.GetStartEndChars( rLocale, aForbidden.beginLine, aForbidden.endLine ); + LanguageType eLang = LanguageTag::convertToLanguageType(rLocale); xForbiddenTable->SetForbiddenCharacters( eLang, aForbidden ); } diff --git a/sc/source/ui/miscdlgs/optsolver.cxx b/sc/source/ui/miscdlgs/optsolver.cxx index 17b760d65a1f..09ad93d1a666 100644 --- a/sc/source/ui/miscdlgs/optsolver.cxx +++ b/sc/source/ui/miscdlgs/optsolver.cxx @@ -942,12 +942,12 @@ bool ScOptSolverDlg::CallSolver() // return true -> close dialog after cal sal_Int32 nVarCount = aVariables.getLength(); uno::Sequence<double> aOldValues; aOldValues.realloc( nVarCount ); - for (nVarPos=0; nVarPos<nVarCount; ++nVarPos) - { - ScAddress aCellPos; - ScUnoConversion::FillScAddress( aCellPos, aVariables[nVarPos] ); - aOldValues[nVarPos] = mrDoc.GetValue( aCellPos ); - } + std::transform(aVariables.begin(), aVariables.end(), aOldValues.begin(), + [this](const table::CellAddress& rVariable) -> double { + ScAddress aCellPos; + ScUnoConversion::FillScAddress( aCellPos, rVariable ); + return mrDoc.GetValue( aCellPos ); + }); // create and initialize solver @@ -966,10 +966,8 @@ bool ScOptSolverDlg::CallSolver() // return true -> close dialog after cal uno::Reference<beans::XPropertySet> xOptProp(xSolver, uno::UNO_QUERY); if ( xOptProp.is() ) { - sal_Int32 nPropCount = maProperties.getLength(); - for (sal_Int32 nProp=0; nProp<nPropCount; ++nProp) + for (const beans::PropertyValue& rValue : maProperties) { - const beans::PropertyValue& rValue = maProperties[nProp]; try { xOptProp->setPropertyValue( rValue.Name, rValue.Value ); diff --git a/sc/source/ui/miscdlgs/solveroptions.cxx b/sc/source/ui/miscdlgs/solveroptions.cxx index e4b92356edcc..66115e8eeca2 100644 --- a/sc/source/ui/miscdlgs/solveroptions.cxx +++ b/sc/source/ui/miscdlgs/solveroptions.cxx @@ -163,8 +163,8 @@ void ScSolverOptionsDialog::FillListBox() uno::Sequence<beans::PropertyValue> aNewSeq; aNewSeq.realloc( nCount ); - for (sal_Int32 nPos=0; nPos<nCount; nPos++) - aNewSeq[nPos] = maProperties[ aDescriptions[nPos].nPosition ]; + std::transform(aDescriptions.begin(), aDescriptions.end(), aNewSeq.begin(), + [this](const ScSolverOptionsEntry& rDescr) -> beans::PropertyValue { return maProperties[ rDescr.nPosition ]; }); maProperties = aNewSeq; // fill the list box diff --git a/sc/source/ui/miscdlgs/solverutil.cxx b/sc/source/ui/miscdlgs/solverutil.cxx index 3cddf1effbd5..48af88892c21 100644 --- a/sc/source/ui/miscdlgs/solverutil.cxx +++ b/sc/source/ui/miscdlgs/solverutil.cxx @@ -156,9 +156,8 @@ uno::Sequence<beans::PropertyValue> ScSolverUtil::GetDefaults( const OUString& r const sal_Int32 nSize = aPropSeq.getLength(); aDefaults.realloc(nSize); sal_Int32 nValid = 0; - for (sal_Int32 nPos=0; nPos<nSize; ++nPos) + for (const beans::Property& rProp : aPropSeq) { - const beans::Property& rProp = aPropSeq[nPos]; uno::Any aValue = xPropSet->getPropertyValue( rProp.Name ); uno::TypeClass eClass = aValue.getValueTypeClass(); // only use properties of supported types diff --git a/sc/source/ui/unoobj/appluno.cxx b/sc/source/ui/unoobj/appluno.cxx index 6cddcc87988b..69fd6381d252 100644 --- a/sc/source/ui/unoobj/appluno.cxx +++ b/sc/source/ui/unoobj/appluno.cxx @@ -349,11 +349,8 @@ void SAL_CALL ScSpreadsheetSettings::setPropertyValue( // ScGlobal::SetUseTabCol does not do much else pUserList->clear(); - sal_uInt16 nCount = static_cast<sal_uInt16>(aSeq.getLength()); - const OUString* pAry = aSeq.getConstArray(); - for (sal_uInt16 i=0; i<nCount; i++) + for (const OUString& aEntry : aSeq) { - OUString aEntry = pAry[i]; ScUserListData* pData = new ScUserListData(aEntry); pUserList->push_back(pData); } diff --git a/sc/source/ui/unoobj/celllistsource.cxx b/sc/source/ui/unoobj/celllistsource.cxx index dde68149c511..bc79178d4909 100644 --- a/sc/source/ui/unoobj/celllistsource.cxx +++ b/sc/source/ui/unoobj/celllistsource.cxx @@ -352,17 +352,18 @@ namespace calc CellRangeAddress aRangeAddress; bool bFoundAddress = false; - const Any* pLoop = _rArguments.getConstArray(); - const Any* pLoopEnd = _rArguments.getConstArray() + _rArguments.getLength(); - for ( ; ( pLoop != pLoopEnd ) && !bFoundAddress; ++pLoop ) + for ( const Any& rArg : _rArguments ) { NamedValue aValue; - if ( *pLoop >>= aValue ) + if ( rArg >>= aValue ) { if ( aValue.Name == "CellRange" ) { if ( aValue.Value >>= aRangeAddress ) + { bFoundAddress = true; + break; + } } } } diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx index 3301ddc2fcf5..dcef6d854d05 100644 --- a/sc/source/ui/unoobj/cellsuno.cxx +++ b/sc/source/ui/unoobj/cellsuno.cxx @@ -905,11 +905,9 @@ static void lcl_CopyProperties( beans::XPropertySet& rDest, beans::XPropertySet& if (xInfo.is()) { uno::Sequence<beans::Property> aSeq(xInfo->getProperties()); - const beans::Property* pAry = aSeq.getConstArray(); - sal_uLong nCount = aSeq.getLength(); - for (sal_uLong i=0; i<nCount; i++) + for (const beans::Property& rProp : aSeq) { - OUString aName(pAry[i].Name); + OUString aName(rProp.Name); rDest.setPropertyValue( aName, rSource.getPropertyValue( aName ) ); } } @@ -1136,18 +1134,15 @@ static bool lcl_PutDataArray( ScDocShell& rDocShell, const ScRange& rRange, bool bError = false; SCROW nDocRow = nStartRow; - for (long nRow=0; nRow<nRows; nRow++) + for (const uno::Sequence<uno::Any>& rColSeq : aData) { - const uno::Sequence<uno::Any>& rColSeq = pArray[nRow]; if ( rColSeq.getLength() == nCols ) { SCCOL nDocCol = nStartCol; - const uno::Any* pColArr = rColSeq.getConstArray(); - for (long nCol=0; nCol<nCols; nCol++) + for (const uno::Any& rElement : rColSeq) { ScAddress aPos(nDocCol, nDocRow, nTab); - const uno::Any& rElement = pColArr[nCol]; switch( rElement.getValueTypeClass() ) { case uno::TypeClass_VOID: @@ -1275,16 +1270,13 @@ static bool lcl_PutFormulaArray( ScDocShell& rDocShell, const ScRange& rRange, bool bError = false; SCROW nDocRow = nStartRow; - for (long nRow=0; nRow<nRows; nRow++) + for (const uno::Sequence<OUString>& rColSeq : aData) { - const uno::Sequence<OUString>& rColSeq = pArray[nRow]; if ( rColSeq.getLength() == nCols ) { SCCOL nDocCol = nStartCol; - const OUString* pColArr = rColSeq.getConstArray(); - for (long nCol=0; nCol<nCols; nCol++) + for (const OUString& aText : rColSeq) { - OUString aText(pColArr[nCol]); ScAddress aPos( nDocCol, nDocRow, nTab ); ScInputStringType aRes = @@ -1941,14 +1933,13 @@ uno::Sequence<beans::PropertyState> SAL_CALL ScCellRangesBase::getPropertyStates const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap(); // from derived class uno::Sequence<beans::PropertyState> aRet(aPropertyNames.getLength()); - beans::PropertyState* pStates = aRet.getArray(); - for(sal_Int32 i = 0; i < aPropertyNames.getLength(); i++) - { - sal_uInt16 nItemWhich = 0; - const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyNames[i] ); - lcl_GetPropertyWhich( pEntry, nItemWhich ); - pStates[i] = GetOnePropertyState(nItemWhich, pEntry); - } + std::transform(aPropertyNames.begin(), aPropertyNames.end(), aRet.begin(), + [this, &rPropertyMap](const auto& rName) -> beans::PropertyState { + sal_uInt16 nItemWhich = 0; + const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( rName ); + lcl_GetPropertyWhich( pEntry, nItemWhich ); + return GetOnePropertyState(nItemWhich, pEntry); + }); return aRet; } @@ -4266,34 +4257,24 @@ void SAL_CALL ScCellRangesObj::addRangeAddresses( const uno::Sequence<table::Cel sal_Bool bMergeRanges ) { SolarMutexGuard aGuard; - sal_Int32 nCount(rRanges.getLength()); - if (nCount) + for (const table::CellRangeAddress& rRange : rRanges) { - const table::CellRangeAddress* pRanges = rRanges.getConstArray(); - for (sal_Int32 i = 0; i < rRanges.getLength(); i++, pRanges++) - { - ScRange aRange(static_cast<SCCOL>(pRanges->StartColumn), - static_cast<SCROW>(pRanges->StartRow), - static_cast<SCTAB>(pRanges->Sheet), - static_cast<SCCOL>(pRanges->EndColumn), - static_cast<SCROW>(pRanges->EndRow), - static_cast<SCTAB>(pRanges->Sheet)); - AddRange(aRange, bMergeRanges); - } + ScRange aRange(static_cast<SCCOL>(rRange.StartColumn), + static_cast<SCROW>(rRange.StartRow), + static_cast<SCTAB>(rRange.Sheet), + static_cast<SCCOL>(rRange.EndColumn), + static_cast<SCROW>(rRange.EndRow), + static_cast<SCTAB>(rRange.Sheet)); + AddRange(aRange, bMergeRanges); } } void SAL_CALL ScCellRangesObj::removeRangeAddresses( const uno::Sequence<table::CellRangeAddress >& rRangeSeq ) { // use sometimes a better/faster implementation - sal_uInt32 nCount(rRangeSeq.getLength()); - if (nCount) + for (const table::CellRangeAddress& rRange : rRangeSeq) { - const table::CellRangeAddress* pRanges = rRangeSeq.getConstArray(); - for (sal_uInt32 i=0; i < nCount; ++i, ++pRanges) - { - removeRangeAddress(*pRanges); - } + removeRangeAddress(rRange); } } @@ -7177,10 +7158,9 @@ void SAL_CALL ScTableSheetObj::setPrintAreas( if (nCount) { ScRange aPrintRange; - const table::CellRangeAddress* pAry = aPrintAreas.getConstArray(); - for (sal_uInt16 i=0; i<nCount; i++) + for (const table::CellRangeAddress& rPrintArea : aPrintAreas) { - ScUnoConversion::FillScRange( aPrintRange, pAry[i] ); + ScUnoConversion::FillScRange( aPrintRange, rPrintArea ); rDoc.AddPrintRange( nTab, aPrintRange ); } } @@ -7768,18 +7748,13 @@ void SAL_CALL ScTableSheetObj::addRanges( const uno::Sequence<table::CellRangeAd ScMarkData aMarkData; aMarkData.SelectTable( nTab, true ); - sal_uInt16 nRangeCount = static_cast<sal_uInt16>(rScenRanges.getLength()); - if (nRangeCount) + for (const table::CellRangeAddress& rRange : rScenRanges) { - const table::CellRangeAddress* pAry = rScenRanges.getConstArray(); - for (sal_uInt16 i=0; i<nRangeCount; i++) - { - OSL_ENSURE( pAry[i].Sheet == nTab, "addRanges with wrong Tab" ); - ScRange aOneRange( static_cast<SCCOL>(pAry[i].StartColumn), static_cast<SCROW>(pAry[i].StartRow), nTab, - static_cast<SCCOL>(pAry[i].EndColumn), static_cast<SCROW>(pAry[i].EndRow), nTab ); + OSL_ENSURE( rRange.Sheet == nTab, "addRanges with wrong Tab" ); + ScRange aOneRange( static_cast<SCCOL>(rRange.StartColumn), static_cast<SCROW>(rRange.StartRow), nTab, + static_cast<SCCOL>(rRange.EndColumn), static_cast<SCROW>(rRange.EndRow), nTab ); - aMarkData.SetMultiMarkArea( aOneRange ); - } + aMarkData.SetMultiMarkArea( aOneRange ); } // Scenario ranges are tagged with attribute diff --git a/sc/source/ui/unoobj/cellvaluebinding.cxx b/sc/source/ui/unoobj/cellvaluebinding.cxx index 6a33f492e535..63012c3b9aef 100644 --- a/sc/source/ui/unoobj/cellvaluebinding.cxx +++ b/sc/source/ui/unoobj/cellvaluebinding.cxx @@ -495,17 +495,18 @@ namespace calc CellAddress aAddress; bool bFoundAddress = false; - const Any* pLoop = _rArguments.getConstArray(); - const Any* pLoopEnd = _rArguments.getConstArray() + _rArguments.getLength(); - for ( ; ( pLoop != pLoopEnd ) && !bFoundAddress; ++pLoop ) + for ( const Any& rArg : _rArguments ) { NamedValue aValue; - if ( *pLoop >>= aValue ) + if ( rArg >>= aValue ) { if ( aValue.Name == "BoundCell" ) { if ( aValue.Value >>= aAddress ) + { bFoundAddress = true; + break; + } } } } diff --git a/sc/source/ui/unoobj/chart2uno.cxx b/sc/source/ui/unoobj/chart2uno.cxx index 65117563285e..797784786db0 100644 --- a/sc/source/ui/unoobj/chart2uno.cxx +++ b/sc/source/ui/unoobj/chart2uno.cxx @@ -988,11 +988,11 @@ sal_Bool SAL_CALL ScChart2DataProvider::createDataSourcePossible( const uno::Seq return false; OUString aRangeRepresentation; - for(sal_Int32 i = 0; i < aArguments.getLength(); ++i) + for(const auto& rArgument : aArguments) { - if ( aArguments[i].Name == "CellRangeRepresentation" ) + if ( rArgument.Name == "CellRangeRepresentation" ) { - aArguments[i].Value >>= aRangeRepresentation; + rArgument.Value >>= aRangeRepresentation; } } @@ -1392,38 +1392,38 @@ ScChart2DataProvider::createDataSource( OUString aRangeRepresentation; uno::Sequence< sal_Int32 > aSequenceMapping; bool bTimeBased = false; - for(sal_Int32 i = 0; i < aArguments.getLength(); ++i) + for(const auto& rArgument : aArguments) { - if ( aArguments[i].Name == "DataRowSource" ) + if ( rArgument.Name == "DataRowSource" ) { chart::ChartDataRowSource eSource = chart::ChartDataRowSource_COLUMNS; - if( ! (aArguments[i].Value >>= eSource)) + if( ! (rArgument.Value >>= eSource)) { sal_Int32 nSource(0); - if( aArguments[i].Value >>= nSource ) + if( rArgument.Value >>= nSource ) eSource = static_cast< chart::ChartDataRowSource >( nSource ); } bOrientCol = (eSource == chart::ChartDataRowSource_COLUMNS); } - else if ( aArguments[i].Name == "FirstCellAsLabel" ) + else if ( rArgument.Name == "FirstCellAsLabel" ) { - bLabel = ::cppu::any2bool(aArguments[i].Value); + bLabel = ::cppu::any2bool(rArgument.Value); } - else if ( aArguments[i].Name == "HasCategories" ) + else if ( rArgument.Name == "HasCategories" ) { - bCategories = ::cppu::any2bool(aArguments[i].Value); + bCategories = ::cppu::any2bool(rArgument.Value); } - else if ( aArguments[i].Name == "CellRangeRepresentation" ) + else if ( rArgument.Name == "CellRangeRepresentation" ) { - aArguments[i].Value >>= aRangeRepresentation; + rArgument.Value >>= aRangeRepresentation; } - else if ( aArguments[i].Name == "SequenceMapping" ) + else if ( rArgument.Name == "SequenceMapping" ) { - aArguments[i].Value >>= aSequenceMapping; + rArgument.Value >>= aSequenceMapping; } - else if ( aArguments[i].Name == "TimeBased" ) + else if ( rArgument.Name == "TimeBased" ) { - aArguments[i].Value >>= bTimeBased; + rArgument.Value >>= bTimeBased; } } @@ -1531,10 +1531,10 @@ ScChart2DataProvider::createDataSource( aSeqVector.push_back(aSeq); } - for( sal_Int32 nNewIndex = 0; nNewIndex < aSequenceMapping.getLength(); nNewIndex++ ) + for( const sal_Int32 nNewIndex : aSequenceMapping ) { // note: assuming that the values in the sequence mapping are always non-negative - ::std::vector< uno::Reference< chart2::data::XLabeledDataSequence > >::size_type nOldIndex( static_cast< sal_uInt32 >( aSequenceMapping[nNewIndex] ) ); + ::std::vector< uno::Reference< chart2::data::XLabeledDataSequence > >::size_type nOldIndex( static_cast< sal_uInt32 >( nNewIndex ) ); if( nOldIndex < aSeqVector.size() ) { pDS->AddLabeledSequence( aSeqVector[nOldIndex] ); @@ -1749,9 +1749,8 @@ uno::Sequence< beans::PropertyValue > SAL_CALL ScChart2DataProvider::detectArgum Sequence< uno::Reference< chart2::data::XLabeledDataSequence > > aSequences( xDataSource->getDataSequences()); const sal_Int32 nCount( aSequences.getLength()); RangeAnalyzer aPrevLabel,aPrevValues; - for( sal_Int32 nIdx=0; nIdx<nCount; ++nIdx ) + for( const uno::Reference< chart2::data::XLabeledDataSequence >& xLS : aSequences ) { - uno::Reference< chart2::data::XLabeledDataSequence > xLS(aSequences[nIdx]); if( xLS.is() ) { bool bThisIsCategories = false; diff --git a/sc/source/ui/unoobj/chartuno.cxx b/sc/source/ui/unoobj/chartuno.cxx index 405cc31ec55c..9818888a7197 100644 --- a/sc/source/ui/unoobj/chartuno.cxx +++ b/sc/source/ui/unoobj/chartuno.cxx @@ -158,16 +158,11 @@ void SAL_CALL ScChartsObj::addNewByName( const OUString& rName, } ScRangeList* pList = new ScRangeList; - sal_Int32 nRangeCount = aRanges.getLength(); - if (nRangeCount) + for (const table::CellRangeAddress& rRange : aRanges) { - const table::CellRangeAddress* pAry = aRanges.getConstArray(); - for (sal_Int32 i=0; i<nRangeCount; i++) - { - ScRange aRange( static_cast<SCCOL>(pAry[i].StartColumn), pAry[i].StartRow, pAry[i].Sheet, - static_cast<SCCOL>(pAry[i].EndColumn), pAry[i].EndRow, pAry[i].Sheet ); - pList->push_back( aRange ); - } + ScRange aRange( static_cast<SCCOL>(rRange.StartColumn), rRange.StartRow, rRange.Sheet, + static_cast<SCCOL>(rRange.EndColumn), rRange.EndRow, rRange.Sheet ); + pList->push_back( aRange ); } ScRangeListRef xNewRanges( pList ); @@ -457,11 +452,8 @@ void ScChartObj::GetData_Impl( ScRangeListRef& rRanges, bool& rColHeaders, bool& chart::ChartDataRowSource eDataRowSource = chart::ChartDataRowSource_COLUMNS; bool bHasCategories=false; bool bFirstCellAsLabel=false; - const beans::PropertyValue* pPropArray = aArgs.getConstArray(); - long nPropCount = aArgs.getLength(); - for (long i = 0; i < nPropCount; i++) + for (const beans::PropertyValue& rProp : aArgs) { - const beans::PropertyValue& rProp = pPropArray[i]; OUString aPropName(rProp.Name); if (aPropName == "CellRangeRepresentation") @@ -689,16 +681,11 @@ void SAL_CALL ScChartObj::setRanges( const uno::Sequence<table::CellRangeAddress GetData_Impl( xOldRanges, bColHeaders, bRowHeaders ); ScRangeList* pList = new ScRangeList; - sal_uInt16 nRangeCount = static_cast<sal_uInt16>(aRanges.getLength()); - if (nRangeCount) + for (const table::CellRangeAddress& rRange : aRanges) { - const table::CellRangeAddress* pAry = aRanges.getConstArray(); - for (sal_uInt16 i=0; i<nRangeCount; i++) - { - ScRange aRange( static_cast<SCCOL>(pAry[i].StartColumn), pAry[i].StartRow, pAry[i].Sheet, - static_cast<SCCOL>(pAry[i].EndColumn), pAry[i].EndRow, pAry[i].Sheet ); - pList->push_back( aRange ); - } + ScRange aRange( static_cast<SCCOL>(rRange.StartColumn), rRange.StartRow, rRange.Sheet, + static_cast<SCCOL>(rRange.EndColumn), rRange.EndRow, rRange.Sheet ); + pList->push_back( aRange ); } ScRangeListRef xNewRanges( pList ); diff --git a/sc/source/ui/unoobj/condformatuno.cxx b/sc/source/ui/unoobj/condformatuno.cxx index 680eada26772..747b31402778 100644 --- a/sc/source/ui/unoobj/condformatuno.cxx +++ b/sc/source/ui/unoobj/condformatuno.cxx @@ -344,10 +344,10 @@ sal_Int32 ScCondFormatsObj::createByRange(const uno::Reference< sheet::XSheetCel xRanges->getRangeAddresses(); ScRangeList aCoreRange; - for (sal_Int32 i = 0, n = aRanges.getLength(); i < n; ++i) + for (const auto& rRange : aRanges) { ScRange aRange; - ScUnoConversion::FillScRange(aRange, aRanges[i]); + ScUnoConversion::FillScRange(aRange, rRange); aCoreRange.Join(aRange); } @@ -579,10 +579,10 @@ void SAL_CALL ScCondFormatObj::setPropertyValue( uno::Sequence<table::CellRangeAddress> aRanges = xRange->getRangeAddresses(); ScRangeList aTargetRange; - for (size_t i = 0, n = aRanges.getLength(); i < n; ++i) + for (const auto& rRange : aRanges) { ScRange aRange; - ScUnoConversion::FillScRange(aRange, aRanges[i]); + ScUnoConversion::FillScRange(aRange, rRange); aTargetRange.Join(aRange); } pFormat->SetRange(aTargetRange); diff --git a/sc/source/ui/unoobj/cursuno.cxx b/sc/source/ui/unoobj/cursuno.cxx index 0839e754e69d..af8fa73a767f 100644 --- a/sc/source/ui/unoobj/cursuno.cxx +++ b/sc/source/ui/unoobj/cursuno.cxx @@ -442,7 +442,6 @@ uno::Sequence<OUString> SAL_CALL ScCellCursorObj::getSupportedServiceNames() // get all service names from cell range uno::Sequence<OUString> aParentSeq(ScCellRangeObj::getSupportedServiceNames()); sal_Int32 nParentLen = aParentSeq.getLength(); - const OUString* pParentArr = aParentSeq.getConstArray(); // SheetCellCursor should be first (?) uno::Sequence<OUString> aTotalSeq( nParentLen + 2 ); @@ -451,8 +450,7 @@ uno::Sequence<OUString> SAL_CALL ScCellCursorObj::getSupportedServiceNames() pTotalArr[1] = SCCELLCURSOR_SERVICE; // append cell range services - for (long i=0; i<nParentLen; i++) - pTotalArr[i+2] = pParentArr[i]; + std::copy_n(aParentSeq.begin(), nParentLen, std::next(aTotalSeq.begin(), 2)); return aTotalSeq; } diff --git a/sc/source/ui/unoobj/dapiuno.cxx b/sc/source/ui/unoobj/dapiuno.cxx index 0d1a4c5f62fe..8228df10868c 100644 --- a/sc/source/ui/unoobj/dapiuno.cxx +++ b/sc/source/ui/unoobj/dapiuno.cxx @@ -836,10 +836,8 @@ void SAL_CALL ScDataPilotDescriptorBase::setPropertyValue( const OUString& aProp aServiceDesc = *pOldDesc; OUString aStrVal; - sal_Int32 nArgs = aArgSeq.getLength(); - for (sal_Int32 nArgPos=0; nArgPos<nArgs; ++nArgPos) + for (const beans::PropertyValue& rProp : aArgSeq) { - const beans::PropertyValue& rProp = aArgSeq[nArgPos]; OUString aPropName(rProp.Name); if (aPropName == SC_UNO_DP_SOURCENAME) @@ -1778,11 +1776,11 @@ void SAL_CALL ScDataPilotFieldObj::setPropertyValue( const OUString& aPropertyNa if( aValue >>= aSeq) { std::vector< ScGeneralFunction > aSubTotals(aSeq.getLength()); - for (sal_Int32 nIndex = 0; nIndex < aSeq.getLength(); nIndex++) - { - const int nValAsInt = static_cast<int>(aSeq[nIndex]); - aSubTotals[nIndex] = static_cast<ScGeneralFunction>(nValAsInt); - } + std::transform(aSeq.begin(), aSeq.end(), aSubTotals.begin(), + [](const sheet::GeneralFunction& rValue) -> ScGeneralFunction { + const int nValAsInt = static_cast<int>(rValue); + return static_cast<ScGeneralFunction>(nValAsInt); + }); setSubtotals( aSubTotals ); } } @@ -1792,10 +1790,8 @@ void SAL_CALL ScDataPilotFieldObj::setPropertyValue( const OUString& aPropertyNa if( aValue >>= aSeq ) { std::vector< ScGeneralFunction > aSubTotals(aSeq.getLength()); - for (sal_Int32 nIndex = 0; nIndex < aSeq.getLength(); nIndex++) - { - aSubTotals[nIndex] = static_cast<ScGeneralFunction>(aSeq[nIndex]); - } + std::transform(aSeq.begin(), aSeq.end(), aSubTotals.begin(), + [](sal_Int16 nValue) -> ScGeneralFunction { return static_cast<ScGeneralFunction>(nValue); }); setSubtotals( aSubTotals ); } } @@ -1912,13 +1908,12 @@ Any SAL_CALL ScDataPilotFieldObj::getPropertyValue( const OUString& aPropertyNam uno::Sequence<sal_Int16> aSeq = getSubtotals(); uno::Sequence<sheet::GeneralFunction> aNewSeq; aNewSeq.realloc(aSeq.getLength()); - for (sal_Int32 nIndex = 0; nIndex < aSeq.getLength(); nIndex++) - { - if (aSeq[nIndex] == sheet::GeneralFunction2::MEDIAN) - aNewSeq[nIndex] = sheet::GeneralFunction_NONE; - else - aNewSeq[nIndex] = static_cast<sheet::GeneralFunction>(aSeq[nIndex]); - } + std::transform(aSeq.begin(), aSeq.end(), aNewSeq.begin(), + [](sal_Int16 nFunc) -> sheet::GeneralFunction { + if (nFunc == sheet::GeneralFunction2::MEDIAN) + return sheet::GeneralFunction_NONE; + return static_cast<sheet::GeneralFunction>(nFunc); + }); aRet <<= aNewSeq; } else if ( aPropertyName == SC_UNONAME_SUBTOTALS2 ) @@ -2509,9 +2504,8 @@ Reference< XDataPilotField > SAL_CALL ScDataPilotFieldObj::createNameGroup( cons // (empty groups are removed, too) if ( pGroupDimension ) { - for (sal_Int32 nEntry = 0; nEntry < rItems.getLength(); nEntry++) + for (const OUString& aEntryName : rItems) { - const OUString& aEntryName = rItems[nEntry]; if ( pBaseGroupDim ) { // for each selected (intermediate) group, remove all its items @@ -2564,9 +2558,8 @@ Reference< XDataPilotField > SAL_CALL ScDataPilotFieldObj::createNameGroup( cons OUString aGroupName = pGroupDimension->CreateGroupName( ScResId(STR_PIVOT_GROUP) ); ScDPSaveGroupItem aGroup( aGroupName ); - for (sal_Int32 nEntry = 0; nEntry < rItems.getLength(); nEntry++) + for (const OUString& aEntryName : rItems) { - OUString aEntryName(rItems[nEntry]); if ( pBaseGroupDim ) { // for each selected (intermediate) group, add all its items diff --git a/sc/source/ui/unoobj/datauno.cxx b/sc/source/ui/unoobj/datauno.cxx index f7f8d30dbc8c..89064f898c31 100644 --- a/sc/source/ui/unoobj/datauno.cxx +++ b/sc/source/ui/unoobj/datauno.cxx @@ -204,11 +204,8 @@ void ScImportDescriptor::FillProperties( uno::Sequence<beans::PropertyValue>& rS void ScImportDescriptor::FillImportParam( ScImportParam& rParam, const uno::Sequence<beans::PropertyValue>& rSeq ) { OUString aStrVal; - const beans::PropertyValue* pPropArray = rSeq.getConstArray(); - long nPropCount = rSeq.getLength(); - for (long i = 0; i < nPropCount; i++) + for (const beans::PropertyValue& rProp : rSeq) { - const beans::PropertyValue& rProp = pPropArray[i]; OUString aPropName(rProp.Name); if (aPropName == SC_UNONAME_ISNATIVE) @@ -323,13 +320,10 @@ void ScSortDescriptor::FillProperties( uno::Sequence<beans::PropertyValue>& rSeq void ScSortDescriptor::FillSortParam( ScSortParam& rParam, const uno::Sequence<beans::PropertyValue>& rSeq ) { - const beans::PropertyValue* pPropArray = rSeq.getConstArray(); - long nPropCount = rSeq.getLength(); sal_Int16 nSortSize = rParam.GetSortKeyCount(); - for (long nProp = 0; nProp < nPropCount; nProp++) + for (const beans::PropertyValue& rProp : rSeq) { - const beans::PropertyValue& rProp = pPropArray[nProp]; OUString aPropName(rProp.Name); if (aPropName == SC_UNONAME_ORIENT) @@ -1125,12 +1119,12 @@ void fillQueryParam( ScQueryEntry::QueryItemsType& rItems = rEntry.GetQueryItems(); rItems.clear(); const uno::Sequence<sheet::FilterFieldValue>& rVals = pAry[i].Values; - for (sal_Int32 j = 0, n = rVals.getLength(); j < n; ++j) + for (const auto& rVal : rVals) { ScQueryEntry::Item aItem; - aItem.meType = rVals[j].IsNumeric ? ScQueryEntry::ByValue : ScQueryEntry::ByString; - aItem.mfVal = rVals[j].NumericValue; - aItem.maString = rPool.intern(rVals[j].StringValue); + aItem.meType = rVal.IsNumeric ? ScQueryEntry::ByValue : ScQueryEntry::ByString; ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits