[Libreoffice-commits] core.git: sc/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Dec 25 17:36:55 UTC 2018


 sc/source/ui/view/cellsh.cxx            |    7 -
 sc/source/ui/view/cellsh1.cxx           |   15 +-
 sc/source/ui/view/cellsh2.cxx           |    5 
 sc/source/ui/view/cliputil.cxx          |    7 -
 sc/source/ui/view/dbfunc3.cxx           |   36 ++----
 sc/source/ui/view/drawvie4.cxx          |    7 -
 sc/source/ui/view/editsh.cxx            |    5 
 sc/source/ui/view/formatsh.cxx          |   13 +-
 sc/source/ui/view/gridwin.cxx           |   37 +-----
 sc/source/ui/view/gridwin2.cxx          |   16 +-
 sc/source/ui/view/gridwin4.cxx          |    7 -
 sc/source/ui/view/output2.cxx           |    3 
 sc/source/ui/view/pfuncache.cxx         |   18 +--
 sc/source/ui/view/scextopt.cxx          |    4 
 sc/source/ui/view/spelldialog.cxx       |    9 -
 sc/source/ui/view/tabvwsh4.cxx          |   12 --
 sc/source/ui/view/tabvwshc.cxx          |   37 +++---
 sc/source/ui/view/tabvwshf.cxx          |   25 ++--
 sc/source/ui/view/viewdata.cxx          |   20 +--
 sc/source/ui/view/viewfun2.cxx          |   49 ++-------
 sc/source/ui/view/viewfun3.cxx          |   21 +--
 sc/source/ui/view/viewfun4.cxx          |   27 ++--
 sc/source/ui/view/viewfunc.cxx          |  173 +++++++++++++-------------------
 sc/source/ui/view/viewutil.cxx          |    4 
 sc/source/ui/xmlsource/xmlsourcedlg.cxx |   10 -
 25 files changed, 223 insertions(+), 344 deletions(-)

New commits:
commit 48b35ed43db87d21a943e66cfa4f59213dcfe3a1
Author:     Arkadiy Illarionov <qarkai at gmail.com>
AuthorDate: Sat Dec 22 19:54:56 2018 +0300
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Dec 25 18:36:29 2018 +0100

    Simplify containers iterations in sc/source/ui/{view,xmlsource}
    
    Use range-based loop or replace with STL functions
    
    Change-Id: I5604325cd25c099d3b5580956417620f298faa1e
    Reviewed-on: https://gerrit.libreoffice.org/65572
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx
index 13b9e546c579..26880e181969 100644
--- a/sc/source/ui/view/cellsh.cxx
+++ b/sc/source/ui/view/cellsh.cxx
@@ -1061,13 +1061,12 @@ void ScCellShell::GetState(SfxItemSet &rSet)
                         ScRangeList aRanges = *aRangesRef;
                         std::vector<sc::NoteEntry> aNotes;
                         pDoc->GetNotesInRange(aRanges, aNotes);
