summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2023-10-18 12:28:12 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2023-10-18 20:08:21 +0200
commitbaa67b2d7037bc5e289a144a81014f1fb42e68ed (patch)
treed0334d4a2257c6680662fdc4064289fdea8720d7
parentca58f649196ed6b4ce15d0db3935f7de4cb0f2ea (diff)
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.grandin@collabora.co.uk>
-rw-r--r--include/svx/svdpage.hxx2
-rw-r--r--svx/source/dialog/connctrl.cxx11
-rw-r--r--svx/source/engine3d/scene3d.cxx29
-rw-r--r--svx/source/engine3d/view3d.cxx17
-rw-r--r--svx/source/engine3d/view3d1.cxx4
-rw-r--r--svx/source/form/fmview.cxx5
-rw-r--r--svx/source/form/navigatortreemodel.cxx5
-rw-r--r--svx/source/sdr/contact/objectcontactofpageview.cxx4
-rw-r--r--svx/source/sdr/properties/e3dsceneproperties.cxx86
-rw-r--r--svx/source/sdr/properties/groupproperties.cxx88
-rw-r--r--svx/source/svdraw/sdrpagewindow.cxx6
-rw-r--r--svx/source/svdraw/svdmark.cxx15
-rw-r--r--svx/source/svdraw/svdmrkv.cxx21
-rw-r--r--svx/source/svdraw/svdobj.cxx12
-rw-r--r--svx/source/svdraw/svdogrp.cxx97
-rw-r--r--svx/source/svdraw/svdotext.cxx11
-rw-r--r--svx/source/svdraw/svdpage.cxx56
-rw-r--r--svx/source/svdraw/svdpagv.cxx5
-rw-r--r--svx/source/svdraw/svdpntv.cxx6
-rw-r--r--svx/source/svdraw/svdundo.cxx11
20 files changed, 180 insertions, 311 deletions
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
{