sc/source/core/data/drwlayer.cxx |   76 ++++++++-------------------------------
 1 file changed, 16 insertions(+), 60 deletions(-)

New commits:
commit f4fc510a28d11d63f6c91af6727292a53ca0517c
Author:     Mike Kaganski <[email protected]>
AuthorDate: Sat Mar 2 11:19:05 2024 +0100
Commit:     Mike Kaganski <[email protected]>
CommitDate: Sat Mar 2 15:37:02 2024 +0100

    Simplify a bit
    
    Change-Id: Ie9cdeb533dbdf037390d08910494a4c1e5dcd1dc
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164208
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <[email protected]>

diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
index 72273c2ed4d5..e404d6afbdc3 100644
--- a/sc/source/core/data/drwlayer.cxx
+++ b/sc/source/core/data/drwlayer.cxx
@@ -511,8 +511,7 @@ void ScDrawLayer::ScCopyPage( sal_uInt16 nOldPos, 
sal_uInt16 nNewPos )
         SCTAB nNewTab = static_cast<SCTAB>(nNewPos);
 
         SdrObjListIter aIter( pOldPage, SdrIterMode::Flat );
-        SdrObject* pOldObject = aIter.Next();
-        while (pOldObject)
+        while (SdrObject* pOldObject = aIter.Next())
         {
             ScDrawObjData* pOldData = GetObjData(pOldObject);
             if (pOldData)
@@ -534,8 +533,6 @@ void ScDrawLayer::ScCopyPage( sal_uInt16 nOldPos, 
sal_uInt16 nNewPos )
 
             if (bRecording)
                 AddCalcUndo( std::make_unique<SdrUndoInsertObj>( *pNewObject ) 
);
-
-            pOldObject = aIter.Next();
         }
     }
 
@@ -560,7 +557,7 @@ void ScDrawLayer::ResetTab( SCTAB nStart, SCTAB nEnd )
             continue;
 
         SdrObjListIter aIter(pPage, SdrIterMode::Flat);
-        for (SdrObject* pObj = aIter.Next(); pObj; pObj = aIter.Next())
+        while (SdrObject* pObj = aIter.Next())
         {
             ScDrawObjData* pData = GetObjData(pObj);
             if (!pData)
@@ -1389,8 +1386,7 @@ bool ScDrawLayer::GetPrintArea( ScRange& rRange, bool 
bSetHor, bool bSetVer ) co
     if (pPage)
     {
         SdrObjListIter aIter( pPage, SdrIterMode::Flat );
-        SdrObject* pObject = aIter.Next();
-        while (pObject)
+        while (SdrObject* pObject = aIter.Next())
         {
                             //TODO: test Flags (hidden?)
 
@@ -1415,8 +1411,6 @@ bool ScDrawLayer::GetPrintArea( ScRange& rRange, bool 
bSetHor, bool bSetVer ) co
                 }
                 bAny = true;
             }
-
-            pObject = aIter.Next();
         }
     }
 
@@ -1604,21 +1598,16 @@ bool ScDrawLayer::HasObjectsInRows( SCTAB nTab, SCROW 
nStartRow, SCROW nEndRow )
     if ( bNegativePage )
         MirrorRectRTL( aTestRect );
 
-    bool bFound = false;
-
     tools::Rectangle aObjRect;
     SdrObjListIter aIter( pPage );
-    SdrObject* pObject = aIter.Next();
-    while ( pObject && !bFound )
+    while (SdrObject* pObject = aIter.Next())
     {
         aObjRect = pObject->GetSnapRect();  //TODO: GetLogicRect ?
         if (aTestRect.Contains(aObjRect.TopLeft()) || 
aTestRect.Contains(aObjRect.BottomLeft()))
-            bFound = true;
-
-        pObject = aIter.Next();
+            return true;
     }
 
-    return bFound;
+    return false;
 }
 
 void ScDrawLayer::DeleteObjectsInArea( SCTAB nTab, SCCOL nCol1,SCROW nRow1,
@@ -1650,8 +1639,7 @@ void ScDrawLayer::DeleteObjectsInArea( SCTAB nTab, SCCOL 
nCol1,SCROW nRow1,
     ppObj.reserve(nObjCount);
 
     SdrObjListIter aIter( pPage, SdrIterMode::Flat );
-    SdrObject* pObject = aIter.Next();
-    while (pObject)
+    while (SdrObject* pObject = aIter.Next())
     {
         // do not delete note caption, they are always handled by the cell note
         // TODO: detective objects are still deleted, is this desired?
@@ -1681,8 +1669,6 @@ void ScDrawLayer::DeleteObjectsInArea( SCTAB nTab, SCCOL 
nCol1,SCROW nRow1,
                 }
             }
         }
-
-        pObject = aIter.Next();
     }
 
     if (bRecording)
