include/svx/svdpage.hxx | 2 svx/source/dialog/connctrl.cxx | 11 -- svx/source/engine3d/scene3d.cxx | 29 +++--- svx/source/engine3d/view3d.cxx | 17 +-- svx/source/engine3d/view3d1.cxx | 4 svx/source/form/fmview.cxx | 5 - svx/source/form/navigatortreemodel.cxx | 5 - svx/source/sdr/contact/objectcontactofpageview.cxx | 4 svx/source/sdr/properties/e3dsceneproperties.cxx | 86 ++++++++---------- svx/source/sdr/properties/groupproperties.cxx | 88 +++++++------------ svx/source/svdraw/sdrpagewindow.cxx | 6 - svx/source/svdraw/svdmark.cxx | 15 +-- svx/source/svdraw/svdmrkv.cxx | 21 +--- svx/source/svdraw/svdobj.cxx | 12 -- svx/source/svdraw/svdogrp.cxx | 97 +++++---------------- svx/source/svdraw/svdotext.cxx | 11 -- svx/source/svdraw/svdpage.cxx | 56 ++++-------- svx/source/svdraw/svdpagv.cxx | 5 - svx/source/svdraw/svdpntv.cxx | 6 - svx/source/svdraw/svdundo.cxx | 11 -- sw/source/core/access/accmap.cxx | 13 +- sw/source/core/doc/docdraw.cxx | 4 sw/source/core/doc/doclay.cxx | 6 - sw/source/core/doc/textboxhelper.cxx | 25 ++--- sw/source/core/draw/dcontact.cxx | 8 - sw/source/core/draw/drawdoc.cxx | 4 sw/source/core/frmedt/fefly1.cxx | 8 - sw/source/core/frmedt/feshview.cxx | 9 + sw/source/core/model/ModelTraverser.cxx | 10 -- sw/source/core/model/SearchResultLocator.cxx | 18 +-- sw/source/core/undo/undraw.cxx | 19 +--- sw/source/core/view/vdraw.cxx | 8 - sw/source/uibase/uiview/viewdraw.cxx | 6 - sw/source/uibase/uno/unotxdoc.cxx | 15 +-- sw/source/uibase/utlui/content.cxx | 25 +---- sw/source/uibase/wrtsh/move.cxx | 6 - 36 files changed, 255 insertions(+), 420 deletions(-)
New commits: commit 6dc53be7d2eabc23e3d96bae94d38e56d37b2bb5 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Wed Oct 18 12:28:37 2023 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Wed Oct 18 20:08:31 2023 +0200 use more SdrObjList::begin/end in sw Change-Id: If882c1c7863618a313b2e06abacdbfa756dfff3e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158114 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx index 3babe9e879d0..9b3ac84876eb 100644 --- a/sw/source/core/access/accmap.cxx +++ b/sw/source/core/access/accmap.cxx @@ -1998,13 +1998,12 @@ void SwAccessibleMap::RemoveGroupContext(const SdrObject *pParentObj) // but also by visibility checks in svx, then it doesn't return children. if (mpShapeMap && pParentObj && pParentObj->IsGroupObject()) { - SdrObjList *const pChildren(pParentObj->GetSubList()); - for (size_t i = 0; pChildren && i < pChildren->GetObjCount(); ++i) - { - SdrObject *const pChild(pChildren->GetObj(i)); - assert(pChild); - RemoveContext(pChild); - } + if (SdrObjList *const pChildren = pParentObj->GetSubList()) + for (const rtl::Reference<SdrObject>& pChild : *pChildren) + { + assert(pChild); + RemoveContext(pChild.get()); + } } } //End diff --git a/sw/source/core/doc/docdraw.cxx b/sw/source/core/doc/docdraw.cxx index cd1883ee346b..aecbe2ac824f 100644 --- a/sw/source/core/doc/docdraw.cxx +++ b/sw/source/core/doc/docdraw.cxx @@ -307,8 +307,8 @@ static void lcl_CollectTextBoxesForSubGroupObj(SwFrameFormat* pTargetFormat, std SdrObject* pSourceObjs) { if (auto pChildrenObjs = pSourceObjs->getChildrenOfSdrObject()) - for (size_t i = 0; i < pChildrenObjs->GetObjCount(); ++i) - lcl_CollectTextBoxesForSubGroupObj(pTargetFormat, pTextBoxNode, pChildrenObjs->GetObj(i)); + for (const rtl::Reference<SdrObject>& pSubObj : *pChildrenObjs) + lcl_CollectTextBoxesForSubGroupObj(pTargetFormat, pTextBoxNode, pSubObj.get()); else { if (auto pTextBox = pTextBoxNode->GetTextBox(pSourceObjs)) diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx index c9881b848d29..ea643f042fe4 100644 --- a/sw/source/core/doc/doclay.cxx +++ b/sw/source/core/doc/doclay.cxx @@ -1303,12 +1303,8 @@ static void lcl_collectUsedNums(std::vector<unsigned int>& rSetFlags, sal_Int32 const SdrObjList* pSub(rObj.GetSubList()); assert(pSub && "IsGroupObject is implemented as GetSubList != nullptr"); - const size_t nCount = pSub->GetObjCount(); - for (size_t i = 0; i < nCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *pSub) { - SdrObject* pObj = pSub->GetObj(i); - if (!pObj) - continue; lcl_collectUsedNums(rSetFlags, nNmLen, *pObj, rCmpName); } } diff --git a/sw/source/core/doc/textboxhelper.cxx b/sw/source/core/doc/textboxhelper.cxx index 1bb09d55b753..98c77db26d4e 100644 --- a/sw/source/core/doc/textboxhelper.cxx +++ b/sw/source/core/doc/textboxhelper.cxx @@ -336,9 +336,8 @@ bool SwTextBoxHelper::hasTextFrame(const SdrObject* pObj) sal_Int32 SwTextBoxHelper::getCount(SdrPage const* pPage) { sal_Int32 nRet = 0; - for (std::size_t i = 0; i < pPage->GetObjCount(); ++i) + for (const rtl::Reference<SdrObject>& p : *pPage) { - SdrObject* p = pPage->GetObj(i); if (p && p->IsTextBox()) continue; ++nRet; @@ -364,14 +363,13 @@ uno::Any SwTextBoxHelper::getByIndex(SdrPage const* pPage, sal_Int32 nIndex) SdrObject* pRet = nullptr; sal_Int32 nCount = 0; // Current logical index. - for (std::size_t i = 0; i < pPage->GetObjCount(); ++i) + for (const rtl::Reference<SdrObject>& p : *pPage) { - SdrObject* p = pPage->GetObj(i); if (p && p->IsTextBox()) continue; if (nCount == nIndex) { - pRet = p; + pRet = p.get(); break; } ++nCount; @@ -388,9 +386,8 @@ sal_Int32 SwTextBoxHelper::getOrdNum(const SdrObject* pObject) if (const SdrPage* pPage = pObject->getSdrPageFromSdrObject()) { sal_Int32 nOrder = 0; // Current logical order. - for (std::size_t i = 0; i < pPage->GetObjCount(); ++i) + for (const rtl::Reference<SdrObject>& p : *pPage) { - SdrObject* p = pPage->GetObj(i); if (p && p->IsTextBox()) continue; if (p == pObject) @@ -1579,8 +1576,8 @@ void SwTextBoxHelper::synchronizeGroupTextBoxProperty(bool pFunc(SwFrameFormat*, { if (auto pChildren = pObj->getChildrenOfSdrObject()) { - for (size_t i = 0; i < pChildren->GetObjCount(); ++i) - synchronizeGroupTextBoxProperty(pFunc, pFormat, pChildren->GetObj(i)); + for (const rtl::Reference<SdrObject>& pChildObj : *pChildren) + synchronizeGroupTextBoxProperty(pFunc, pFormat, pChildObj.get()); } else { @@ -1594,9 +1591,9 @@ std::vector<SwFrameFormat*> SwTextBoxHelper::CollectTextBoxes(const SdrObject* p std::vector<SwFrameFormat*> vRet; if (auto pChildren = pGroupObject->getChildrenOfSdrObject()) { - for (size_t i = 0; i < pChildren->GetObjCount(); ++i) + for (const rtl::Reference<SdrObject>& pObj : *pChildren) { - auto pChildTextBoxes = CollectTextBoxes(pChildren->GetObj(i), pFormat); + auto pChildTextBoxes = CollectTextBoxes(pObj.get(), pFormat); for (auto& rChildTextBox : pChildTextBoxes) vRet.push_back(rChildTextBox); } @@ -1919,10 +1916,10 @@ void SwTextBoxNode::Clone_Impl(SwDoc* pDoc, const SwFormatAnchor& rNewAnc, SwFra return; } - for (size_t i = 0; i < pSrcList->GetObjCount(); ++i) + for (auto itSrc = pSrcList->begin(), itDest = pDestList->begin(); itSrc != pSrcList->end(); + ++itSrc, ++itDest) { - Clone_Impl(pDoc, rNewAnc, o_pTarget, pSrcList->GetObj(i), pDestList->GetObj(i), - bSetAttr, bMakeFrame); + Clone_Impl(pDoc, rNewAnc, o_pTarget, itSrc->get(), itDest->get(), bSetAttr, bMakeFrame); } return; } diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx index da79a66b6739..5c2147ed91a9 100644 --- a/sw/source/core/draw/dcontact.cxx +++ b/sw/source/core/draw/dcontact.cxx @@ -320,9 +320,9 @@ void SwContact::MoveObjToLayer( const bool _bToVisible, static_cast<SdrObjGroup*>(_pDrawObj)->GetSubList(); if ( pLst ) { - for ( size_t i = 0; i < pLst->GetObjCount(); ++i ) + for (const rtl::Reference<SdrObject>& pObj : *pLst) { - MoveObjToLayer( _bToVisible, pLst->GetObj( i ) ); + MoveObjToLayer( _bToVisible, pObj.get() ); } } } @@ -686,9 +686,9 @@ bool CheckControlLayer( const SdrObject *pObj ) if (const SdrObjGroup *pObjGroup = dynamic_cast<const SdrObjGroup*>(pObj)) { const SdrObjList *pLst = pObjGroup->GetSubList(); - for ( size_t i = 0; i < pLst->GetObjCount(); ++i ) + for (const rtl::Reference<SdrObject>& pChildObj : *pLst) { - if ( ::CheckControlLayer( pLst->GetObj( i ) ) ) + if ( ::CheckControlLayer( pChildObj.get() ) ) { // #i18447# - return correct value ;-) return true; diff --git a/sw/source/core/draw/drawdoc.cxx b/sw/source/core/draw/drawdoc.cxx index 4470168feb95..4d53c76344f3 100644 --- a/sw/source/core/draw/drawdoc.cxx +++ b/sw/source/core/draw/drawdoc.cxx @@ -97,10 +97,8 @@ SwDrawModel::~SwDrawModel() for (sal_uInt16 i=0; i < nPageCount; ++i) { SdrPage* pPage = GetPage(i); - const size_t nObjCount = pPage->GetObjCount(); - for (size_t j=0; j < nObjCount; ++j) + for (const rtl::Reference<SdrObject>& pSdrObj : *pPage) { - SdrObject* pSdrObj = pPage->GetObj(j); SwDrawContact* pContact = dynamic_cast<SwDrawContact*>(pSdrObj->GetUserCall()); if (pContact) pContact->RemoveAllVirtObjs(); diff --git a/sw/source/core/frmedt/fefly1.cxx b/sw/source/core/frmedt/fefly1.cxx index 2fb646150d0e..425db6ed1b27 100644 --- a/sw/source/core/frmedt/fefly1.cxx +++ b/sw/source/core/frmedt/fefly1.cxx @@ -617,12 +617,10 @@ Point SwFEShell::FindAnchorPos( const Point& rAbsPos, bool bMoveIt ) if (SwTextBoxHelper::getOtherTextBoxFormat(&rFormat, RES_DRAWFRMFMT, pObj)) { - if (pObj->getChildrenOfSdrObject()) + if (SdrObjList* pObjList = pObj->getChildrenOfSdrObject()) { - for (size_t i = 0; - i < pObj->getChildrenOfSdrObject()->GetObjCount(); ++i) - SwTextBoxHelper::changeAnchor( - &rFormat, pObj->getChildrenOfSdrObject()->GetObj(i)); + for (const rtl::Reference<SdrObject>& pChild : *pObjList) + SwTextBoxHelper::changeAnchor(&rFormat, pChild.get()); } else SwTextBoxHelper::syncFlyFrameAttr( diff --git a/sw/source/core/frmedt/feshview.cxx b/sw/source/core/frmedt/feshview.cxx index 7b1da09c118f..17923c83d255 100644 --- a/sw/source/core/frmedt/feshview.cxx +++ b/sw/source/core/frmedt/feshview.cxx @@ -1380,14 +1380,15 @@ bool SwFEShell::ShouldObjectBeSelected(const Point& rPt) if ( bRet ) { const SdrPage* pPage = rIDDMA.GetDrawModel()->GetPage(0); - for(size_t a = pObj->GetOrdNum()+1; bRet && a < pPage->GetObjCount(); ++a) + for(auto it = pPage->begin() + pObj->GetOrdNum() + 1; it != pPage->end(); ++it) { - SdrObject *pCandidate = pPage->GetObj(a); + SdrObject *pCandidate = it->get(); SwVirtFlyDrawObj* pDrawObj = dynamic_cast<SwVirtFlyDrawObj*>(pCandidate); if (pDrawObj && pDrawObj->GetCurrentBoundRect().Contains(rPt)) { bRet = false; + break; } } } @@ -1412,8 +1413,8 @@ static bool lcl_IsControlGroup( const SdrObject *pObj ) { bRet = true; const SdrObjList *pLst = pObjGroup->GetSubList(); - for ( size_t i = 0; i < pLst->GetObjCount(); ++i ) - if( !::lcl_IsControlGroup( pLst->GetObj( i ) ) ) + for (const rtl::Reference<SdrObject>& pChildObj : *pLst) + if( !::lcl_IsControlGroup( pChildObj.get() ) ) return false; } return bRet; diff --git a/sw/source/core/model/ModelTraverser.cxx b/sw/source/core/model/ModelTraverser.cxx index b7d2b2200dd6..6ab8e39c42cf 100644 --- a/sw/source/core/model/ModelTraverser.cxx +++ b/sw/source/core/model/ModelTraverser.cxx @@ -42,15 +42,11 @@ void ModelTraverser::traverse() for (sal_uInt16 nPage = 0; nPage < pModel->GetPageCount(); ++nPage) { SdrPage* pPage = pModel->GetPage(nPage); - for (size_t nObject = 0; nObject < pPage->GetObjCount(); ++nObject) + for (const rtl::Reference<SdrObject>& pObject : *pPage) { - SdrObject* pObject = pPage->GetObj(nObject); - if (pObject) + for (auto& pNodeHandler : mpNodeHandler) { - for (auto& pNodeHandler : mpNodeHandler) - { - pNodeHandler->handleSdrObject(pObject); - } + pNodeHandler->handleSdrObject(pObject.get()); } } } diff --git a/sw/source/core/model/SearchResultLocator.cxx b/sw/source/core/model/SearchResultLocator.cxx index c1b92c47a7cc..c3c4a83460b5 100644 --- a/sw/source/core/model/SearchResultLocator.cxx +++ b/sw/source/core/model/SearchResultLocator.cxx @@ -58,19 +58,15 @@ void SearchResultLocator::findOne(LocationResult& rResult, SearchIndexData const for (sal_uInt16 nPage = 0; nPage < pModel->GetPageCount(); ++nPage) { SdrPage* pPage = pModel->GetPage(nPage); - for (size_t nObject = 0; nObject < pPage->GetObjCount(); ++nObject) + for (const rtl::Reference<SdrObject>& pObject : *pPage) { - SdrObject* pObject = pPage->GetObj(nObject); - if (pObject) + if (pObject->GetName() == rSearchIndexData.maObjectName) { - if (pObject->GetName() == rSearchIndexData.maObjectName) - { - auto aRect = pObject->GetLogicRect(); - rResult.mbFound = true; - rResult.maRectangles.emplace_back(aRect.Left(), aRect.Top(), - aRect.Left() + aRect.GetWidth(), - aRect.Top() + aRect.GetHeight()); - } + auto aRect = pObject->GetLogicRect(); + rResult.mbFound = true; + rResult.maRectangles.emplace_back(aRect.Left(), aRect.Top(), + aRect.Left() + aRect.GetWidth(), + aRect.Top() + aRect.GetHeight()); } } } diff --git a/sw/source/core/undo/undraw.cxx b/sw/source/core/undo/undraw.cxx index 3fd7fa8ce244..134c6862971e 100644 --- a/sw/source/core/undo/undraw.cxx +++ b/sw/source/core/undo/undraw.cxx @@ -203,12 +203,10 @@ void SwUndoDrawGroup::UndoImpl(::sw::UndoRedoContext &) { if (auto pChildren = pObj->getChildrenOfSdrObject()) { - for (size_t idx = 0; idx < pChildren->GetObjCount(); idx++) + for (const rtl::Reference<SdrObject>& pChild : *pChildren) { - auto pChild = pChildren->GetObj(idx); - - if (auto pTextBox = pOldTextBoxNode->GetTextBox(pChild)) - vTextBoxes.push_back(std::pair(pChild, pTextBox)); + if (auto pTextBox = pOldTextBoxNode->GetTextBox(pChild.get())) + vTextBoxes.push_back(std::pair(pChild.get(), pTextBox)); } } } @@ -407,11 +405,10 @@ void SwUndoDrawUnGroup::UndoImpl(::sw::UndoRedoContext & rContext) { if (auto pChildren = pGroupObj->getChildrenOfSdrObject()) { - for (size_t idx = 0; idx < pChildren->GetObjCount(); idx++) + for (const rtl::Reference<SdrObject>& pChild : *pChildren) { - auto pChild = pChildren->GetObj(idx); - if (auto pTextBox = pTxBxNd->GetTextBox(pChild)) - vTextBoxes.push_back(std::pair(pChild, pTextBox)); + if (auto pTextBox = pTxBxNd->GetTextBox(pChild.get())) + vTextBoxes.push_back(std::pair(pChild.get(), pTextBox)); } } } @@ -471,9 +468,9 @@ void SwUndoDrawUnGroup::RedoImpl(::sw::UndoRedoContext &) auto pMasterObj = m_pObjArray[0].pObj; if (auto pObjList = pMasterObj->getChildrenOfSdrObject()) - for (size_t idx = 0; idx < pObjList->GetObjCount(); idx++) + for (const rtl::Reference<SdrObject>& pObj : *pObjList) { - vTextBoxes.push_back(std::pair(pObjList->GetObj(idx), pTextBoxNode->GetTextBox(pObjList->GetObj(idx)))); + vTextBoxes.push_back(std::pair(pObj.get(), pTextBoxNode->GetTextBox(pObj.get()))); } } diff --git a/sw/source/core/view/vdraw.cxx b/sw/source/core/view/vdraw.cxx index 55b7420c26c3..5a95053cd7b9 100644 --- a/sw/source/core/view/vdraw.cxx +++ b/sw/source/core/view/vdraw.cxx @@ -212,14 +212,12 @@ void SwViewShellImp::NotifySizeChg( const Size &rNewSz ) OSL_ENSURE( m_pShell->getIDocumentDrawModelAccess().GetDrawModel(), "NotifySizeChg without DrawModel" ); SdrPage* pPage = m_pShell->getIDocumentDrawModelAccess().GetDrawModel()->GetPage( 0 ); - const size_t nObjs = pPage->GetObjCount(); - for( size_t nObj = 0; nObj < nObjs; ++nObj ) + for (const rtl::Reference<SdrObject>& pObj : *pPage) { - SdrObject *pObj = pPage->GetObj( nObj ); - if( dynamic_cast<const SwVirtFlyDrawObj*>( pObj) == nullptr ) + if( dynamic_cast<const SwVirtFlyDrawObj*>( pObj.get()) == nullptr ) { // Objects not anchored to the frame, do not need to be adjusted - const SwContact *pCont = GetUserCall(pObj); + const SwContact *pCont = GetUserCall(pObj.get()); // this function might be called by the InsertDocument, when // a PageDesc-Attribute is set on a node. Then the SdrObject // must not have an UserCall. diff --git a/sw/source/uibase/uiview/viewdraw.cxx b/sw/source/uibase/uiview/viewdraw.cxx index 9e718ee379ea..ffa61e6a61d8 100644 --- a/sw/source/uibase/uiview/viewdraw.cxx +++ b/sw/source/uibase/uiview/viewdraw.cxx @@ -690,11 +690,9 @@ bool SwView::HasOnlyObj(SdrObject const *pSdrObj, SdrInventor eObjInventor) cons if (pSdrObj->IsGroupObject()) { SdrObjList* pList = pSdrObj->GetSubList(); - const size_t nCnt = pList->GetObjCount(); - - for (size_t i = 0; i < nCnt; ++i) + for (const rtl::Reference<SdrObject>& pObj : *pList) { - bRet = HasOnlyObj(pList->GetObj(i), eObjInventor); + bRet = HasOnlyObj(pObj.get(), eObjInventor); if (!bRet) break; } diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index 6aa26957bba0..b84bad1531c9 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -4268,14 +4268,14 @@ Any SwXLinkNameAccessWrapper::getByName(const OUString& rName) if (pModel) { SdrPage* pPage = pModel->GetPage(0); - for (size_t i = 0; i < pPage->GetObjCount() && !bFound; ++i) + for (const rtl::Reference<SdrObject>& pObj : *pPage) { - SdrObject* pObj = pPage->GetObj(i); if (sParam == pObj->GetName()) { Reference<XPropertySet> xDrawingObject = new SwXDrawingObjectTarget(sParam); aRet <<= xDrawingObject; bFound = true; + break; } } } @@ -4328,9 +4328,8 @@ Sequence< OUString > SwXLinkNameAccessWrapper::getElementNames() aRet.realloc(nObjCount); OUString* pResArr = aRet.getArray(); auto j = 0; - for (size_t i = 0; i < nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *pPage) { - SdrObject* pObj = pPage->GetObj(i); if (!pObj->GetName().isEmpty()) pResArr[j++] = pObj->GetName() + "|drawingobject"; } @@ -4381,11 +4380,13 @@ sal_Bool SwXLinkNameAccessWrapper::hasByName(const OUString& rName) if (pModel) { SdrPage* pPage = pModel->GetPage(0); - const size_t nObjCount = pPage->GetObjCount(); - for (size_t i = 0; i < nObjCount && !bRet; ++i) + for (const rtl::Reference<SdrObject>& pObj : *pPage) { - if (sParam == pPage->GetObj(i)->GetName()) + if (sParam == pObj->GetName()) + { bRet = true; + break; + } } } } diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx index 02d3a661e4d1..5d56eada213b 100644 --- a/sw/source/uibase/utlui/content.cxx +++ b/sw/source/uibase/utlui/content.cxx @@ -984,10 +984,8 @@ void SwContentType::FillMemberList(bool* pbContentChanged) if(pModel) { SdrPage* pPage = pModel->GetPage(0); - const size_t nCount = pPage->GetObjCount(); - for( size_t i=0; i<nCount; ++i ) + for (const rtl::Reference<SdrObject>& pTemp : *pPage) { - SdrObject* pTemp = pPage->GetObj(i); // #i51726# - all drawing objects can be named now if (!pTemp->GetName().isEmpty()) { @@ -2258,14 +2256,12 @@ SdrObject* SwContentTree::GetDrawingObjectsByContent(const SwContent *pCnt) { SwDrawModel* pDrawModel = m_pActiveShell->GetDoc()->getIDocumentDrawModelAccess().GetDrawModel(); SdrPage* pPage = pDrawModel->GetPage(0); - const size_t nCount = pPage->GetObjCount(); - for( size_t i=0; i<nCount; ++i ) + for (const rtl::Reference<SdrObject>& pTemp : *pPage) { - SdrObject* pTemp = pPage->GetObj(i); if( pTemp->GetName() == pCnt->GetName()) { - pRetObj = pTemp; + pRetObj = pTemp.get(); break; } } @@ -4443,7 +4439,6 @@ IMPL_LINK(SwContentTree, KeyInputHdl, const KeyEvent&, rEvent, bool) SwDrawModel* pDrawModel = m_pActiveShell->GetDoc()->getIDocumentDrawModelAccess().GetDrawModel(); SdrPage* pPage = pDrawModel->GetPage(0); - const size_t nCount = pPage->GetObjCount(); bool hasObjectMarked = false; if (SdrObject* pObject = GetDrawingObjectsByContent(pCnt)) @@ -4456,10 +4451,9 @@ IMPL_LINK(SwContentTree, KeyInputHdl, const KeyEvent&, rEvent, bool) } } - for( size_t i=0; i<nCount; ++i ) + for (const rtl::Reference<SdrObject>& pTemp : *pPage) { - SdrObject* pTemp = pPage->GetObj(i); - bool bMark = pDrawView->IsObjMarked(pTemp); + bool bMark = pDrawView->IsObjMarked(pTemp.get()); switch( pTemp->GetObjIdentifier() ) { case SdrObjKind::Group: @@ -4489,7 +4483,7 @@ IMPL_LINK(SwContentTree, KeyInputHdl, const KeyEvent&, rEvent, bool) SdrPageView* pPV = pDrawView->GetSdrPageView/*GetPageViewPvNum*/(/*0*/); if (pPV) { - pDrawView->MarkObj(pTemp, pPV, true); + pDrawView->MarkObj(pTemp.get(), pPV, true); } } } @@ -5975,15 +5969,14 @@ void SwContentTree::BringEntryToAttention(const weld::TreeIter& rEntry) { if (const SdrPage* pPage = pModel->GetPage(0)) { - if (const size_t nCount = pPage->GetObjCount()) + if (pPage->GetObjCount()) { std::vector<const SdrObject*> aSdrObjectArr; - for (size_t i = 0; i < nCount; ++i) + for (const rtl::Reference<SdrObject>& pObject : *pPage) { - const SdrObject* pObject = pPage->GetObj(i); if (pObject && !pObject->GetName().isEmpty() && rIDDMA.IsVisibleLayerId(pObject->GetLayer())) - aSdrObjectArr.push_back(pObject); + aSdrObjectArr.push_back(pObject.get()); } BringDrawingObjectsToAttention(aSdrObjectArr); } diff --git a/sw/source/uibase/wrtsh/move.cxx b/sw/source/uibase/wrtsh/move.cxx index c29752db4392..c50740354928 100644 --- a/sw/source/uibase/wrtsh/move.cxx +++ b/sw/source/uibase/wrtsh/move.cxx @@ -677,16 +677,14 @@ bool SwWrtShell::GotoDrawingObject(std::u16string_view rName) pDrawView->SdrEndTextEdit(); pDrawView->UnmarkAll(); SdrPage* pPage = getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0); - const size_t nCount = pPage->GetObjCount(); - for (size_t i = 0; i < nCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *pPage) { - SdrObject* pObj = pPage->GetObj(i); if (pObj->GetName() == rName) { SdrPageView* pPageView = pDrawView->GetSdrPageView(); if(pPageView) { - pDrawView->MarkObj(pObj, pPageView); + pDrawView->MarkObj(pObj.get(), pPageView); m_aNavigationMgr.addEntry(aPos); EnterStdMode(); HideCursor(); commit baa67b2d7037bc5e289a144a81014f1fb42e68ed Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Wed Oct 18 12:28:12 2023 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Wed Oct 18 20:08:21 2023 +0200 use more SdrObjList::begin/end in svx Change-Id: I362a2e12492391338b63708e4b329fc77ac363c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158113 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/include/svx/svdpage.hxx b/include/svx/svdpage.hxx index 7ab37532c046..b197e4d2eb77 100644 --- a/include/svx/svdpage.hxx +++ b/include/svx/svdpage.hxx @@ -229,6 +229,8 @@ public: SdrObjectDeque::const_iterator begin() const { return maList.begin(); } SdrObjectDeque::const_iterator end() const { return maList.end(); } + SdrObjectDeque::const_reverse_iterator rbegin() const { return maList.rbegin(); } + SdrObjectDeque::const_reverse_iterator rend() const { return maList.rend(); } private: tools::Rectangle maSdrObjListOutRect; diff --git a/svx/source/dialog/connctrl.cxx b/svx/source/dialog/connctrl.cxx index ebf0c44c27f9..13677849fa44 100644 --- a/svx/source/dialog/connctrl.cxx +++ b/svx/source/dialog/connctrl.cxx @@ -211,14 +211,9 @@ void SvxXConnectionPreview::Paint(vcl::RenderContext& rRenderContext, const tool // New stuff: Use an ObjectContactOfObjListPainter. sdr::contact::SdrObjectVector aObjectVector; - - for (size_t a = 0; a < mxSdrPage->GetObjCount(); ++a) - { - SdrObject* pObject = mxSdrPage->GetObj(a); - DBG_ASSERT(pObject, - "SvxXConnectionPreview::Paint: Corrupt ObjectList (!)"); - aObjectVector.push_back(pObject); - } + aObjectVector.reserve(mxSdrPage->GetObjCount()); + for (const rtl::Reference<SdrObject>& pObject : *mxSdrPage) + aObjectVector.push_back(pObject.get()); sdr::contact::ObjectContactOfObjListPainter aPainter(rRenderContext, std::move(aObjectVector), nullptr); sdr::contact::DisplayInfo aDisplayInfo; diff --git a/svx/source/engine3d/scene3d.cxx b/svx/source/engine3d/scene3d.cxx index afd73e744780..5e55fa7c81c8 100644 --- a/svx/source/engine3d/scene3d.cxx +++ b/svx/source/engine3d/scene3d.cxx @@ -645,9 +645,9 @@ void E3dScene::RecalcSnapRect() // call parent E3dObject::RecalcSnapRect(); - for(size_t a = 0; a < GetObjCount(); ++a) + for (const rtl::Reference<SdrObject>& pObj : *this) { - E3dObject* pCandidate(DynCastE3dObject(GetObj(a))); + E3dObject* pCandidate(DynCastE3dObject(pObj.get())); if(pCandidate) { @@ -723,9 +723,9 @@ void E3dScene::SetSelected(bool bNew) // call parent E3dObject::SetSelected(bNew); - for(size_t a(0); a < GetObjCount(); a++) + for (const rtl::Reference<SdrObject>& pObj : *this) { - E3dObject* pCandidate(DynCastE3dObject(GetObj(a))); + E3dObject* pCandidate(DynCastE3dObject(pObj.get())); if(pCandidate) { @@ -799,9 +799,9 @@ void E3dScene::SetBoundAndSnapRectsDirty(bool bNotMyself, bool bRecursive) // call parent E3dObject::SetBoundAndSnapRectsDirty(bNotMyself, bRecursive); - for(size_t a = 0; a < GetObjCount(); ++a) + for (const rtl::Reference<SdrObject>& pObj : *this) { - E3dObject* pCandidate = DynCastE3dObject(GetObj(a)); + E3dObject* pCandidate = DynCastE3dObject(pObj.get()); if(pCandidate) { @@ -815,9 +815,9 @@ void E3dScene::NbcSetLayer(SdrLayerID nLayer) // call parent E3dObject::NbcSetLayer(nLayer); - for(size_t a = 0; a < GetObjCount(); ++a) + for (const rtl::Reference<SdrObject>& pObj : *this) { - E3dObject* pCandidate = DynCastE3dObject(GetObj(a)); + E3dObject* pCandidate = DynCastE3dObject(pObj.get()); if(pCandidate) { @@ -834,9 +834,9 @@ void E3dScene::handlePageChange(SdrPage* pOldPage, SdrPage* pNewPage) // call parent E3dObject::handlePageChange(pOldPage, pNewPage); - for(size_t a(0); a < GetObjCount(); a++) + for (const rtl::Reference<SdrObject>& pObj : *this) { - E3dObject* pCandidate = DynCastE3dObject(GetObj(a)); + E3dObject* pCandidate = DynCastE3dObject(pObj.get()); if(pCandidate) { @@ -857,11 +857,10 @@ SdrObjList* E3dScene::GetSubList() const basegfx::B3DRange E3dScene::RecalcBoundVolume() const { basegfx::B3DRange aRetval; - const size_t nObjCnt(GetObjCount()); - for(size_t a = 0; a < nObjCnt; ++a) + for (const rtl::Reference<SdrObject>& pObj : *this) { - const E3dObject* p3DObject = DynCastE3dObject(GetObj(a)); + const E3dObject* p3DObject = DynCastE3dObject(pObj.get()); if(p3DObject) { @@ -879,9 +878,9 @@ void E3dScene::SetTransformChanged() // call parent E3dObject::SetTransformChanged(); - for(size_t a = 0; a < GetObjCount(); ++a) + for (const rtl::Reference<SdrObject>& pObj : *this) { - E3dObject* pCandidate = DynCastE3dObject(GetObj(a)); + E3dObject* pCandidate = DynCastE3dObject(pObj.get()); if(pCandidate) { diff --git a/svx/source/engine3d/view3d.cxx b/svx/source/engine3d/view3d.cxx index 29a048e3f055..844d96b48727 100644 --- a/svx/source/engine3d/view3d.cxx +++ b/svx/source/engine3d/view3d.cxx @@ -397,13 +397,10 @@ std::unique_ptr<SdrModel> E3dView::CreateMarkedObjModel() const for(sal_uInt16 nPg(0); nPg < pNewModel->GetPageCount(); nPg++) { const SdrPage* pSrcPg=pNewModel->GetPage(nPg); - const size_t nObjCount(pSrcPg->GetObjCount()); - for(size_t nOb = 0; nOb < nObjCount; ++nOb) + for (const rtl::Reference<SdrObject>& pSrcOb : *pSrcPg) { - const SdrObject* pSrcOb=pSrcPg->GetObj(nOb); - - if(const E3dScene* p3dscene = DynCastE3dScene( pSrcOb)) + if(const E3dScene* p3dscene = DynCastE3dScene( pSrcOb.get())) { pScene = const_cast<E3dScene*>(p3dscene); @@ -451,17 +448,15 @@ bool E3dView::Paste( for(sal_uInt16 nPg(0); nPg < rMod.GetPageCount(); nPg++) { const SdrPage* pSrcPg=rMod.GetPage(nPg); - const size_t nObjCount(pSrcPg->GetObjCount()); // calculate offset for paste tools::Rectangle aR = pSrcPg->GetAllObjBoundRect(); Point aDist(aPos - aR.Center()); // Insert sub-objects for scenes - for(size_t nOb = 0; nOb < nObjCount; ++nOb) + for (const rtl::Reference<SdrObject>& pSrcOb : *pSrcPg) { - const SdrObject* pSrcOb = pSrcPg->GetObj(nOb); - if(const E3dScene* p3dscene = DynCastE3dScene(pSrcOb)) + if(const E3dScene* p3dscene = DynCastE3dScene(pSrcOb.get())) { E3dScene* pSrcScene = const_cast<E3dScene*>(p3dscene); ImpCloneAll3DObjectsToDestScene(pSrcScene, pDstScene, aDist); @@ -486,9 +481,9 @@ bool E3dView::ImpCloneAll3DObjectsToDestScene(E3dScene const * pSrcScene, E3dSce if(pSrcScene && pDstScene) { - for(size_t i = 0; i < pSrcScene->GetSubList()->GetObjCount(); ++i) + for (const rtl::Reference<SdrObject>& pObj : *pSrcScene->GetSubList()) { - E3dCompoundObject* pCompoundObj = dynamic_cast< E3dCompoundObject* >(pSrcScene->GetSubList()->GetObj(i)); + E3dCompoundObject* pCompoundObj = dynamic_cast< E3dCompoundObject* >(pObj.get()); if(pCompoundObj) { diff --git a/svx/source/engine3d/view3d1.cxx b/svx/source/engine3d/view3d1.cxx index bc5cfbaf5116..47de321f581e 100644 --- a/svx/source/engine3d/view3d1.cxx +++ b/svx/source/engine3d/view3d1.cxx @@ -83,8 +83,8 @@ static void Imp_E3dView_InorderRun3DObjects(const SdrObject* pObj, sal_uInt32& r else if(pObj->IsGroupObject()) { SdrObjList* pList = pObj->GetSubList(); - for(size_t a = 0; a < pList->GetObjCount(); ++a) - Imp_E3dView_InorderRun3DObjects(pList->GetObj(a), rMask); + for (const rtl::Reference<SdrObject>& pChildObj : *pList) + Imp_E3dView_InorderRun3DObjects(pChildObj.get(), rMask); } } diff --git a/svx/source/form/fmview.cxx b/svx/source/form/fmview.cxx index ffb0e85e2c96..8267c334bd6f 100644 --- a/svx/source/form/fmview.cxx +++ b/svx/source/form/fmview.cxx @@ -497,10 +497,9 @@ bool FmFormView::KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin) { if (FmFormPage* pCurPage = GetCurPage()) { - for (size_t a = 0; a < pCurPage->GetObjCount(); ++a) + for (const rtl::Reference<SdrObject>& pObj : *pCurPage) { - SdrObject* pObj = pCurPage->GetObj(a); - FmFormObj* pFormObject = FmFormObj::GetFormObject(pObj); + FmFormObj* pFormObject = FmFormObj::GetFormObject(pObj.get()); if (!pFormObject) continue; diff --git a/svx/source/form/navigatortreemodel.cxx b/svx/source/form/navigatortreemodel.cxx index 64f4494bc445..5fae42901de2 100644 --- a/svx/source/form/navigatortreemodel.cxx +++ b/svx/source/form/navigatortreemodel.cxx @@ -741,10 +741,9 @@ namespace svxform if ( auto pObjGroup = dynamic_cast<const SdrObjGroup*>( pObject) ) { // descend recursively const SdrObjList *pChildren = pObjGroup->GetSubList(); - for ( size_t i=0; i<pChildren->GetObjCount(); ++i ) + for (const rtl::Reference<SdrObject>& pCurrent : *pChildren) { - SdrObject* pCurrent = pChildren->GetObj(i); - if (!InsertFormComponent(rHint, pCurrent)) + if (!InsertFormComponent(rHint, pCurrent.get())) return false; } } diff --git a/svx/source/sdr/contact/objectcontactofpageview.cxx b/svx/source/sdr/contact/objectcontactofpageview.cxx index 4bc227bffd11..c777d069eaf2 100644 --- a/svx/source/sdr/contact/objectcontactofpageview.cxx +++ b/svx/source/sdr/contact/objectcontactofpageview.cxx @@ -244,10 +244,8 @@ namespace sdr::contact { // Not empty? Then not doing a full redraw, check if // getPrimitive2DSequenceHierarchy() is still needed. - sal_Int32 nObjCount = GetSdrPage()->GetObjCount(); - for (sal_Int32 i = 0; i < nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObject : *GetSdrPage()) { - SdrObject* pObject = GetSdrPage()->GetObj(i); if (rRedrawArea.Overlaps(pObject->GetCurrentBoundRect())) { bGetHierarchy = true; diff --git a/svx/source/sdr/properties/e3dsceneproperties.cxx b/svx/source/sdr/properties/e3dsceneproperties.cxx index b2380468c671..789472d5087a 100644 --- a/svx/source/sdr/properties/e3dsceneproperties.cxx +++ b/svx/source/sdr/properties/e3dsceneproperties.cxx @@ -67,38 +67,36 @@ namespace sdr::properties // collect all ItemSets of contained 3d objects const SdrObjList* pSub(static_cast<const E3dScene&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); - - for(size_t a = 0; a < nCount; ++a) - { - SdrObject* pObj = pSub->GetObj(a); - if(dynamic_cast<const E3dCompoundObject* >(pObj)) + if (pSub) + for (const rtl::Reference<SdrObject>& pObj : *pSub) { - const SfxItemSet& rSet = pObj->GetMergedItemSet(); - SfxWhichIter aIter(rSet); - sal_uInt16 nWhich(aIter.FirstWhich()); - - while(nWhich) + if(dynamic_cast<const E3dCompoundObject* >(pObj.get())) { - // Leave out the SDRATTR_3DSCENE_ range, this would only be double - // and always equal. - if(nWhich <= SDRATTR_3DSCENE_FIRST || nWhich >= SDRATTR_3DSCENE_LAST) + const SfxItemSet& rSet = pObj->GetMergedItemSet(); + SfxWhichIter aIter(rSet); + sal_uInt16 nWhich(aIter.FirstWhich()); + + while(nWhich) { - if(SfxItemState::DONTCARE == aIter.GetItemState(false)) - { - mxItemSet->InvalidateItem(nWhich); - } - else + // Leave out the SDRATTR_3DSCENE_ range, this would only be double + // and always equal. + if(nWhich <= SDRATTR_3DSCENE_FIRST || nWhich >= SDRATTR_3DSCENE_LAST) { - mxItemSet->MergeValue(rSet.Get(nWhich), true); + if(SfxItemState::DONTCARE == aIter.GetItemState(false)) + { + mxItemSet->InvalidateItem(nWhich); + } + else + { + mxItemSet->MergeValue(rSet.Get(nWhich), true); + } } - } - nWhich = aIter.NextWhich(); + nWhich = aIter.NextWhich(); + } } } - } // call parent return E3dProperties::GetMergedItemSet(); @@ -124,11 +122,9 @@ namespace sdr::properties if(xNewSet->Count()) { - for(size_t a = 0; a < nCount; ++a) + for (const rtl::Reference<SdrObject>& pObj : *pSub) { - SdrObject* pObj = pSub->GetObj(a); - - if(dynamic_cast<const E3dCompoundObject* >(pObj)) + if(dynamic_cast<const E3dCompoundObject* >(pObj.get())) { // set merged ItemSet at contained 3d object. pObj->SetMergedItemSet(*xNewSet, bClearAllItems); @@ -145,12 +141,9 @@ namespace sdr::properties { const SdrObjList* pSub(static_cast<const E3dScene&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); - - for(size_t a = 0; a < nCount; ++a) - { - pSub->GetObj(a)->SetMergedItem(rItem); - } + if (pSub) + for (const rtl::Reference<SdrObject>& pObj : *pSub) + pObj->SetMergedItem(rItem); // #i43809# call parent. This will set items on local object, too. E3dProperties::SetMergedItem(rItem); @@ -160,12 +153,9 @@ namespace sdr::properties { const SdrObjList* pSub(static_cast<const E3dScene&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); - - for(size_t a = 0; a < nCount; ++a) - { - pSub->GetObj(a)->ClearMergedItem(nWhich); - } + if (pSub) + for (const rtl::Reference<SdrObject>& pObj : *pSub) + pObj->ClearMergedItem(nWhich); // #i43809# call parent. This will clear items on local object, too. E3dProperties::ClearMergedItem(nWhich); @@ -234,14 +224,14 @@ namespace sdr::properties { const SdrObjList* pSub(static_cast<const E3dScene&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); - - for(size_t a = 0; a < nCount; ++a) + if (!pSub) + return; + for (const rtl::Reference<SdrObject>& pObj : *pSub) { if(bBroadcast) - pSub->GetObj(a)->SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); + pObj->SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); else - pSub->GetObj(a)->NbcSetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); + pObj->NbcSetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); } } @@ -251,11 +241,11 @@ namespace sdr::properties const SdrObjList* pSub(static_cast<const E3dScene&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); - - for(size_t a = 0; a < nCount; ++a) + if (!pSub) + return pRetval; + for (const rtl::Reference<SdrObject>& pObj : *pSub) { - SfxStyleSheet* pCandidate = pSub->GetObj(a)->GetStyleSheet(); + SfxStyleSheet* pCandidate = pObj->GetStyleSheet(); if(pRetval) { diff --git a/svx/source/sdr/properties/groupproperties.cxx b/svx/source/sdr/properties/groupproperties.cxx index 6bb3485689b4..e6a83d329d3c 100644 --- a/svx/source/sdr/properties/groupproperties.cxx +++ b/svx/source/sdr/properties/groupproperties.cxx @@ -67,11 +67,11 @@ namespace sdr::properties // collect all ItemSets in mpItemSet const SdrObjList* pSub(static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); - - for(size_t a = 0; a < nCount; ++a) + if (!pSub) + return *moMergedItemSet; + for (const rtl::Reference<SdrObject>& pObj : *pSub) { - const SfxItemSet& rSet = pSub->GetObj(a)->GetMergedItemSet(); + const SfxItemSet& rSet = pObj->GetMergedItemSet(); SfxWhichIter aIter(rSet); sal_uInt16 nWhich(aIter.FirstWhich()); @@ -100,18 +100,11 @@ namespace sdr::properties // iterate over contained SdrObjects const SdrObjList* pSub(static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); - - for(size_t a = 0; a < nCount; ++a) - { - SdrObject* pObj = pSub->GetObj(a); - - if(pObj) - { - // Set merged ItemSet at contained object - pObj->SetMergedItemSet(rSet, bClearAllItems); - } - } + if (!pSub) + return; + for (const rtl::Reference<SdrObject>& pObj : *pSub) + // Set merged ItemSet at contained object + pObj->SetMergedItemSet(rSet, bClearAllItems); // Do not call parent here. Group objects do not have local ItemSets // where items need to be set. @@ -132,17 +125,10 @@ namespace sdr::properties // iterate over contained SdrObjects const SdrObjList* pSub(static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); - - for(size_t a = 0; a < nCount; ++a) - { - SdrObject* pObj = pSub->GetObj(a); - - if(pObj) - { - pObj->GetProperties().ClearObjectItem(nWhich); - } - } + if (!pSub) + return; + for (const rtl::Reference<SdrObject>& pObj : *pSub) + pObj->GetProperties().ClearObjectItem(nWhich); } void GroupProperties::ClearObjectItemDirect(const sal_uInt16 /*nWhich*/) @@ -154,24 +140,20 @@ namespace sdr::properties { const SdrObjList* pSub(static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); - - for(size_t a = 0; a < nCount; ++a) - { - pSub->GetObj(a)->GetProperties().SetMergedItem(rItem); - } + if (!pSub) + return; + for (const rtl::Reference<SdrObject>& pObj : *pSub) + pObj->GetProperties().SetMergedItem(rItem); } void GroupProperties::ClearMergedItem(const sal_uInt16 nWhich) { const SdrObjList* pSub(static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); - - for(size_t a = 0; a < nCount; ++a) - { - pSub->GetObj(a)->GetProperties().ClearMergedItem(nWhich); - } + if (!pSub) + return; + for (const rtl::Reference<SdrObject>& pObj : *pSub) + pObj->GetProperties().ClearMergedItem(nWhich); } void GroupProperties::SetObjectItemSet(const SfxItemSet& /*rSet*/) @@ -185,17 +167,18 @@ namespace sdr::properties const SdrObjList* pSub(static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); + if (!pSub) + return pRetval; - for(size_t a = 0; a < nCount; ++a) + for (const rtl::Reference<SdrObject>& pObj : *pSub) { - SfxStyleSheet* pCandidate = pSub->GetObj(a)->GetStyleSheet(); + SfxStyleSheet* pCandidate = pObj->GetStyleSheet(); if(pRetval) { if(pCandidate != pRetval) { - // different StyleSheelts, return none + // different StyleSheets, return none return nullptr; } } @@ -213,14 +196,15 @@ namespace sdr::properties { const SdrObjList* pSub(static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); + if (!pSub) + return; - for(size_t a = 0; a < nCount; ++a) + for (const rtl::Reference<SdrObject>& pObj : *pSub) { if(bBroadcast) - pSub->GetObj(a)->SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); + pObj->SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); else - pSub->GetObj(a)->NbcSetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); + pObj->NbcSetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); } } @@ -228,12 +212,10 @@ namespace sdr::properties { const SdrObjList* pSub(static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList()); OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); - const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount()); - - for(size_t a = 0; a < nCount; ++a) - { - pSub->GetObj(a)->GetProperties().ForceStyleToHardAttributes(); - } + if (!pSub) + return; + for (const rtl::Reference<SdrObject>& pObj : *pSub) + pObj->GetProperties().ForceStyleToHardAttributes(); } } // end of namespace diff --git a/svx/source/svdraw/sdrpagewindow.cxx b/svx/source/svdraw/sdrpagewindow.cxx index e975b20ebb3f..fa8e5f4d7f84 100644 --- a/svx/source/svdraw/sdrpagewindow.cxx +++ b/svx/source/svdraw/sdrpagewindow.cxx @@ -283,11 +283,9 @@ namespace basegfx::B2DPolyPolygon aPolyB; - for(sal_uInt32 a(1); a < rPageView.GetPage()->GetObjCount(); a++) + for (const rtl::Reference<SdrObject>& pObjB : *rPageView.GetPage()) { - SdrObject* pObjB = pPage->GetObj(a); - - if(dynamic_cast<const SdrPathObj*>( pObjB)) + if(dynamic_cast<const SdrPathObj*>( pObjB.get())) { basegfx::B2DPolyPolygon aCandidate(pObjB->GetPathPoly()); aCandidate = basegfx::utils::correctOrientations(aCandidate); diff --git a/svx/source/svdraw/svdmark.cxx b/svx/source/svdraw/svdmark.cxx index c92fbebef7a1..c811a4d20aa5 100644 --- a/svx/source/svdraw/svdmark.cxx +++ b/svx/source/svdraw/svdmark.cxx @@ -395,16 +395,14 @@ bool SdrMarkList::InsertPageView(const SdrPageView& rPV) bool bChgd(false); DeletePageView(rPV); // delete all of them, then append the entire page const SdrObjList* pOL = rPV.GetObjList(); - const size_t nObjCount(pOL->GetObjCount()); - for(size_t nO = 0; nO < nObjCount; ++nO) + for (const rtl::Reference<SdrObject>& pObj : *pOL) { - SdrObject* pObj = pOL->GetObj(nO); - bool bDoIt(rPV.IsObjMarkable(pObj)); + bool bDoIt(rPV.IsObjMarkable(pObj.get())); if(bDoIt) { - maList.emplace_back(new SdrMark(pObj, const_cast<SdrPageView*>(&rPV))); + maList.emplace_back(new SdrMark(pObj.get(), const_cast<SdrPageView*>(&rPV))); SetNameDirty(); bChgd = true; } @@ -709,11 +707,8 @@ namespace sdr { SdrObjList* pList = pObj->GetSubList(); - for(size_t a = 0; a < pList->GetObjCount(); ++a) - { - SdrObject* pObj2 = pList->GetObj(a); - ImplCollectCompleteSelection(pObj2); - } + for (const rtl::Reference<SdrObject>& pObj2 : *pList) + ImplCollectCompleteSelection(pObj2.get()); } maAllMarkedObjects.push_back(pObj); diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx index 5b8a86a9526d..841cac87bb31 100644 --- a/svx/source/svdraw/svdmrkv.cxx +++ b/svx/source/svdraw/svdmrkv.cxx @@ -571,12 +571,9 @@ bool SdrMarkView::MarkableObjectsExceed( int n ) const return false; SdrObjList* pOL=pPV->GetObjList(); - const size_t nObjCount = pOL->GetObjCount(); - for (size_t nObjNum=0; nObjNum<nObjCount; ++nObjNum) { - SdrObject* pObj=pOL->GetObj(nObjNum); - if (IsObjMarkable(pObj,pPV) && --n<0) + for (const rtl::Reference<SdrObject>& pObj : *pOL) + if (IsObjMarkable(pObj.get(),pPV) && --n<0) return true; - } return false; } @@ -711,11 +708,9 @@ bool SdrMarkView::dumpGluePointsToJSON(boost::property_tree::ptree& rTree) const SdrObjList* pOL = mpMarkedPV->GetObjList(); if (!pOL) return false; - const size_t nObjCount = pOL->GetObjCount(); boost::property_tree::ptree elements; - for (size_t nObjNum = 0; nObjNum < nObjCount; ++nObjNum) + for (const rtl::Reference<SdrObject>& pObj : *pOL) { - SdrObject* pObj = pOL->GetObj(nObjNum); if (!pObj) continue; if (pObj == GetMarkedObjectByIndex(0)) @@ -2128,19 +2123,17 @@ void SdrMarkView::MarkObj(const tools::Rectangle& rRect, bool bUnmark) { pObjList=pPV->GetObjList(); tools::Rectangle aFrm1(aR); - const size_t nObjCount = pObjList->GetObjCount(); - for (size_t nO=0; nO<nObjCount; ++nO) { - SdrObject* pObj=pObjList->GetObj(nO); + for (const rtl::Reference<SdrObject>& pObj : *pObjList) { tools::Rectangle aRect(pObj->GetCurrentBoundRect()); if (aFrm1.Contains(aRect)) { if (!bUnmark) { - if (IsObjMarkable(pObj,pPV)) + if (IsObjMarkable(pObj.get(),pPV)) { - GetMarkedObjectListWriteAccess().InsertEntry(SdrMark(pObj,pPV)); + GetMarkedObjectListWriteAccess().InsertEntry(SdrMark(pObj.get(),pPV)); bFnd=true; } } else { - const size_t nPos=TryToFindMarkedObject(pObj); + const size_t nPos=TryToFindMarkedObject(pObj.get()); if (nPos!=SAL_MAX_SIZE) { GetMarkedObjectListWriteAccess().DeleteMark(nPos); diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx index b6f40386faab..c5741f5007c1 100644 --- a/svx/source/svdraw/svdobj.cxx +++ b/svx/source/svdraw/svdobj.cxx @@ -653,9 +653,8 @@ bool SdrObject::isVisibleOnAnyOfTheseLayers(const SdrLayerIDSet& rSet) const SdrObjList* pOL=GetSubList(); if (!pOL) return false; - const size_t nObjCount = pOL->GetObjCount(); - for (size_t nObjNum = 0; nObjNum<nObjCount; ++nObjNum) - if (pOL->GetObj(nObjNum)->isVisibleOnAnyOfTheseLayers(rSet)) + for (const rtl::Reference<SdrObject>& pObject : *pOL) + if (pObject->isVisibleOnAnyOfTheseLayers(rSet)) return true; return false; } @@ -2585,11 +2584,8 @@ rtl::Reference<SdrObject> SdrObject::ConvertToContourObj(SdrObject* pRet1, bool SdrObjList* pObjList2 = pRet->GetSubList(); rtl::Reference<SdrObject> pGroup = new SdrObjGroup(getSdrModelFromSdrObject()); - for(size_t a=0; a<pObjList2->GetObjCount(); ++a) - { - SdrObject* pIterObj = pObjList2->GetObj(a); - pGroup->GetSubList()->NbcInsertObject(ConvertToContourObj(pIterObj, bForceLineDash).get()); - } + for (const rtl::Reference<SdrObject>& pIterObj : *pObjList2) + pGroup->GetSubList()->NbcInsertObject(ConvertToContourObj(pIterObj.get(), bForceLineDash).get()); pRet = pGroup; } diff --git a/svx/source/svdraw/svdogrp.cxx b/svx/source/svdraw/svdogrp.cxx index 8a518554827a..5878c8cd9915 100644 --- a/svx/source/svdraw/svdogrp.cxx +++ b/svx/source/svdraw/svdogrp.cxx @@ -118,8 +118,7 @@ void SdrObjGroup::TakeObjInfo(SdrObjTransformInfoRec& rInfo) const { rInfo.bNoContortion=false; const size_t nObjCount(GetObjCount()); - for (size_t i=0; i<nObjCount; ++i) { - SdrObject* pObj(GetObj(i)); + for (const rtl::Reference<SdrObject>& pObj : *this) { SdrObjTransformInfoRec aInfo; pObj->TakeObjInfo(aInfo); if (!aInfo.bMoveAllowed ) rInfo.bMoveAllowed =false; @@ -188,10 +187,8 @@ SdrLayerID SdrObjGroup::GetLayer() const void SdrObjGroup::NbcSetLayer(SdrLayerID nLayer) { SdrObject::NbcSetLayer(nLayer); - const size_t nObjCount(GetObjCount()); - for (size_t i=0; i<nObjCount; ++i) { - GetObj(i)->NbcSetLayer(nLayer); - } + for (const rtl::Reference<SdrObject>& pObj : *this) + pObj->NbcSetLayer(nLayer); } void SdrObjGroup::handlePageChange(SdrPage* pOldPage, SdrPage* pNewPage) @@ -199,10 +196,8 @@ void SdrObjGroup::handlePageChange(SdrPage* pOldPage, SdrPage* pNewPage) // call parent SdrObject::handlePageChange(pOldPage, pNewPage); - for(size_t i(0); i < GetObjCount(); i++) - { - GetObj(i)->handlePageChange(pOldPage, pNewPage); - } + for (const rtl::Reference<SdrObject>& pObj : *this) + pObj->handlePageChange(pOldPage, pNewPage); } SdrObjList* SdrObjGroup::GetSubList() const @@ -314,13 +309,9 @@ void SdrObjGroup::RecalcSnapRect() basegfx::B2DPolyPolygon SdrObjGroup::TakeXorPoly() const { basegfx::B2DPolyPolygon aRetval; - const size_t nObjCount(GetObjCount()); - for(size_t a = 0; a < nObjCount; ++a) - { - SdrObject* pObj(GetObj(a)); + for (const rtl::Reference<SdrObject>& pObj : *this) aRetval.append(pObj->TakeXorPoly()); - } if(!aRetval.count()) { @@ -406,11 +397,8 @@ void SdrObjGroup::NbcMove(const Size& rSize) if(0 != nObjCount) { - for (size_t i=0; i<nObjCount; ++i) - { - SdrObject* pObj(GetObj(i)); + for (const rtl::Reference<SdrObject>& pObj : *this) pObj->NbcMove(rSize); - } } else { @@ -443,11 +431,8 @@ void SdrObjGroup::NbcResize(const Point& rRef, const Fraction& xFact, const Frac const size_t nObjCount(GetObjCount()); if(0 != nObjCount) { - for (size_t i=0; i<nObjCount; ++i) - { - SdrObject* pObj(GetObj(i)); + for (const rtl::Reference<SdrObject>& pObj : *this) pObj->NbcResize(rRef,xFact,yFact); - } } else { @@ -464,13 +449,9 @@ void SdrObjGroup::NbcRotate(const Point& rRef, Degree100 nAngle, double sn, doub { SetGlueReallyAbsolute(true); RotatePoint(maRefPoint, rRef, sn, cs); - const size_t nObjCount(GetObjCount()); - for (size_t i=0; i<nObjCount; ++i) - { - SdrObject* pObj(GetObj(i)); + for (const rtl::Reference<SdrObject>& pObj : *this) pObj->NbcRotate(rRef,nAngle,sn,cs); - } NbcRotateGluePoints(rRef,nAngle,sn,cs); SetGlueReallyAbsolute(false); @@ -481,13 +462,9 @@ void SdrObjGroup::NbcMirror(const Point& rRef1, const Point& rRef2) { SetGlueReallyAbsolute(true); MirrorPoint(maRefPoint, rRef1, rRef2); // implementation missing in SvdEtc! - const size_t nObjCount(GetObjCount()); - for (size_t i=0; i<nObjCount; ++i) - { - SdrObject* pObj(GetObj(i)); + for (const rtl::Reference<SdrObject>& pObj : *this) pObj->NbcMirror(rRef1,rRef2); - } NbcMirrorGluePoints(rRef1,rRef2); SetGlueReallyAbsolute(false); @@ -498,11 +475,9 @@ void SdrObjGroup::NbcShear(const Point& rRef, Degree100 nAngle, double tn, bool { SetGlueReallyAbsolute(true); ShearPoint(maRefPoint, rRef, tn); - const size_t nObjCount(GetObjCount()); - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); pObj->NbcShear(rRef,nAngle,tn,bVShear); } @@ -516,13 +491,9 @@ void SdrObjGroup::NbcSetAnchorPos(const Point& rPnt) m_aAnchor=rPnt; Size aSiz(rPnt.X()-m_aAnchor.X(),rPnt.Y()-m_aAnchor.Y()); maRefPoint.Move(aSiz); - const size_t nObjCount(GetObjCount()); - for (size_t i=0; i<nObjCount; ++i) - { - SdrObject* pObj(GetObj(i)); + for (const rtl::Reference<SdrObject>& pObj : *this) pObj->NbcSetAnchorPos(rPnt); - } } @@ -578,16 +549,14 @@ void SdrObjGroup::Move(const Size& rSiz) if(0 != nObjCount) { // first move the connectors, then everything else - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); if (pObj->IsEdgeObj()) pObj->Move(rSiz); } - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); if (!pObj->IsEdgeObj()) pObj->Move(rSiz); } @@ -631,16 +600,14 @@ void SdrObjGroup::Resize(const Point& rRef, const Fraction& xFact, const Fractio if(0 != nObjCount) { // move the connectors first, everything else afterwards - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); if (pObj->IsEdgeObj()) pObj->Resize(rRef,xFact,yFact,bUnsetRelative); } - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); if (!pObj->IsEdgeObj()) pObj->Resize(rRef,xFact,yFact,bUnsetRelative); } @@ -669,18 +636,15 @@ void SdrObjGroup::Rotate(const Point& rRef, Degree100 nAngle, double sn, double tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect(); RotatePoint(maRefPoint, rRef, sn, cs); // move the connectors first, everything else afterwards - const size_t nObjCount(GetObjCount()); - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); if (pObj->IsEdgeObj()) pObj->Rotate(rRef,nAngle,sn,cs); } - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); if (!pObj->IsEdgeObj()) pObj->Rotate(rRef,nAngle,sn,cs); } @@ -699,18 +663,15 @@ void SdrObjGroup::Mirror(const Point& rRef1, const Point& rRef2) tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect(); MirrorPoint(maRefPoint, rRef1, rRef2); // implementation missing in SvdEtc! // move the connectors first, everything else afterwards - const size_t nObjCount(GetObjCount()); - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); if (pObj->IsEdgeObj()) pObj->Mirror(rRef1,rRef2); } - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); if (!pObj->IsEdgeObj()) pObj->Mirror(rRef1,rRef2); } @@ -732,18 +693,15 @@ void SdrObjGroup::Shear(const Point& rRef, Degree100 nAngle, double tn, bool bVS tools::Rectangle aBoundRect0; if (m_pUserCall!=nullptr) aBoundRect0=GetLastBoundRect(); ShearPoint(maRefPoint, rRef, tn); // move the connectors first, everything else afterwards - const size_t nObjCount(GetObjCount()); - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); if (pObj->IsEdgeObj()) pObj->Shear(rRef,nAngle,tn,bVShear); } - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); if (!pObj->IsEdgeObj()) pObj->Shear(rRef,nAngle,tn,bVShear); } @@ -765,18 +723,15 @@ void SdrObjGroup::SetAnchorPos(const Point& rPnt) Size aSiz(rPnt.X()-m_aAnchor.X(),rPnt.Y()-m_aAnchor.Y()); maRefPoint.Move(aSiz); // move the connectors first, everything else afterwards - const size_t nObjCount(GetObjCount()); - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); if (pObj->IsEdgeObj()) pObj->SetAnchorPos(rPnt); } - for (size_t i=0; i<nObjCount; ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(i)); if (!pObj->IsEdgeObj()) pObj->SetAnchorPos(rPnt); } @@ -812,11 +767,9 @@ void SdrObjGroup::NbcReformatText() rtl::Reference<SdrObject> SdrObjGroup::DoConvertToPolyObj(bool bBezier, bool bAddText) const { rtl::Reference<SdrObject> pGroup( new SdrObjGroup(getSdrModelFromSdrObject()) ); - const size_t nObjCount(GetObjCount()); - for(size_t a=0; a < nObjCount; ++a) + for (const rtl::Reference<SdrObject>& pIterObj : *this) { - SdrObject* pIterObj(GetObj(a)); rtl::Reference<SdrObject> pResult(pIterObj->DoConvertToPolyObj(bBezier, bAddText)); // pResult can be NULL e.g. for empty objects diff --git a/svx/source/svdraw/svdotext.cxx b/svx/source/svdraw/svdotext.cxx index 123f264c7f81..e88e127e4fa0 100644 --- a/svx/source/svdraw/svdotext.cxx +++ b/svx/source/svdraw/svdotext.cxx @@ -1985,14 +1985,9 @@ void SdrTextObj::onEditOutlinerStatusEvent( EditStatus* pEditStatus ) static SdrObject *ImpGetObjByName(SdrObjList const *pObjList, std::u16string_view aObjName) { // scan the whole list - size_t nObjCount = pObjList->GetObjCount(); - for (size_t i = 0; i < nObjCount; i++) { - SdrObject *pCurObj = pObjList->GetObj(i); - - if (pCurObj->GetName() == aObjName) { - return pCurObj; - } - } + for (const rtl::Reference<SdrObject>& pCurObj : *pObjList) + if (pCurObj->GetName() == aObjName) + return pCurObj.get(); // not found return nullptr; } diff --git a/svx/source/svdraw/svdpage.cxx b/svx/source/svdraw/svdpage.cxx index 8570a2157295..bbe169e08b66 100644 --- a/svx/source/svdraw/svdpage.cxx +++ b/svx/source/svdraw/svdpage.cxx @@ -142,7 +142,6 @@ void SdrObjList::CopyObjects(const SdrObjList& rSrcList) #ifdef DBG_UTIL size_t nCloneErrCnt(0); #endif - const size_t nCount(rSrcList.GetObjCount()); if(nullptr == getSdrObjectFromSdrObjList() && nullptr == getSdrPageFromSdrObjList()) { @@ -154,15 +153,14 @@ void SdrObjList::CopyObjects(const SdrObjList& rSrcList) ? getSdrPageFromSdrObjList()->getSdrModelFromSdrPage() : getSdrObjectFromSdrObjList()->getSdrModelFromSdrObject()); - for (size_t no(0); no < nCount; ++no) + for (const rtl::Reference<SdrObject>& pSO : rSrcList) { - SdrObject* pSO(rSrcList.GetObj(no)); rtl::Reference<SdrObject> pDO(pSO->CloneSdrObject(rTargetSdrModel)); if(pDO) { NbcInsertObject(pDO.get(), SAL_MAX_SIZE); - aCloneList.AddPair(pSO, pDO.get()); + aCloneList.AddPair(pSO.get(), pDO.get()); } #ifdef DBG_UTIL else @@ -206,10 +204,9 @@ void SdrObjList::RecalcRects() { maSdrObjListOutRect=tools::Rectangle(); maSdrObjListSnapRect=maSdrObjListOutRect; - const size_t nCount = GetObjCount(); - for (size_t i=0; i<nCount; ++i) { - SdrObject* pObj=GetObj(i); - if (i==0) { + for (auto it = begin(), itEnd = end(); it != itEnd; ++it) { + SdrObject* pObj = it->get(); + if (it == begin()) { maSdrObjListOutRect=pObj->GetCurrentBoundRect(); maSdrObjListSnapRect=pObj->GetSnapRect(); } else { @@ -771,10 +768,8 @@ void SdrObjList::ImplReformatAllEdgeObjects(const SdrObjList& rObjList) void SdrObjList::BurnInStyleSheetAttributes() { - for(size_t a = 0; a < GetObjCount(); ++a) - { - GetObj(a)->BurnInStyleSheetAttributes(); - } + for (const rtl::Reference<SdrObject>& pObj : *this) + pObj->BurnInStyleSheetAttributes(); } size_t SdrObjList::GetObjCount() const @@ -793,11 +788,10 @@ SdrObject* SdrObjList::GetObj(size_t nNum) const SdrObject* SdrObjList::GetObjByName(std::u16string_view sName) const { - for (size_t i = 0; i < GetObjCount(); ++i) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj = GetObj(i); if (pObj->GetName() == sName) - return pObj; + return pObj.get(); } return nullptr; } @@ -1092,12 +1086,8 @@ void SdrObjList::dumpAsXml(xmlTextWriterPtr pWriter) const (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("ptr"), "%p", this); (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("symbol"), "%s", BAD_CAST(typeid(*this).name())); - size_t nObjCount = GetObjCount(); - for (size_t i = 0; i < nObjCount; ++i) - { - if (const SdrObject* pObject = GetObj(i)) - pObject->dumpAsXml(pWriter); - } + for (const rtl::Reference<SdrObject>& pObject : *this) + pObject->dumpAsXml(pWriter); (void)xmlTextWriterEndElement(pWriter); } @@ -1684,24 +1674,20 @@ void SdrPage::TRG_ImpMasterPageRemoved(const SdrPage& rRemovedPage) void SdrPage::MakePageObjectsNamesUnique() { std::unordered_set<OUString> aNameSet; - for (size_t no(0); no < GetObjCount(); ++no) + for (const rtl::Reference<SdrObject>& pObj : *this) { - SdrObject* pObj(GetObj(no)); - if(nullptr != pObj) + if (!pObj->GetName().isEmpty()) { - if (!pObj->GetName().isEmpty()) + pObj->MakeNameUnique(aNameSet); + SdrObjList* pSdrObjList = pObj->GetSubList(); // group + if (pSdrObjList) { - pObj->MakeNameUnique(aNameSet); - SdrObjList* pSdrObjList = pObj->GetSubList(); // group - if (pSdrObjList) + SdrObject* pListObj; + SdrObjListIter aIter(pSdrObjList, SdrIterMode::DeepWithGroups); + while (aIter.IsMore()) { - SdrObject* pListObj; - SdrObjListIter aIter(pSdrObjList, SdrIterMode::DeepWithGroups); - while (aIter.IsMore()) - { - pListObj = aIter.Next(); - pListObj->MakeNameUnique(aNameSet); - } + pListObj = aIter.Next(); + pListObj->MakeNameUnique(aNameSet); } } } diff --git a/svx/source/svdraw/svdpagv.cxx b/svx/source/svdraw/svdpagv.cxx index ab82cf2e3301..86210865e72c 100644 --- a/svx/source/svdraw/svdpagv.cxx +++ b/svx/source/svdraw/svdpagv.cxx @@ -606,11 +606,10 @@ bool SdrPageView::IsObjMarkable(SdrObject const * pObj) const if (pObjList && pObjList->GetObjCount()) { - for (size_t a = 0; a < pObjList->GetObjCount(); ++a) + for (const rtl::Reference<SdrObject>& pCandidate : *pObjList) { - SdrObject* pCandidate = pObjList->GetObj(a); // call recursively - if (IsObjMarkable(pCandidate)) + if (IsObjMarkable(pCandidate.get())) return true; } return false; diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx index da468968ee81..436b2998e810 100644 --- a/svx/source/svdraw/svdpntv.cxx +++ b/svx/source/svdraw/svdpntv.cxx @@ -808,12 +808,10 @@ void SdrPaintView::GlueInvalidate() const if(mpPageView) { const SdrObjList* pOL=mpPageView->GetObjList(); - const size_t nObjCount = pOL->GetObjCount(); - for (size_t nObjNum=0; nObjNum<nObjCount; ++nObjNum) { - const SdrObject* pObj=pOL->GetObj(nObjNum); + for (const rtl::Reference<SdrObject>& pObj : *pOL) { const SdrGluePointList* pGPL=pObj->GetGluePointList(); if (pGPL!=nullptr && pGPL->GetCount()!=0) { - pGPL->Invalidate(*rOutDev.GetOwnerWindow(), pObj); + pGPL->Invalidate(*rOutDev.GetOwnerWindow(), pObj.get()); } } } diff --git a/svx/source/svdraw/svdundo.cxx b/svx/source/svdraw/svdundo.cxx index 3788f8d7154c..51e6268d9fbc 100644 --- a/svx/source/svdraw/svdundo.cxx +++ b/svx/source/svdraw/svdundo.cxx @@ -263,12 +263,11 @@ SdrUndoAttrObj::SdrUndoAttrObj(SdrObject& rNewObj, bool bStyleSheet1, bool bSave { // it's a group object! pUndoGroup.reset(new SdrUndoGroup(mxObj->getSdrModelFromSdrObject())); - const size_t nObjCount(pOL->GetObjCount()); - for(size_t nObjNum = 0; nObjNum < nObjCount; ++nObjNum) + for (const rtl::Reference<SdrObject>& pObj : *pOL) { pUndoGroup->AddAction( - std::make_unique<SdrUndoAttrObj>(*pOL->GetObj(nObjNum), bStyleSheet1)); + std::make_unique<SdrUndoAttrObj>(*pObj, bStyleSheet1)); } } @@ -566,10 +565,8 @@ SdrUndoGeoObj::SdrUndoGeoObj(SdrObject& rNewObj) // If this were 3D scene, we'd only add an Undo for the scene itself // (which we do elsewhere). pUndoGroup.reset(new SdrUndoGroup(mxObj->getSdrModelFromSdrObject())); - const size_t nObjCount = pOL->GetObjCount(); - for (size_t nObjNum = 0; nObjNum<nObjCount; ++nObjNum) { - pUndoGroup->AddAction(std::make_unique<SdrUndoGeoObj>(*pOL->GetObj(nObjNum))); - } + for (const rtl::Reference<SdrObject>& pObj : *pOL) + pUndoGroup->AddAction(std::make_unique<SdrUndoGeoObj>(*pObj)); } else {