-                        for(std::vector<sc::NoteEntry>::const_iterator itr = aNotes.begin(),
-                                itrEnd = aNotes.end(); itr != itrEnd; ++itr)
+                        for(const auto& rNote : aNotes)
                         {
-                            const ScAddress& rAdr = itr->maPos;
+                            const ScAddress& rAdr = rNote.maPos;
                             if( pDoc->IsBlockEditable( rAdr.Tab(), rAdr.Col(), rAdr.Row(), rAdr.Col(), rAdr.Row() ))
                             {
-                                if (itr->mpNote->IsCaptionShown() != bSearchForHidden)
+                                if (rNote.mpNote->IsCaptionShown() != bSearchForHidden)
                                 {
                                     bEnable = true;
                                     break;
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index 0005ae903d63..5ad819c34da8 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -1966,11 +1966,10 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 bool bContainsExistingCondFormat = false;
                 if(bContainsCondFormat)
                 {
-                    for (std::vector<sal_uInt32>::const_iterator itr = rCondFormats.begin(), itrEnd = rCondFormats.end();
-                                            itr != itrEnd; ++itr)
+                    for (const auto& rCondFormat : rCondFormats)
                     {
                         // check if at least one existing conditional format has the same range
-                        pCondFormat = pList->GetFormat(*itr);
+                        pCondFormat = pList->GetFormat(rCondFormat);
                         if(!pCondFormat)
                             continue;
 
@@ -2176,10 +2175,9 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                                 if (!aNames.empty())
                                 {
                                     OUStringBuffer aBuffer;
-                                    for (std::vector<OUString>::const_iterator itr = aNames.begin();
-                                            itr != aNames.end(); ++itr)
+                                    for (const auto& rName : aNames)
                                     {
-                                        aBuffer.append(*itr).append(' ');
+                                        aBuffer.append(rName).append(' ');
                                     }
                                     pHdl->InsertFunction( aBuffer.makeStringAndClear(), false );       // without "()"
                                 }
@@ -2373,10 +2371,9 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                  OUString aUndo = ScResId( bShowNote ? STR_UNDO_SHOWALLNOTES : STR_UNDO_HIDEALLNOTES );
                  pData->GetDocShell()->GetUndoManager()->EnterListAction( aUndo, aUndo, 0, pData->GetViewShell()->GetViewShellId() );
 
-                 for(std::vector<sc::NoteEntry>::const_iterator itr = aNotes.begin(),
-                     itrEnd = aNotes.end(); itr != itrEnd; ++itr)
+                 for(const auto& rNote : aNotes)
                  {
-                     const ScAddress& rAdr = itr->maPos;
+                     const ScAddress& rAdr = rNote.maPos;
                      pData->GetDocShell()->GetDocFunc().ShowNote( rAdr, bShowNote );
                  }
 
diff --git a/sc/source/ui/view/cellsh2.cxx b/sc/source/ui/view/cellsh2.cxx
index 41343911fe3f..f827a032e1c2 100644
--- a/sc/source/ui/view/cellsh2.cxx
+++ b/sc/source/ui/view/cellsh2.cxx
@@ -727,9 +727,8 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
                     {
                         std::vector<OUString> aList;
                         const ScDBCollection::NamedDBs& rDBs = pDBCol->getNamedDBs();
-                        ScDBCollection::NamedDBs::const_iterator itr = rDBs.begin(), itrEnd = rDBs.end();
-                        for (; itr != itrEnd; ++itr)
-                            aList.push_back((*itr)->GetName());
+                        for (const auto& rxDB : rDBs)
+                            aList.push_back(rxDB->GetName());
 
                         ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
 
diff --git a/sc/source/ui/view/cliputil.cxx b/sc/source/ui/view/cliputil.cxx
index 21d642cb3cac..89d6f95b7f4f 100644
--- a/sc/source/ui/view/cliputil.cxx
+++ b/sc/source/ui/view/cliputil.cxx
@@ -101,11 +101,10 @@ bool ScClipUtil::CheckDestRanges(
     {
         ScRange aTest = rDest[i];
         // Check for filtered rows in all selected sheets.
-        ScMarkData::const_iterator itrTab = rMark.begin(), itrTabEnd = rMark.end();
-        for (; itrTab != itrTabEnd; ++itrTab)
+        for (const auto& rTab : rMark)
         {
-            aTest.aStart.SetTab(*itrTab);
-            aTest.aEnd.SetTab(*itrTab);
+            aTest.aStart.SetTab(rTab);
+            aTest.aEnd.SetTab(rTab);
             if (ScViewUtil::HasFiltered(aTest, pDoc))
             {
                 // I don't know how to handle pasting into filtered rows yet.
diff --git a/sc/source/ui/view/dbfunc3.cxx b/sc/source/ui/view/dbfunc3.cxx
index d1f57b46dead..92e288f3179b 100644
--- a/sc/source/ui/view/dbfunc3.cxx
+++ b/sc/source/ui/view/dbfunc3.cxx
@@ -1119,10 +1119,8 @@ void ScDBFunc::GroupDataPilot()
     // (empty groups are removed, too)
     if ( pGroupDimension )
     {
-        ScDPUniqueStringSet::const_iterator it = aEntries.begin(), itEnd = aEntries.end();
-        for (; it != itEnd; ++it)
+        for (const OUString& aEntryName : aEntries)
         {
-            const OUString& aEntryName = *it;
             if ( pBaseGroupDim )
             {
                 // for each selected (intermediate) group, remove all its items
@@ -1176,10 +1174,8 @@ void ScDBFunc::GroupDataPilot()
 
     OUString aGroupName = pGroupDimension->CreateGroupName(ScResId(STR_PIVOT_GROUP));
     ScDPSaveGroupItem aGroup( aGroupName );
-    ScDPUniqueStringSet::const_iterator it = aEntries.begin(), itEnd = aEntries.end();
-    for (; it != itEnd; ++it)
+    for (const OUString& aEntryName : aEntries)
     {
-        const OUString& aEntryName = *it;
         if ( pBaseGroupDim )
         {
             // for each selected (intermediate) group, add all its items
@@ -1259,9 +1255,8 @@ void ScDBFunc::UngroupDataPilot()
 
     if ( pGroupDim )
     {
-        ScDPUniqueStringSet::const_iterator it = aEntries.begin(), itEnd = aEntries.end();
-        for (; it != itEnd; ++it)
-            pGroupDim->RemoveGroup(*it);
+        for (const auto& rEntry : aEntries)
+            pGroupDim->RemoveGroup(rEntry);
 
         // remove group dimension if empty
         bool bEmptyDim = pGroupDim->IsEmpty();
@@ -1681,10 +1676,8 @@ void ScDBFunc::DataPilotSort(ScDPObject* pDPObj, long nDimIndex, bool bAscending
         vector<OUString> aMembers;
         std::unordered_set<OUString> aMemberSet;
         size_t nMemberCount = 0;
-        for (MemList::const_iterator itr = rDimMembers.begin(), itrEnd = rDimMembers.end();
-              itr != itrEnd; ++itr)
+        for (ScDPSaveMember* pMem : rDimMembers)
         {
-            ScDPSaveMember* pMem = *itr;
             aMembers.push_back(pMem->GetName());
             aMemberSet.insert(pMem->GetName());
             ++nMemberCount;
@@ -1834,9 +1827,8 @@ bool ScDBFunc::DataPilotMove( const ScRange& rSource, const ScAddress& rDest )
                     if ( !bInserted && aMemberNames[nMemberPos] == aDestData.MemberName )
                     {
                         // insert dragged items before this item
-                        for ( std::vector<OUString>::const_iterator aIter = aMembersVector.begin();
-                              aIter != aMembersVector.end(); ++aIter )
-                            lcl_MoveToEnd( *pDim, *aIter );
+                        for ( const auto& rMember : aMembersVector )
+                            lcl_MoveToEnd( *pDim, rMember );
                         bInserted = true;
                     }
 
@@ -1845,9 +1837,8 @@ bool ScDBFunc::DataPilotMove( const ScRange& rSource, const ScAddress& rDest )
                 }
                 // insert dragged item at end if dest wasn't found (for example, empty)
                 if ( !bInserted )
-                    for ( std::vector<OUString>::const_iterator aIter = aMembersVector.begin();
-                          aIter != aMembersVector.end(); ++aIter )
-                        lcl_MoveToEnd( *pDim, *aIter );
+                    for ( const auto& rMember : aMembersVector )
+                        lcl_MoveToEnd( *pDim, rMember );
 
                 // Items that were in SaveData, but not in the source, end up at the start of the list.
 
@@ -1969,19 +1960,16 @@ void ScDBFunc::SetDataPilotDetails(bool bShow, const OUString* pNewDimensionName
                     ScDPUniqueStringSet aVisibleEntries;
                     pDPObj->GetMemberResultNames( aVisibleEntries, nSelectDimension );
 
-                    ScDPUniqueStringSet::const_iterator it = aVisibleEntries.begin(), itEnd = aVisibleEntries.end();
-                    for (; it != itEnd; ++it)
+                    for (const OUString& aVisName : aVisibleEntries)
                     {
-                        const OUString& aVisName = *it;
                         ScDPSaveMember* pMember = pDim->GetMemberByName( aVisName );
                         pMember->SetShowDetails( false );
                     }
                 }
 
-                ScDPUniqueStringSet::const_iterator it = aEntries.begin(), itEnd = aEntries.end();
-                for (; it != itEnd; ++it)
+                for (const auto& rEntry : aEntries)
                 {
-                    ScDPSaveMember* pMember = pDim->GetMemberByName(*it);
+                    ScDPSaveMember* pMember = pDim->GetMemberByName(rEntry);
                     pMember->SetShowDetails( bShow );
                 }
 
diff --git a/sc/source/ui/view/drawvie4.cxx b/sc/source/ui/view/drawvie4.cxx
index 7eb67508d795..062edabb33eb 100644
--- a/sc/source/ui/view/drawvie4.cxx
+++ b/sc/source/ui/view/drawvie4.cxx
@@ -254,17 +254,16 @@ void getOleSourceRanges(const SdrMarkList& rMarkList, bool& rAnyOle, bool& rOneO
         return;
 
     // Compile all range representation strings into ranges.
-    std::vector<OUString>::const_iterator it = aRangeReps.begin(), itEnd = aRangeReps.end();
-    for (; it != itEnd; ++it)
+    for (const auto& rRangeRep : aRangeReps)
     {
         ScRangeList aRange;
         ScAddress aAddr;
-        if (aRange.Parse(*it, pDoc, pDoc->GetAddressConvention()) & ScRefFlags::VALID)
+        if (aRange.Parse(rRangeRep, pDoc, pDoc->GetAddressConvention()) & ScRefFlags::VALID)
         {
             for(size_t i = 0; i < aRange.size(); ++i)
                 pRanges->push_back(aRange[i]);
         }
-        else if (aAddr.Parse(*it, pDoc, pDoc->GetAddressConvention()) & ScRefFlags::VALID)
+        else if (aAddr.Parse(rRangeRep, pDoc, pDoc->GetAddressConvention()) & ScRefFlags::VALID)
             pRanges->push_back(aAddr);
     }
 
diff --git a/sc/source/ui/view/editsh.cxx b/sc/source/ui/view/editsh.cxx
index ecef90136b04..b06f3f7605a2 100644
--- a/sc/source/ui/view/editsh.cxx
+++ b/sc/source/ui/view/editsh.cxx
@@ -476,10 +476,9 @@ void ScEditShell::Execute( SfxRequest& rReq )
                     if (!aNames.empty())
                     {
                         OUStringBuffer aBuffer;
-                        for (std::vector<OUString>::const_iterator itr = aNames.begin();
-                                itr != aNames.end(); ++itr)
+                        for (const auto& rName : aNames)
                         {
-                            aBuffer.append(*itr).append(' ');
+                            aBuffer.append(rName).append(' ');
                         }
                         pTableView->InsertText(aBuffer.toString());
                         if (pTopView)
diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx
index 37b2c863751d..e3c560a4661e 100644
--- a/sc/source/ui/view/formatsh.cxx
+++ b/sc/source/ui/view/formatsh.cxx
@@ -703,17 +703,18 @@ void ScFormatShell::ExecuteStyle( SfxRequest& rReq )
                         {
                             std::unique_ptr<ScUndoApplyPageStyle> pUndoAction;
                             SCTAB nTabCount = rDoc.GetTableCount();
-                            ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-                            for (; itr != itrEnd && *itr < nTabCount; ++itr)
+                            for (const auto& rTab : rMark)
                             {
-                                OUString aOldName = rDoc.GetPageStyle( *itr );
+                                if (rTab >= nTabCount)
+                                    break;
+                                OUString aOldName = rDoc.GetPageStyle( rTab );
                                 if ( aOldName != aStyleName )
                                 {
-                                    rDoc.SetPageStyle( *itr, aStyleName );
-                                    ScPrintFunc( pDocSh, pTabViewShell->GetPrinter(true), *itr ).UpdatePages();
+                                    rDoc.SetPageStyle( rTab, aStyleName );
+                                    ScPrintFunc( pDocSh, pTabViewShell->GetPrinter(true), rTab ).UpdatePages();
                                     if( !pUndoAction )
                                         pUndoAction.reset(new ScUndoApplyPageStyle( pDocSh, aStyleName ));
-                                    pUndoAction->AddSheetAction( *itr, aOldName );
+                                    pUndoAction->AddSheetAction( rTab, aOldName );
                                 }
                             }
                             if( pUndoAction )
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index ab30657d4482..a1a2c6049379 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -684,15 +684,14 @@ void ScGridWindow::LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow)
 
     mpAutoFilterPopup->setHasDates(aFilterEntries.mbHasDates);
     mpAutoFilterPopup->setMemberSize(aFilterEntries.size());
-    std::vector<ScTypedStrData>::const_iterator it = aFilterEntries.begin(), itEnd = aFilterEntries.end();
-    for (; it != itEnd; ++it)
+    for (const auto& rEntry : aFilterEntries)
     {
-        const OUString& aVal = it->GetString();
+        const OUString& aVal = rEntry.GetString();
         bool bSelected = true;
         if (!aSelected.empty())
             bSelected = aSelected.count(aVal) > 0;
-        if ( it->IsDate() )
-            mpAutoFilterPopup->addDateMember( aVal, it->GetValue(), bSelected );
+        if ( rEntry.IsDate() )
+            mpAutoFilterPopup->addDateMember( aVal, rEntry.GetValue(), bSelected );
         else
             mpAutoFilterPopup->addMember(aVal, bSelected);
     }
@@ -1134,9 +1133,8 @@ void ScGridWindow::LaunchDataSelectMenu( SCCOL nCol, SCROW nRow )
         if (bWait)
             EnterWait();
 
-        std::vector<ScTypedStrData>::const_iterator it = aStrings.begin(), itEnd = aStrings.end();
-        for (; it != itEnd; ++it)
-            mpFilterBox->InsertEntry(it->GetString());
+        for (const auto& rString : aStrings)
+            mpFilterBox->InsertEntry(rString.GetString());
 
         if (bWait)
             LeaveWait();
@@ -1162,26 +1160,9 @@ void ScGridWindow::LaunchDataSelectMenu( SCCOL nCol, SCROW nRow )
             else
                 pNew.reset(new ScTypedStrData(aDocStr, 0.0, ScTypedStrData::Standard));
 
-            bool bSortList = ( pData->GetListType() == css::sheet::TableValidationVisibility::SORTEDASCENDING);
-            if ( bSortList )
-            {
-                std::vector<ScTypedStrData>::const_iterator itBeg = aStrings.begin(), itEnd = aStrings.end();
-                std::vector<ScTypedStrData>::const_iterator it =
-                    std::find_if(itBeg, itEnd, FindTypedStrData(*pNew, true));
-                if (it != itEnd)
-                    // Found!
-                    nSelPos = std::distance(itBeg, it);
-            }
-            else
-            {
-                std::vector<ScTypedStrData>::const_iterator itBeg = aStrings.begin(), itEnd = aStrings.end();
-                std::vector<ScTypedStrData>::const_iterator it = itBeg;
-                for (; it != itEnd && LISTBOX_ENTRY_NOTFOUND == nSelPos; ++it)
-                {
-                    if (ScTypedStrData::EqualCaseSensitive()(*it, *pNew))
-                        nSelPos = std::distance(itBeg, it);
-                }
-            }
+            auto it = std::find_if(aStrings.begin(), aStrings.end(), FindTypedStrData(*pNew, true));
+            if (it != aStrings.end())
+                nSelPos = static_cast<sal_Int32>(std::distance(aStrings.begin(), it));
         }
     }
 
diff --git a/sc/source/ui/view/gridwin2.cxx b/sc/source/ui/view/gridwin2.cxx
index 8f3ae51260de..5a00f4b51c51 100644
--- a/sc/source/ui/view/gridwin2.cxx
+++ b/sc/source/ui/view/gridwin2.cxx
@@ -560,33 +560,31 @@ void ScGridWindow::UpdateDPFromFieldPopupMenu()
     // Build a map of layout names to original names.
     const ScDPLabelData& rLabelData = pDPData->maLabels;
     MemNameMapType aMemNameMap;
-    for (vector<ScDPLabelData::Member>::const_iterator itr = rLabelData.maMembers.begin(), itrEnd = rLabelData.maMembers.end();
-           itr != itrEnd; ++itr)
-        aMemNameMap.emplace(itr->maLayoutName, itr->maName);
+    for (const auto& rMember : rLabelData.maMembers)
+        aMemNameMap.emplace(rMember.maLayoutName, rMember.maName);
 
     // The raw result may contain a mixture of layout names and original names.
     ScCheckListMenuWindow::ResultType aRawResult;
     mpDPFieldPopup->getResult(aRawResult);
 
     std::unordered_map<OUString, bool> aResult;
-    ScCheckListMenuWindow::ResultType::const_iterator itr = aRawResult.begin(), itrEnd = aRawResult.end();
-    for (; itr != itrEnd; ++itr)
+    for (const auto& rItem : aRawResult)
     {
-        MemNameMapType::const_iterator itrNameMap = aMemNameMap.find(itr->aName);
+        MemNameMapType::const_iterator itrNameMap = aMemNameMap.find(rItem.aName);
         if (itrNameMap == aMemNameMap.end())
         {
             // This is an original member name.  Use it as-is.
-            OUString aName = itr->aName;
+            OUString aName = rItem.aName;
             if (aName == ScResId(STR_EMPTYDATA))
                 // Translate the special empty name into an empty string.
                 aName.clear();
 
-            aResult.emplace(aName, itr->bValid);
+            aResult.emplace(aName, rItem.bValid);
         }
         else
         {
             // This is a layout name.  Get the original member name and use it.
-            aResult.emplace(itrNameMap->second, itr->bValid);
+            aResult.emplace(itrNameMap->second, rItem.bValid);
         }
     }
     pDim->UpdateMemberVisibility(aResult);
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 99329375b2c2..39544d08c5dd 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -259,16 +259,15 @@ static void lcl_DrawHighlight( ScOutputData& rOutputData, const ScViewData* pVie
                         const std::vector<ScHighlightEntry>& rHighlightRanges )
 {
     SCTAB nTab = pViewData->GetTabNo();
-    std::vector<ScHighlightEntry>::const_iterator pIter;
-    for ( pIter = rHighlightRanges.begin(); pIter != rHighlightRanges.end(); ++pIter)
+    for ( const auto& rHighlightRange : rHighlightRanges)
     {
-        ScRange aRange = pIter->aRef;
+        ScRange aRange = rHighlightRange.aRef;
         if ( nTab >= aRange.aStart.Tab() && nTab <= aRange.aEnd.Tab() )
         {
             rOutputData.DrawRefMark(
                                 aRange.aStart.Col(), aRange.aStart.Row(),
                                 aRange.aEnd.Col(), aRange.aEnd.Row(),
-                                pIter->aColor, false );
+                                rHighlightRange.aColor, false );
         }
     }
 }
diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx
index 9a1652834d9c..808aae367f94 100644
--- a/sc/source/ui/view/output2.cxx
+++ b/sc/source/ui/view/output2.cxx
@@ -2186,9 +2186,8 @@ static void lcl_ScaleFonts( EditEngine& rEngine, long nPercent )
         rEngine.GetPortions( nPar, aPortions );
 
         sal_Int32 nStart = 0;
-        for ( std::vector<sal_Int32>::const_iterator it(aPortions.begin()); it != aPortions.end(); ++it )
+        for ( const sal_Int32 nEnd : aPortions )
         {
-            sal_Int32 nEnd = *it;
             ESelection aSel( nPar, nStart, nPar, nEnd );
             SfxItemSet aAttribs = rEngine.GetAttribs( aSel );
 
diff --git a/sc/source/ui/view/pfuncache.cxx b/sc/source/ui/view/pfuncache.cxx
index c738d4920f79..3f61a68b2960 100644
--- a/sc/source/ui/view/pfuncache.cxx
+++ b/sc/source/ui/view/pfuncache.cxx
@@ -96,10 +96,10 @@ void ScPrintFuncCache::InitLocations( const ScMarkData& rMark, OutputDevice* pDe
 
     ScDocument& rDoc = pDocSh->GetDocument();
     SCTAB nTabCount = rDoc.GetTableCount();
-    ScMarkData::const_iterator itr = rMark.begin(), itrEnd = rMark.end();
-    for (; itr != itrEnd && (*itr) < nTabCount; ++itr)
+    for (SCTAB nTab : rMark)
     {
-        SCTAB nTab = *itr;
+        if (nTab >= nTabCount)
+            break;
         ScPrintFunc aFunc( pDev, pDocSh, nTab, nFirstAttr[nTab], nTotalPages, pSelRange, &aSelection.GetOptions() );
         aFunc.SetRenderFlag( true );
 
@@ -131,14 +131,12 @@ void ScPrintFuncCache::InitLocations( const ScMarkData& rMark, OutputDevice* pDe
 
 bool ScPrintFuncCache::FindLocation( const ScAddress& rCell, ScPrintPageLocation& rLocation ) const
 {
-    for ( std::vector<ScPrintPageLocation>::const_iterator aIter(aLocations.begin()), aEnd(aLocations.end());
-          aIter != aEnd; ++aIter )
+    auto aIter = std::find_if(aLocations.begin(), aLocations.end(),
+        [&rCell](const ScPrintPageLocation& rLoc) { return rLoc.aCellRange.In(rCell); });
+    if (aIter != aLocations.end())
     {
-        if ( aIter->aCellRange.In( rCell ) )
-        {
-            rLocation = *aIter;
-            return true;
-        }
+        rLocation = *aIter;
+        return true;
     }
     return false;   // not found
 }
diff --git a/sc/source/ui/view/scextopt.cxx b/sc/source/ui/view/scextopt.cxx
index 8bf3e0c173d6..38b08bd58545 100644
--- a/sc/source/ui/view/scextopt.cxx
+++ b/sc/source/ui/view/scextopt.cxx
@@ -113,8 +113,8 @@ SCTAB ScExtTabSettingsCont::GetLastTab() const
 void ScExtTabSettingsCont::CopyFromMap( const ScExtTabSettingsMap& rMap )
 {
     maMap.clear();
-    for( ScExtTabSettingsMap::const_iterator aIt = rMap.begin(), aEnd = rMap.end(); aIt != aEnd; ++aIt )
-        maMap[ aIt->first ].reset( new ScExtTabSettings( *aIt->second ) );
+    for( const auto& [rTab, rxSettings] : rMap )
+        maMap[ rTab ].reset( new ScExtTabSettings( *rxSettings ) );
 }
 
 /** Implementation struct for ScExtDocOptions containing all members. */
diff --git a/sc/source/ui/view/spelldialog.cxx b/sc/source/ui/view/spelldialog.cxx
index f46080430263..da0d5d0f1e4e 100644
--- a/sc/source/ui/view/spelldialog.cxx
+++ b/sc/source/ui/view/spelldialog.cxx
@@ -225,13 +225,12 @@ void ScSpellDialogChildWindow::Init()
 
     if ( rMarkData.GetSelectCount() > 1 )
     {
-        ScMarkData::iterator itr = rMarkData.begin(), itrEnd = rMarkData.end();
-        for (; itr != itrEnd; ++itr)
+        for (const auto& rTab : rMarkData)
         {
-            if( *itr != nTab )
+            if( rTab != nTab )
             {
-                mxUndoDoc->AddUndoTab( *itr, *itr );
-                mxRedoDoc->AddUndoTab( *itr, *itr );
+                mxUndoDoc->AddUndoTab( rTab, rTab );
+                mxRedoDoc->AddUndoTab( rTab, rTab );
             }
         }
     }
diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx
index 696ca8babcf1..e12565ddf741 100644
--- a/sc/source/ui/view/tabvwsh4.cxx
+++ b/sc/source/ui/view/tabvwsh4.cxx
@@ -1579,16 +1579,8 @@ void ScTabViewShell::Construct( TriState nForceDesignMode )
             if ( pDBColl )
             {
                 const ScDBCollection::NamedDBs& rDBs = pDBColl->getNamedDBs();
-                ScDBCollection::NamedDBs::const_iterator itr = rDBs.begin(), itrEnd = rDBs.end();
-                for (; itr != itrEnd; ++itr)
-                {
-                    if ((*itr)->IsStripData() && (*itr)->HasImportParam()
-                        && !(*itr)->HasImportSelection())
-                    {
-                        bReImport = true;
-                        break;
-                    }
-                }
+                bReImport = std::any_of(rDBs.begin(), rDBs.end(),
+                    [](const std::unique_ptr<ScDBData>& rxDB) { return rxDB->IsStripData() && rxDB->HasImportParam() && !rxDB->HasImportSelection(); });
             }
             if (bReImport)
             {
diff --git a/sc/source/ui/view/tabvwshc.cxx b/sc/source/ui/view/tabvwshc.cxx
index 85f7dba8d8ca..ad2bf5a57a77 100644
--- a/sc/source/ui/view/tabvwshc.cxx
+++ b/sc/source/ui/view/tabvwshc.cxx
@@ -648,23 +648,28 @@ bool ScTabViewShell::UseSubTotal(ScRangeList* pRangeList)
         ++nRangeIndex;
     }
 
-    const ScDBCollection::NamedDBs& rDBs = pDoc->GetDBCollection()->getNamedDBs();
-    ScDBCollection::NamedDBs::const_iterator itr = rDBs.begin(), itrEnd = rDBs.end();
-    for (; !bSubTotal && itr != itrEnd; ++itr)
+    if (!bSubTotal)
     {
-        const ScDBData& rDB = **itr;
-        if (!rDB.HasAutoFilter())
-            continue;
-
-        nRangeIndex = 0;
-        while (!bSubTotal && nRangeIndex < nRangeCount)
-        {
-            const ScRange & rRange = (*pRangeList)[nRangeIndex];
-            ScRange aDBArea;
-            rDB.GetArea(aDBArea);
-            if (aDBArea.Intersects(rRange))
-                bSubTotal = true;
-            ++nRangeIndex;
+        const ScDBCollection::NamedDBs& rDBs = pDoc->GetDBCollection()->getNamedDBs();
+        for (const auto& rxDB : rDBs)
+        {
+            const ScDBData& rDB = *rxDB;
+            if (!rDB.HasAutoFilter())
+                continue;
+
+            nRangeIndex = 0;
+            while (!bSubTotal && nRangeIndex < nRangeCount)
+            {
+                const ScRange & rRange = (*pRangeList)[nRangeIndex];
+                ScRange aDBArea;
+                rDB.GetArea(aDBArea);
+                if (aDBArea.Intersects(rRange))
+                    bSubTotal = true;
+                ++nRangeIndex;
+            }
+
+            if (bSubTotal)
+                break;
         }
     }
     return bSubTotal;
diff --git a/sc/source/ui/view/tabvwshf.cxx b/sc/source/ui/view/tabvwshf.cxx
index e0fbd782619b..8c2f733dd32b 100644
--- a/sc/source/ui/view/tabvwshf.cxx
+++ b/sc/source/ui/view/tabvwshf.cxx
@@ -604,10 +604,8 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
                         if (pDPs)
                         {
                             const ScMarkData::MarkedTabsType& rSelectedTabs = rViewData.GetMarkData().GetSelectedTabs();
-                            for (ScMarkData::MarkedTabsType::const_iterator iterator = rSelectedTabs.begin();
-                                    iterator != rSelectedTabs.end() && !bTabWithPivotTable; ++iterator )
+                            for (const SCTAB nSelTab : rSelectedTabs)
                             {
-                                const SCTAB nSelTab = *iterator;
                                 const size_t nCount = pDPs->GetCount();
                                 for (size_t i = 0; i < nCount; ++i)
                                 {
@@ -616,6 +614,8 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
                                     if (pSheetSourceDesc && pSheetSourceDesc->GetSourceRange().aStart.Tab() == nSelTab)
                                         bTabWithPivotTable = true;
                                 }
+                                if (bTabWithPivotTable)
+                                    break;
                             }
                         }
                     }
@@ -699,9 +699,8 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
                     OUString aUndo = ScResId( STR_UNDO_TAB_RTL );
                     pUndoManager->EnterListAction( aUndo, aUndo, 0, rViewData.GetViewShell()->GetViewShellId() );
 
-                    ScMarkData::const_iterator itr = rMark.begin(), itrEnd = rMark.end();
-                    for (; itr != itrEnd; ++itr)
-                        rFunc.SetLayoutRTL( *itr, bSet );
+                    for (const auto& rTab : rMark)
+                        rFunc.SetLayoutRTL( rTab, bSet );
 
                     pUndoManager->LeaveListAction();
                 }
@@ -748,12 +747,11 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
                     {
                         std::unique_ptr<ScUndoTabColorInfo::List>
                             pTabColorList(new ScUndoTabColorInfo::List);
-                        ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-                        for (; itr != itrEnd; ++itr)
+                        for (const auto& rTab : rMark)
                         {
-                            if ( !pDoc->IsTabProtected(*itr) )
+                            if ( !pDoc->IsTabProtected(rTab) )
                             {
-                                ScUndoTabColorInfo aTabColorInfo(*itr);
+                                ScUndoTabColorInfo aTabColorInfo(rTab);
                                 aTabColorInfo.maNewTabBgColor = aColor;
                                 pTabColorList->push_back(aTabColorInfo);
                             }
@@ -793,12 +791,11 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
                                 pTabColorList(new ScUndoTabColorInfo::List);
                             if ( nTabSelCount > 1 )
                             {
-                                ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-                                for (; itr != itrEnd; ++itr)
+                                for (const auto& rTab : rMark)
                                 {
-                                    if ( !pDoc->IsTabProtected(*itr) )
+                                    if ( !pDoc->IsTabProtected(rTab) )
                                     {
-                                        ScUndoTabColorInfo aTabColorInfo(*itr);
+                                        ScUndoTabColorInfo aTabColorInfo(rTab);
                                         aTabColorInfo.maNewTabBgColor = aSelectedColor;
                                         pTabColorList->push_back(aTabColorInfo);
                                     }
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index c18d9289e1d5..0991ec545eea 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -952,9 +952,8 @@ void ScViewData::MoveTab( SCTAB nSrcTab, SCTAB nDestTab )
 
 void ScViewData::CreateTabData( std::vector< SCTAB >& rvTabs )
 {
-    std::vector< SCTAB >::iterator it_end = rvTabs.end();
-    for ( std::vector< SCTAB >::iterator it = rvTabs.begin(); it != it_end; ++it )
-        CreateTabData(*it);
+    for ( const auto& rTab : rvTabs )
+        CreateTabData(rTab);
 }
 
 void ScViewData::SetZoomType( SvxZoomType eNew, std::vector< SCTAB >& tabs )
@@ -975,11 +974,8 @@ void ScViewData::SetZoomType( SvxZoomType eNew, std::vector< SCTAB >& tabs )
     }
     else
     {
-        std::vector< SCTAB >::iterator it_end = tabs.end();
-        std::vector< SCTAB >::iterator it = tabs.begin();
-        for ( ; it != it_end; ++it )
+        for ( const SCTAB& i : tabs )
         {
-            SCTAB i = *it;
             if ( i < static_cast<SCTAB>(maTabData.size()) && maTabData[i] )
                 maTabData[i]->eZoomType = eNew;
         }
@@ -1040,11 +1036,8 @@ void ScViewData::SetZoom( const Fraction& rNewX, const Fraction& rNewY, std::vec
     }
     else
     {
-        std::vector< SCTAB >::iterator it_end = tabs.end();
-        std::vector< SCTAB >::iterator it = tabs.begin();
-        for ( ; it != it_end; ++it )
+        for ( const SCTAB& i : tabs )
         {
-            SCTAB i = *it;
             if ( i < static_cast<SCTAB>(maTabData.size()) && maTabData[i] )
             {
                 if ( bPagebreak )
@@ -1964,9 +1957,8 @@ void ScViewData::CreateTabData( SCTAB nNewTab )
 
 void ScViewData::CreateSelectedTabData()
 {
-    ScMarkData::iterator itr = mpMarkData->begin(), itrEnd = mpMarkData->end();
-    for (; itr != itrEnd; ++itr)
-        CreateTabData(*itr);
+    for (const auto& rTab : *mpMarkData)
+        CreateTabData(rTab);
 }
 
 void ScViewData::EnsureTabDataSize(size_t nSize)
diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx
index a20e0ae05641..8d4a892677d7 100644
--- a/sc/source/ui/view/viewfun2.cxx
+++ b/sc/source/ui/view/viewfun2.cxx
@@ -138,17 +138,14 @@ bool ScViewFunc::AdjustBlockHeight( bool bPaint, ScMarkData* pMarkData )
 
     sc::RowHeightContext aCxt(nPPTX, nPPTY, aZoomX, aZoomY, aProv.GetDevice());
     bool bAnyChanged = false;
-    ScMarkData::iterator itr = pMarkData->begin(), itrEnd = pMarkData->end();
-    for (; itr != itrEnd; ++itr)
+    for (const SCTAB& nTab : *pMarkData)
     {
-        SCTAB nTab = *itr;
         bool bChanged = false;
         SCROW nPaintY = 0;
-        std::vector<sc::ColRowSpan>::const_iterator itRows = aMarkedRows.begin(), itRowsEnd = aMarkedRows.end();
-        for (; itRows != itRowsEnd; ++itRows)
+        for (const auto& rRow : aMarkedRows)
         {
-            SCROW nStartNo = itRows->mnStart;
-            SCROW nEndNo = itRows->mnEnd;
+            SCROW nStartNo = rRow.mnStart;
+            SCROW nEndNo = rRow.mnEnd;
             ScAddress aTopLeft(0, nStartNo, nTab);
             rDoc.UpdateScriptTypes(aTopLeft, MAXCOLCOUNT, nEndNo-nStartNo+1);
             if (rDoc.SetOptimalHeight(aCxt, nStartNo, nEndNo, nTab))
@@ -947,17 +944,14 @@ void ScViewFunc::SetPrintRanges( bool bEntireSheet, const OUString* pPrint,
     ScDocShell* pDocSh  = GetViewData().GetDocShell();
     ScDocument& rDoc    = pDocSh->GetDocument();
     ScMarkData& rMark   = GetViewData().GetMarkData();
-    SCTAB nTab;
     bool bUndo (rDoc.IsUndoEnabled());
 
     std::unique_ptr<ScPrintRangeSaver> pOldRanges = rDoc.CreatePrintRangeSaver();
 
     ScAddress::Details aDetails(rDoc.GetAddressConvention(), 0, 0);
 
-    ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-    for (; itr != itrEnd; ++itr)
+    for (const SCTAB& nTab : rMark)
     {
-        nTab = *itr;
         ScRange aRange( 0,0,nTab );
 
         //  print ranges
@@ -1039,9 +1033,8 @@ void ScViewFunc::SetPrintRanges( bool bEntireSheet, const OUString* pPrint,
 
     //  update page breaks
 
-    itr = rMark.begin();
-    for (; itr != itrEnd; ++itr)
-        ScPrintFunc( pDocSh, pDocSh->GetPrinter(), *itr ).UpdatePages();
+    for (const auto& rTab : rMark)
+        ScPrintFunc( pDocSh, pDocSh->GetPrinter(), rTab ).UpdatePages();
 
     SfxBindings& rBindings = GetViewData().GetBindings();
     rBindings.Invalidate( SID_DELETE_PRINTAREA );
@@ -1114,10 +1107,8 @@ bool ScViewFunc::MergeCells( bool bApi, bool& rDoContents, bool bCenter )
     // Check for the contents of all selected tables.
     bool bAskDialog = false;
     ScCellMergeOption aMergeOption(nStartCol, nStartRow, nEndCol, nEndRow, bCenter);
-    ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-    for (; itr != itrEnd; ++itr)
+    for (const SCTAB& i : rMark)
     {
-        SCTAB i = *itr;
         aMergeOption.maTabs.insert(i);
 
         sc::MultiDataCellState aState = rDoc.HasMultipleDataCells(aMergeOption.getSingleRange(i));
@@ -1254,10 +1245,8 @@ bool ScViewFunc::RemoveMerge()
         do
         {
             bExtended = false;
-            ScMarkData::const_iterator itr = rMark.begin(), itrEnd = rMark.end();
-            for (; itr != itrEnd; ++itr)
+            for (const SCTAB& i : rMark)
             {
-                SCTAB i = *itr;
                 aOption.maTabs.insert(i);
                 aExtended.aStart.SetTab(i);
                 aExtended.aEnd.SetTab(i);
@@ -1565,11 +1554,9 @@ void ScViewFunc::FillTab( InsertDeleteFlags nFlags, ScPasteFunc nFunction, bool
         pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
         pUndoDoc->InitUndo( &rDoc, nTab, nTab );
 
-        ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-        for (; itr != itrEnd; ++itr)
-            if (*itr != nTab )
+        for (const SCTAB& i : rMark)
+            if (i != nTab )
             {
-                SCTAB i = *itr;
                 pUndoDoc->AddUndoTab( i, i );
                 aMarkRange.aStart.SetTab( i );
                 aMarkRange.aEnd.SetTab( i );
@@ -1918,9 +1905,8 @@ bool ScViewFunc::SearchAndReplace( const SvxSearchItem* pSearchItem,
         for (SCTAB i = 0; i <= nEndTab; ++i)
             rMark.SelectTable(i, false);
 
-        std::set<SCTAB>::const_iterator itr = aOldSelectedTables.begin(), itrEnd = aOldSelectedTables.end();
-        for (; itr != itrEnd; ++itr)
-            rMark.SelectTable(*itr, true);
+        for (const auto& rTab : aOldSelectedTables)
+            rMark.SelectTable(rTab, true);
 
         if ( bFound )
         {   // if a table is selected as a "match" it remains selected.
@@ -2994,14 +2980,12 @@ void ScViewFunc::ShowTable( const std::vector<OUString>& rNames )
     bool bUndo(rDoc.IsUndoEnabled());
 
     std::vector<SCTAB> undoTabs;
-    OUString aName;
     SCTAB nPos = 0;
 
     bool bFound(false);
 
-    for (std::vector<OUString>::const_iterator itr=rNames.begin(), itrEnd = rNames.end(); itr!=itrEnd; ++itr)
+    for (const OUString& aName : rNames)
     {
-        aName = *itr;
         if (rDoc.GetTable(aName, nPos))
         {
             rDoc.SetVisible( nPos, true );
@@ -3041,15 +3025,12 @@ void ScViewFunc::HideTable( const ScMarkData& rMark )
 
     if (nVisible > nTabSelCount)
     {
-        SCTAB nTab;
-        ScMarkData::MarkedTabsType::const_iterator it;
         std::vector<SCTAB> undoTabs;
 
         // need to take a copy of selectedtabs since it is modified in the loop
         const ScMarkData::MarkedTabsType selectedTabs = rMark.GetSelectedTabs();
-        for (it=selectedTabs.begin(); it!=selectedTabs.end(); ++it)
+        for (const SCTAB& nTab : selectedTabs)
         {
-            nTab = *it;
             if (rDoc.IsVisible( nTab ))
             {
                 rDoc.SetVisible( nTab, false );
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx
index d412bbb29423..d9a5b81891c1 100644
--- a/sc/source/ui/view/viewfun3.cxx
+++ b/sc/source/ui/view/viewfun3.cxx
@@ -821,11 +821,8 @@ bool ScViewFunc::PasteOnDrawObjectLinked(
 static bool lcl_SelHasAttrib( const ScDocument* pDoc, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
                         const ScMarkData& rTabSelection, HasAttrFlags nMask )
 {
-    ScMarkData::const_iterator itr = rTabSelection.begin(), itrEnd = rTabSelection.end();
-    for (; itr != itrEnd; ++itr)
-        if ( pDoc->HasAttrib( nCol1, nRow1, *itr, nCol2, nRow2, *itr, nMask ) )
-            return true;
-    return false;
+    return std::any_of(rTabSelection.begin(), rTabSelection.end(),
+        [&](const SCTAB& rTab) { return pDoc->HasAttrib( nCol1, nRow1, rTab, nCol2, nRow2, rTab, nMask ); });
 }
 
 //  paste into sheet:
@@ -837,17 +834,18 @@ namespace {
 bool checkDestRangeForOverwrite(const ScRangeList& rDestRanges, const ScDocument* pDoc, const ScMarkData& rMark, weld::Window* pParentWnd)
 {
     bool bIsEmpty = true;
-    ScMarkData::const_iterator itrTab = rMark.begin(), itrTabEnd = rMark.end();
     size_t nRangeSize = rDestRanges.size();
-    for (; itrTab != itrTabEnd && bIsEmpty; ++itrTab)
+    for (const auto& rTab : rMark)
     {
         for (size_t i = 0; i < nRangeSize && bIsEmpty; ++i)
         {
             const ScRange& rRange = rDestRanges[i];
             bIsEmpty = pDoc->IsBlockEmpty(
-                *itrTab, rRange.aStart.Col(), rRange.aStart.Row(),
+                rTab, rRange.aStart.Col(), rRange.aStart.Row(),
                 rRange.aEnd.Col(), rRange.aEnd.Row());
         }
+        if (!bIsEmpty)
+            break;
     }
 
     if (!bIsEmpty)
@@ -1801,12 +1799,11 @@ void ScViewFunc::PostPasteFromClip(const ScRangeList& rPasteRanges, const ScMark
     for (size_t i = 0, n = rPasteRanges.size(); i < n; ++i)
     {
         const ScRange& r = rPasteRanges[i];
-        ScMarkData::const_iterator itr = rMark.begin(), itrEnd = rMark.end();
-        for (; itr != itrEnd; ++itr)
+        for (const auto& rTab : rMark)
         {
             ScRange aChangeRange(r);
-            aChangeRange.aStart.SetTab(*itr);
-            aChangeRange.aEnd.SetTab(*itr);
+            aChangeRange.aStart.SetTab(rTab);
+            aChangeRange.aEnd.SetTab(rTab);
             aChangeRanges.push_back(aChangeRange);
         }
     }
diff --git a/sc/source/ui/view/viewfun4.cxx b/sc/source/ui/view/viewfun4.cxx
index ce86a71685e2..2a2e2db41b8c 100644
--- a/sc/source/ui/view/viewfun4.cxx
+++ b/sc/source/ui/view/viewfun4.cxx
@@ -219,10 +219,9 @@ void ScViewFunc::DoRefConversion()
 
         if ( rMark.GetSelectCount() > 1 )
         {
-            ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-            for (; itr != itrEnd; ++itr)
-                if ( *itr != nTab )
-                    pUndoDoc->AddUndoTab( *itr, *itr );
+            for (const auto& rTab : rMark)
+                if ( rTab != nTab )
+                    pUndoDoc->AddUndoTab( rTab, rTab );
         }
         ScRange aCopyRange = aMarkRange;
         aCopyRange.aStart.SetTab(0);
@@ -234,10 +233,8 @@ void ScViewFunc::DoRefConversion()
     GetViewData().GetMultiArea( xRanges );
     size_t nCount = xRanges->size();
 
-    ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-    for (; itr != itrEnd; ++itr)
+    for (const SCTAB& i : rMark)
     {
-        SCTAB i = *itr;
         for (size_t j = 0; j < nCount; ++j)
         {
             ScRange aRange = (*xRanges)[j];
@@ -289,10 +286,9 @@ void ScViewFunc::DoRefConversion()
 
         if ( rMark.GetSelectCount() > 1 )
         {
-            itr = rMark.begin();
-            for (; itr != itrEnd; ++itr)
-                if ( *itr != nTab )
-                    pRedoDoc->AddUndoTab( *itr, *itr );
+            for (const auto& rTab : rMark)
+                if ( rTab != nTab )
+                    pRedoDoc->AddUndoTab( rTab, rTab );
         }
         ScRange aCopyRange = aMarkRange;
         aCopyRange.aStart.SetTab(0);
@@ -496,12 +492,11 @@ void ScViewFunc::DoSheetConversion( const ScConversionParam& rConvParam )
 
         if ( rMark.GetSelectCount() > 1 )
         {
-            ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-            for (; itr != itrEnd; ++itr)
-                if ( *itr != nTab )
+            for (const auto& rTab : rMark)
+                if ( rTab != nTab )
                 {
-                    pUndoDoc->AddUndoTab( *itr, *itr );
-                    pRedoDoc->AddUndoTab( *itr, *itr );
+                    pUndoDoc->AddUndoTab( rTab, rTab );
+                    pRedoDoc->AddUndoTab( rTab, rTab );
                 }
         }
     }
diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx
index a0e1185a6d3f..45fb81483c4b 100644
--- a/sc/source/ui/view/viewfunc.cxx
+++ b/sc/source/ui/view/viewfunc.cxx
@@ -325,9 +325,8 @@ namespace HelperNotifyChanges
         if (ScModelObj *pModelObj = getMustPropagateChangesModel(rDocShell))
         {
             ScRangeList aChangeRanges;
-            ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-            for (; itr != itrEnd; ++itr)
-                aChangeRanges.push_back( ScRange( nCol, nRow, *itr ) );
+            for (const auto& rTab : rMark)
+                aChangeRanges.push_back( ScRange( nCol, nRow, rTab ) );
 
             HelperNotifyChanges::Notify(*pModelObj, aChangeRanges, "cell-change");
         }
@@ -513,10 +512,9 @@ void ScViewFunc::EnterData( SCCOL nCol, SCROW nRow, SCTAB nTab,
         delete pArr;
 
         SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
-        ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-        for (; itr != itrEnd; ++itr)
+        for (const auto& rTab : rMark)
         {
-            i = *itr;
+            i = rTab;
             aPos.SetTab( i );
             const sal_uInt32 nIndex = pDoc->GetAttr(
                         nCol, nRow, i, ATTR_VALUE_FORMAT )->GetValue();
@@ -565,11 +563,10 @@ void ScViewFunc::EnterData( SCCOL nCol, SCROW nRow, SCTAB nTab,
     }
     else
     {
-        ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-        for ( ; itr != itrEnd; ++itr )
+        for (const auto& rTab : rMark)
         {
             bool bNumFmtSet = false;
-            rFunc.SetNormalString( bNumFmtSet, ScAddress( nCol, nRow, *itr ), rString, false );
+            rFunc.SetNormalString( bNumFmtSet, ScAddress( nCol, nRow, rTab ), rString, false );
             if (bNumFmtSet)
             {
                 /* FIXME: if set on any sheet results in changed only on
@@ -692,12 +689,11 @@ void ScViewFunc::EnterData( SCCOL nCol, SCROW nRow, SCTAB nTab,
 
         if (bRecord && !bSimple)
         {
-            ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-            for (; itr != itrEnd; ++itr)
+            for (const auto& rTab : rMark)
             {
                 ScUndoEnterData::Value aOldValue;
-                aOldValue.mnTab = *itr;
-                aOldValue.maCell.assign(rDoc, ScAddress(nCol, nRow, *itr));
+                aOldValue.mnTab = rTab;
+                aOldValue.maCell.assign(rDoc, ScAddress(nCol, nRow, rTab));
                 aOldValues.push_back(aOldValue);
             }
 
@@ -718,10 +714,9 @@ void ScViewFunc::EnterData( SCCOL nCol, SCROW nRow, SCTAB nTab,
         }
         else
         {
-            ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-            for (; itr != itrEnd; ++itr)
+            for (const auto& rTab : rMark)
             {
-                ScAddress aPos(nCol, nRow, *itr);
+                ScAddress aPos(nCol, nRow, rTab);
                 rDoc.SetEditText(aPos, rData, rDoc.GetEditPool());
             }
 
@@ -735,9 +730,8 @@ void ScViewFunc::EnterData( SCCOL nCol, SCROW nRow, SCTAB nTab,
 
             AdjustRowHeight(nRow,nRow);
 
-            itr = rMark.begin();
-            for (; itr != itrEnd; ++itr)
-                pDocSh->PostPaintCell( nCol, nRow, *itr );
+            for (const auto& rTab : rMark)
+                pDocSh->PostPaintCell( nCol, nRow, rTab );
 
             ShowAllCursors();
 
@@ -1073,10 +1067,9 @@ void ScViewFunc::ApplyPatternLines( const ScPatternAttr& rAttr, const SvxBoxItem
         if( !bRemoveAdjCellBorder )
             bCopyOnlyMarked = bMulti;
         pUndoDoc->InitUndo( pDoc, nStartTab, nStartTab );
-        ScMarkData::iterator itr = aFuncMark.begin(), itrEnd = aFuncMark.end();
-        for (; itr != itrEnd; ++itr)
-            if (*itr != nStartTab)
-                pUndoDoc->AddUndoTab( *itr, *itr );
+        for (const auto& rTab : aFuncMark)
+            if (rTab != nStartTab)
+                pUndoDoc->AddUndoTab( rTab, rTab );
 
         ScRange aCopyRange = aMarkRangeWithEnvelope;
         aCopyRange.aStart.SetTab(0);
@@ -1159,12 +1152,11 @@ void ScViewFunc::ApplySelectionPattern( const ScPatternAttr& rAttr, bool bCursor
         ScRange aMarkRange;
         aFuncMark.GetMultiMarkArea( aMarkRange );
         SCTAB nTabCount = rDoc.GetTableCount();
-        ScMarkData::iterator itr = aFuncMark.begin(), itrEnd = aFuncMark.end();
-        for (; itr != itrEnd; ++itr)
+        for (const auto& rTab : aFuncMark)
         {
             ScRange aChangeRange( aMarkRange );
-            aChangeRange.aStart.SetTab( *itr );
-            aChangeRange.aEnd.SetTab( *itr );
+            aChangeRange.aStart.SetTab( rTab );
+            aChangeRange.aEnd.SetTab( rTab );
             aChangeRanges.push_back( aChangeRange );
         }
 
@@ -1185,10 +1177,9 @@ void ScViewFunc::ApplySelectionPattern( const ScPatternAttr& rAttr, bool bCursor
 
             ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
             pUndoDoc->InitUndo( &rDoc, nStartTab, nStartTab );
-            itr = aFuncMark.begin();
-            for (; itr != itrEnd; ++itr)
-                if (*itr != nStartTab)
-                    pUndoDoc->AddUndoTab( *itr, *itr );
+            for (const auto& rTab : aFuncMark)
+                if (rTab != nStartTab)
+                    pUndoDoc->AddUndoTab( rTab, rTab );
             rDoc.CopyToDocument( aCopyRange, InsertDeleteFlags::ATTRIB, bMulti, *pUndoDoc, &aFuncMark );
 
             aFuncMark.MarkToMulti();
@@ -1262,19 +1253,17 @@ void ScViewFunc::ApplySelectionPattern( const ScPatternAttr& rAttr, bool bCursor
             const SfxPoolItem* pItem = nullptr;
             if ( rNewSet.GetItemState( nWhich, true, &pItem ) == SfxItemState::SET && pItem )
             {
-                PropertyEntryVector_t::const_iterator aIt = aPropVector.begin();
-                while ( aIt != aPropVector.end())
+                for ( const auto& rProp : aPropVector)
                 {
-                    if ( aIt->nWID == nWhich )
+                    if ( rProp.nWID == nWhich )
                     {
                         css::uno::Any aVal;
-                        pItem->QueryValue( aVal, aIt->nMemberId );
+                        pItem->QueryValue( aVal, rProp.nMemberId );
                         aProperties.realloc( nCount + 1 );
-                        aProperties[ nCount ].Name = aIt->sName;
+                        aProperties[ nCount ].Name = rProp.sName;
                         aProperties[ nCount ].Value = aVal;
                         ++nCount;
                     }
-                    ++aIt;
                 }
             }
         }
@@ -1358,10 +1347,9 @@ void ScViewFunc::SetStyleSheetToMarked( const SfxStyleSheet* pStyleSheet )
             SCTAB nTab = rViewData.GetTabNo();
             ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
             pUndoDoc->InitUndo( &rDoc, nTab, nTab );
-            ScMarkData::iterator itr = aFuncMark.begin(), itrEnd = aFuncMark.end();
-            for (; itr != itrEnd; ++itr)
-                if (*itr != nTab)
-                    pUndoDoc->AddUndoTab( *itr, *itr );
+            for (const auto& rTab : aFuncMark)
+                if (rTab != nTab)
+                    pUndoDoc->AddUndoTab( rTab, rTab );
 
             ScRange aCopyRange = aMarkRange;
             aCopyRange.aStart.SetTab(0);
@@ -1391,10 +1379,9 @@ void ScViewFunc::SetStyleSheetToMarked( const SfxStyleSheet* pStyleSheet )
         {
             ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
             pUndoDoc->InitUndo( &rDoc, nTab, nTab );
-            ScMarkData::iterator itr = aFuncMark.begin(), itrEnd = aFuncMark.end();
-            for (; itr != itrEnd; ++itr)
-                if (*itr != nTab)
-                    pUndoDoc->AddUndoTab( *itr, *itr );
+            for (const auto& rTab : aFuncMark)
+                if (rTab != nTab)
+                    pUndoDoc->AddUndoTab( rTab, rTab );
 
             ScRange aCopyRange( nCol, nRow, 0, nCol, nRow, nTabCount-1 );
             rDoc.CopyToDocument( aCopyRange, InsertDeleteFlags::ATTRIB, false, *pUndoDoc );
@@ -1408,9 +1395,8 @@ void ScViewFunc::SetStyleSheetToMarked( const SfxStyleSheet* pStyleSheet )
                 o3tl::make_unique<ScUndoSelectionStyle>( pDocSh, aUndoMark, aMarkRange, aName, std::move(pUndoDoc) ) );
         }
 
-        ScMarkData::iterator itr = aFuncMark.begin(), itrEnd = aFuncMark.end();
-        for (; itr != itrEnd; ++itr)
-            rDoc.ApplyStyle( nCol, nRow, *itr, static_cast<const ScStyleSheet&>(*pStyleSheet) );
+        for (const auto& rTab : aFuncMark)
+            rDoc.ApplyStyle( nCol, nRow, rTab, static_cast<const ScStyleSheet&>(*pStyleSheet) );
 
         if (!AdjustBlockHeight())
             rViewData.GetDocShell()->PostPaintCell( nCol, nRow, nTab );
@@ -2018,31 +2004,26 @@ void ScViewFunc::SetWidthOrHeight(
     SCROW nCurY = GetViewData().GetCurY();
     SCTAB nFirstTab = aMarkData.GetFirstSelected();
     SCTAB nCurTab = GetViewData().GetTabNo();
-    SCTAB nTab;
     if (bRecord && !rDoc.IsUndoEnabled())
         bRecord = false;
 
     ScDocShellModificator aModificator( *pDocSh );
 
     bool bAllowed = true;
-    ScMarkData::iterator itr = aMarkData.begin(), itrEnd = aMarkData.end();
-    for (; itr != itrEnd && bAllowed; ++itr)
-    {
-        for (size_t i = 0, n = rRanges.size(); i < n && bAllowed; ++i)
-        {
-            bool bOnlyMatrix;
-            if (bWidth)
-            {
-                bAllowed = rDoc.IsBlockEditable(
-                    *itr, rRanges[i].mnStart, 0, rRanges[i].mnEnd, MAXROW,
-                        &bOnlyMatrix ) || bOnlyMatrix;
-            }
-            else
-            {
-                bAllowed = rDoc.IsBlockEditable(
-                    *itr, 0, rRanges[i].mnStart, MAXCOL,rRanges[i].mnEnd, &bOnlyMatrix) || bOnlyMatrix;
-            }
-        }
+    for (const SCTAB& nTab : aMarkData)
+    {
+        bAllowed = std::all_of(rRanges.begin(), rRanges.end(),
+            [&bWidth, &rDoc, &nTab](const sc::ColRowSpan& rRange) {
+                bool bOnlyMatrix;
+                bool bIsBlockEditable;
+                if (bWidth)
+                    bIsBlockEditable = rDoc.IsBlockEditable(nTab, rRange.mnStart, 0, rRange.mnEnd, MAXROW, &bOnlyMatrix);
+                else
+                    bIsBlockEditable = rDoc.IsBlockEditable(nTab, 0, rRange.mnStart, MAXCOL, rRange.mnEnd, &bOnlyMatrix);
+                return bIsBlockEditable || bOnlyMatrix;
+            });
+        if (!bAllowed)
+            break;
     }
 
     // Allow users to resize cols/rows in readonly docs despite the r/o state.
@@ -2074,26 +2055,25 @@ void ScViewFunc::SetWidthOrHeight(
         rDoc.BeginDrawUndo();                          // Drawing Updates
 
         pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
-        itr = aMarkData.begin();
-        for (; itr != itrEnd; ++itr)
+        for (const SCTAB& nTab : aMarkData)
         {
             if (bWidth)
             {
-                if ( *itr == nFirstTab )
-                    pUndoDoc->InitUndo( &rDoc, *itr, *itr, true );
+                if ( nTab == nFirstTab )
+                    pUndoDoc->InitUndo( &rDoc, nTab, nTab, true );
                 else
-                    pUndoDoc->AddUndoTab( *itr, *itr, true );
-                rDoc.CopyToDocument( static_cast<SCCOL>(nStart), 0, *itr,
-                        static_cast<SCCOL>(nEnd), MAXROW, *itr, InsertDeleteFlags::NONE,
+                    pUndoDoc->AddUndoTab( nTab, nTab, true );
+                rDoc.CopyToDocument( static_cast<SCCOL>(nStart), 0, nTab,
+                        static_cast<SCCOL>(nEnd), MAXROW, nTab, InsertDeleteFlags::NONE,
                         false, *pUndoDoc );
             }
             else
             {
-                if ( *itr == nFirstTab )
-                    pUndoDoc->InitUndo( &rDoc, *itr, *itr, false, true );
+                if ( nTab == nFirstTab )
+                    pUndoDoc->InitUndo( &rDoc, nTab, nTab, false, true );
                 else
-                    pUndoDoc->AddUndoTab( *itr, *itr, false, true );
-                rDoc.CopyToDocument( 0, nStart, *itr, MAXCOL, nEnd, *itr, InsertDeleteFlags::NONE, false, *pUndoDoc );
+                    pUndoDoc->AddUndoTab( nTab, nTab, false, true );
+                rDoc.CopyToDocument( 0, nStart, nTab, MAXCOL, nEnd, nTab, InsertDeleteFlags::NONE, false, *pUndoDoc );
             }
         }
 
@@ -2111,11 +2091,8 @@ void ScViewFunc::SetWidthOrHeight(
     bool bShow = nSizeTwips > 0 || eMode != SC_SIZE_DIRECT;
     bool bOutline = false;
 
-    itr = aMarkData.begin();
-    for (; itr != itrEnd; ++itr)
+    for (const SCTAB& nTab : aMarkData)
     {
-        nTab = *itr;
-
         for (const sc::ColRowSpan & rRange : rRanges)
         {
             SCCOLROW nStartNo = rRange.mnStart;
@@ -2252,17 +2229,14 @@ void ScViewFunc::SetWidthOrHeight(
     // the new heights and widths.
     GetViewData().GetView()->RefreshZoom();
 
-    itr = aMarkData.begin();
-    for (; itr != itrEnd; ++itr)
-        rDoc.UpdatePageBreaks( *itr );
+    for (const SCTAB& nTab : aMarkData)
+        rDoc.UpdatePageBreaks( nTab );
 
     GetViewData().GetView()->UpdateScrollBars(bWidth ? COLUMN_HEADER : ROW_HEADER);
 
     {
-        itr = aMarkData.begin();
-        for (; itr != itrEnd; ++itr)
+        for (const SCTAB& nTab : aMarkData)
         {
-            nTab = *itr;
             if (bWidth)
             {
                 if (rDoc.HasAttrib( static_cast<SCCOL>(nStart),0,nTab,
@@ -2294,10 +2268,8 @@ void ScViewFunc::SetWidthOrHeight(
         if (ScModelObj* pModelObj = HelperNotifyChanges::getMustPropagateChangesModel(*pDocSh))
         {
             ScRangeList aChangeRanges;
-            itr = aMarkData.begin();
-            for (; itr != itrEnd; ++itr)
+            for (const SCTAB& nTab : aMarkData)
             {
-                nTab = *itr;
                 for (const sc::ColRowSpan & rRange : rRanges)
                 {
                     SCCOL nStartCol = rRange.mnStart;
@@ -2498,11 +2470,10 @@ void ScViewFunc::ProtectSheet( SCTAB nTab, const ScTableProtection& rProtect )
         pDocSh->GetUndoManager()->EnterListAction( aUndo, aUndo, 0, GetViewData().GetViewShell()->GetViewShellId() );
     }
 
-    ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-    for (; itr != itrEnd; ++itr)
+    for (const auto& rTab : rMark)
     {
-        rFunc.ProtectSheet(*itr, rProtect);
-        SetTabProtectionSymbol(*itr, true);
+        rFunc.ProtectSheet(rTab, rProtect);
+        SetTabProtectionSymbol(rTab, true);
     }
 
     if (bUndo)
@@ -2531,9 +2502,8 @@ void ScViewFunc::Protect( SCTAB nTab, const OUString& rPassword )
             pDocSh->GetUndoManager()->EnterListAction( aUndo, aUndo, 0, GetViewData().GetViewShell()->GetViewShellId() );
         }
 
-        ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-        for (; itr != itrEnd; ++itr)
-            rFunc.Protect( *itr, rPassword );
+        for (const auto& rTab : rMark)
+            rFunc.Protect( rTab, rPassword );
 
         if (bUndo)
             pDocSh->GetUndoManager()->LeaveListAction();
@@ -2567,13 +2537,12 @@ bool ScViewFunc::Unprotect( SCTAB nTab, const OUString& rPassword )
             pDocSh->GetUndoManager()->EnterListAction( aUndo, aUndo, 0, GetViewData().GetViewShell()->GetViewShellId() );
         }
 
-        ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-        for (; itr != itrEnd; ++itr)
+        for (const auto& rTab : rMark)
         {
-            if ( rFunc.Unprotect( *itr, rPassword, false ) )
+            if ( rFunc.Unprotect( rTab, rPassword, false ) )
             {
                 bChanged = true;
-                SetTabProtectionSymbol( *itr, false);
+                SetTabProtectionSymbol( rTab, false);
             }
         }
 
diff --git a/sc/source/ui/view/viewutil.cxx b/sc/source/ui/view/viewutil.cxx
index c2150253e692..04aad19f7f29 100644
--- a/sc/source/ui/view/viewutil.cxx
+++ b/sc/source/ui/view/viewutil.cxx
@@ -238,10 +238,8 @@ void ScViewUtil::UnmarkFiltered( ScMarkData& rMark, const ScDocument* pDoc )
     SCROW nEndRow = aMultiArea.aEnd.Row();
 
     bool bChanged = false;
-    ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end();
-    for (; itr != itrEnd; ++itr)
+    for (const SCTAB& nTab : rMark)
     {
-        SCTAB nTab = *itr;
         for (SCROW nRow = nStartRow; nRow <= nEndRow; ++nRow)
         {
             SCROW nLastRow = nRow;
diff --git a/sc/source/ui/xmlsource/xmlsourcedlg.cxx b/sc/source/ui/xmlsource/xmlsourcedlg.cxx
index b87765d0afd8..5a83b66c4aae 100644
--- a/sc/source/ui/xmlsource/xmlsourcedlg.cxx
+++ b/sc/source/ui/xmlsource/xmlsourcedlg.cxx
@@ -558,10 +558,9 @@ void ScXMLSourceDlg::OkPressed()
 
     // Convert single cell links.
     {
-        std::set<const SvTreeListEntry*>::const_iterator it = maCellLinks.begin(), itEnd = maCellLinks.end();
-        for (; it != itEnd; ++it)
+        for (const SvTreeListEntry* pCellLink : maCellLinks)
         {
-            const SvTreeListEntry& rEntry = **it;
+            const SvTreeListEntry& rEntry = *pCellLink;
             OUString aPath = getXPath(*mpLbTree, rEntry, aParam.maNamespaces);
             const ScOrcusXMLTreeParam::EntryData* pUserData = ScOrcusXMLTreeParam::getUserData(rEntry);
 
@@ -573,10 +572,9 @@ void ScXMLSourceDlg::OkPressed()
     // Convert range links. For now, an element with range link takes all its
     // child elements as its fields.
     {
-        std::set<const SvTreeListEntry*>::const_iterator it = maRangeLinks.begin(), itEnd = maRangeLinks.end();
-        for (; it != itEnd; ++it)
+        for (const SvTreeListEntry* pRangeLink : maRangeLinks)
         {
-            const SvTreeListEntry& rEntry = **it;
+            const SvTreeListEntry& rEntry = *pRangeLink;
             const ScOrcusXMLTreeParam::EntryData* pUserData = ScOrcusXMLTreeParam::getUserData(rEntry);
 
             ScOrcusImportXMLParam::RangeLink aRangeLink;


More information about the Libreoffice-commits mailing list