@@ -1726,8 +1712,7 @@ void ScDrawLayer::DeleteObjectsInSelection( const 
ScMarkData& rMark )
                 ppObj.reserve(nObjCount);
 
                 SdrObjListIter aIter( pPage, SdrIterMode::Flat );
-                SdrObject* pObject = aIter.Next();
-                while (pObject)
+                while (SdrObject* pObject = aIter.Next())
                 {
                     // do not delete note caption, they are always handled by 
the cell note
                     // TODO: detective objects are still deleted, is this 
desired?
@@ -1749,8 +1734,6 @@ void ScDrawLayer::DeleteObjectsInSelection( const 
ScMarkData& rMark )
                             ppObj.push_back(pObject);
                         }
                     }
-
-                    pObject = aIter.Next();
                 }
 
                 //  Delete objects (backwards)
@@ -1934,8 +1917,7 @@ void ScDrawLayer::CopyFromClip(ScDrawLayer* pClipModel, 
SCTAB nSourceTab,
         return; // Can this happen? And if yes, what to do?
 
     SdrObjListIter aIter( pSrcPage, SdrIterMode::Flat );
-    SdrObject* pOldObject = aIter.Next();
-    if (!pOldObject)
+    if (!aIter.Count())
         return; // no objects at all. Nothing to do.
 
     //  a clipboard document and its source share the same document item pool,
@@ -1965,15 +1947,12 @@ void ScDrawLayer::CopyFromClip(ScDrawLayer* pClipModel, 
SCTAB nSourceTab,
     bool bSourceRTL = pClipDoc->IsLayoutRTL(nSourceTab);
     bool bDestRTL = pDoc->IsLayoutRTL(nDestTab);
 
-    while (pOldObject)
+    while (SdrObject* pOldObject = aIter.Next())
     {
         // ToDO: Can this happen? Such objects should not be in the clipboard 
document.
         // do not copy internal objects (detective) and note captions
         if ((pOldObject->GetLayer() == SC_LAYER_INTERN) || 
IsNoteCaption(pOldObject))
-        {
-            pOldObject = aIter.Next();
             continue;
-        }
 
         // 'aIter' considers all objects on pSrcPage. But 
ScDocument::CopyBlockFromClip, which is used
         // for filtered data, acts not on the total range but only on parts of 
it. So we need to look,
@@ -1991,18 +1970,12 @@ void ScDrawLayer::CopyFromClip(ScDrawLayer* pClipModel, 
SCTAB nSourceTab,
             aSrcObjStart = pClipDoc->GetRange(nClipTab, 
pOldObject->GetCurrentBoundRect()).aStart;
         }
         if (!rSourceRange.Contains(aSrcObjStart))
-        {
-            pOldObject = aIter.Next();
             continue;
-        }
         // If object is anchored to a filtered cell, we will not copy it, 
because filtered rows are
         // eliminated in paste. Copying would produce hidden objects which can 
only be accessed per
         // macro.
         if (pObjData && pClipDoc->RowFiltered((*pObjData).maStart.Row(), 
nSourceTab))
-        {
-            pOldObject = aIter.Next();
             continue;
-        }
 
         // Copy style sheet
         auto pStyleSheet = pOldObject->GetStyleSheet();
@@ -2257,7 +2230,6 @@ void ScDrawLayer::CopyFromClip(ScDrawLayer* pClipModel, 
SCTAB nSourceTab,
                 }
             }
         }
-        pOldObject = aIter.Next();
     }
 
     if( bRestoreDestTabName )
@@ -2452,8 +2424,7 @@ SdrObject* ScDrawLayer::GetNamedObject( 
std::u16string_view rName, SdrObjKind nI
         if (pPage)
         {
             SdrObjListIter aIter( pPage, SdrIterMode::DeepWithGroups );
-            SdrObject* pObject = aIter.Next();
-            while (pObject)
+            while (SdrObject* pObject = aIter.Next())
             {
                 if ( nId == SdrObjKind::NONE || pObject->GetObjIdentifier() == 
nId )
                     if ( IsNamedObject( pObject, rName ) )
@@ -2461,8 +2432,6 @@ SdrObject* ScDrawLayer::GetNamedObject( 
std::u16string_view rName, SdrObjKind nI
                         rFoundTab = static_cast<SCTAB>(nTab);
                         return pObject;
                     }
-
-                pObject = aIter.Next();
             }
         }
     }
@@ -2503,20 +2472,15 @@ void ScDrawLayer::EnsureGraphicNames()
         if (pPage)
         {
             SdrObjListIter aIter( pPage, SdrIterMode::DeepWithGroups );
-            SdrObject* pObject = aIter.Next();
 
             /* The index passed to GetNewGraphicName() will be set to
                 the used index in each call. This prevents the repeated search
                 for all names from 1 to current index. */
             tools::Long nCounter = 0;
 
-            while (pObject)
-            {
+            while (SdrObject* pObject = aIter.Next())
                 if ( pObject->GetObjIdentifier() == SdrObjKind::Graphic && 
pObject->GetName().isEmpty())
                     pObject->SetName( GetNewGraphicName( &nCounter ) );
-
-                pObject = aIter.Next();
-            }
         }
     }
 }
@@ -2742,14 +2706,12 @@ ScDrawLayer::GetObjectsAnchoredToRows(SCTAB nTab, SCROW 
nStartRow, SCROW nEndRow
 
     std::vector<SdrObject*> aObjects;
     SdrObjListIter aIter( pPage, SdrIterMode::Flat );
-    SdrObject* pObject = aIter.Next();
     ScRange aRange( 0, nStartRow, nTab, pDoc->MaxCol(), nEndRow, nTab);
-    while (pObject)
+    while (SdrObject* pObject = aIter.Next())
     {
         ScDrawObjData* pObjData = GetObjData(pObject);
         if (pObjData && aRange.Contains(pObjData->maStart))
             aObjects.push_back(pObject);
-        pObject = aIter.Next();
     }
     return aObjects;
 }
@@ -2763,9 +2725,8 @@ ScDrawLayer::GetObjectsAnchoredToRange(SCTAB nTab, SCCOL 
nCol, SCROW nStartRow,
 
     std::map<SCROW, std::vector<SdrObject*>> aRowObjects;
     SdrObjListIter aIter( pPage, SdrIterMode::Flat );
-    SdrObject* pObject = aIter.Next();
     ScRange aRange( nCol, nStartRow, nTab, nCol, nEndRow, nTab);
-    while (pObject)
+    while (SdrObject* pObject = aIter.Next())
     {
         if (!dynamic_cast<SdrCaptionObj*>(pObject)) // Caption objects are 
handled differently
         {
@@ -2773,7 +2734,6 @@ ScDrawLayer::GetObjectsAnchoredToRange(SCTAB nTab, SCCOL 
nCol, SCROW nStartRow,
             if (pObjData && aRange.Contains(pObjData->maStart))
                 aRowObjects[pObjData->maStart.Row()].push_back(pObject);
         }
-        pObject = aIter.Next();
     }
     return aRowObjects;
 }
@@ -2788,8 +2748,7 @@ bool ScDrawLayer::HasObjectsAnchoredInRange(const 
ScRange& rRange)
         return false;
 
     SdrObjListIter aIter( pPage, SdrIterMode::Flat );
-    SdrObject* pObject = aIter.Next();
-    while (pObject)
+    while (SdrObject* pObject = aIter.Next())
     {
         if (!dynamic_cast<SdrCaptionObj*>(pObject)) // Caption objects are 
handled differently
         {
@@ -2797,7 +2756,6 @@ bool ScDrawLayer::HasObjectsAnchoredInRange(const 
ScRange& rRange)
             if (pObjData && rRange.Contains(pObjData->maStart)) // Object is 
in given range
                 return true;
         }
-        pObject = aIter.Next();
     }
     return false;
 }
@@ -2811,14 +2769,12 @@ std::vector<SdrObject*> 
ScDrawLayer::GetObjectsAnchoredToCols(SCTAB nTab, SCCOL
 
     std::vector<SdrObject*> aObjects;
     SdrObjListIter aIter(pPage, SdrIterMode::Flat);
-    SdrObject* pObject = aIter.Next();
     ScRange aRange(nStartCol, 0, nTab, nEndCol, pDoc->MaxRow(), nTab);
-    while (pObject)
+    while (SdrObject* pObject = aIter.Next())
     {
         ScDrawObjData* pObjData = GetObjData(pObject);
         if (pObjData && aRange.Contains(pObjData->maStart))
             aObjects.push_back(pObject);
-        pObject = aIter.Next();
     }
     return aObjects;
 }

Reply via email to