From 81b5ecc5a68cd15497301e6b10b462673f93655f Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Wed, 15 Aug 2012 11:30:54 +0200 Subject: Convert aLayer field in SdrLayerAdmin class from Container to std::vector Change-Id: I884f8e76d0bc7b2eb9f99434809fa824409446e4 --- svx/source/svdraw/svdlayer.cxx | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) (limited to 'svx/source') diff --git a/svx/source/svdraw/svdlayer.cxx b/svx/source/svdraw/svdlayer.cxx index f946fc01a90e..4b0282231f31 100644 --- a/svx/source/svdraw/svdlayer.cxx +++ b/svx/source/svdraw/svdlayer.cxx @@ -159,7 +159,7 @@ bool SdrLayer::operator==(const SdrLayer& rCmpLayer) const //////////////////////////////////////////////////////////////////////////////////////////////////// SdrLayerAdmin::SdrLayerAdmin(SdrLayerAdmin* pNewParent): - aLayer(1024,16,16), + aLayer(), aLSets(1024,16,16), pModel(NULL) { @@ -168,7 +168,7 @@ SdrLayerAdmin::SdrLayerAdmin(SdrLayerAdmin* pNewParent): } SdrLayerAdmin::SdrLayerAdmin(const SdrLayerAdmin& rSrcLayerAdmin): - aLayer(1024,16,16), + aLayer(), aLSets(1024,16,16), pParent(NULL), pModel(NULL) @@ -184,13 +184,9 @@ SdrLayerAdmin::~SdrLayerAdmin() void SdrLayerAdmin::ClearLayer() { - SdrLayer* pL; - pL=(SdrLayer*)aLayer.First(); - while (pL!=NULL) { - delete pL; - pL=(SdrLayer*)aLayer.Next(); - } - aLayer.Clear(); + for( std::vector::const_iterator it = aLayer.begin(); it != aLayer.end(); ++it ) + delete *it; + aLayer.clear(); } const SdrLayerAdmin& SdrLayerAdmin::operator=(const SdrLayerAdmin& rSrcLayerAdmin) @@ -200,7 +196,7 @@ const SdrLayerAdmin& SdrLayerAdmin::operator=(const SdrLayerAdmin& rSrcLayerAdmi sal_uInt16 i; sal_uInt16 nAnz=rSrcLayerAdmin.GetLayerCount(); for (i=0; iSetModel(pModel); - aLayer.Insert(pLay,nPos); + if(nPos==0xFFFF) + aLayer.push_back(pLay); + else + aLayer.insert(aLayer.begin() + nPos, pLay); Broadcast(); return pLay; } @@ -264,7 +264,10 @@ SdrLayer* SdrLayerAdmin::NewStandardLayer(sal_uInt16 nPos) SdrLayer* pLay=new SdrLayer(nID,String()); pLay->SetStandardLayer(); pLay->SetModel(pModel); - aLayer.Insert(pLay,nPos); + if(nPos==0xFFFF) + aLayer.push_back(pLay); + else + aLayer.insert(aLayer.begin() + nPos, pLay); Broadcast(); return pLay; } @@ -273,9 +276,11 @@ sal_uInt16 SdrLayerAdmin::GetLayerPos(SdrLayer* pLayer) const { sal_uIntPtr nRet=SDRLAYER_NOTFOUND; if (pLayer!=NULL) { - nRet=aLayer.GetPos(pLayer); - if (nRet==CONTAINER_ENTRY_NOTFOUND) { + std::vector::const_iterator it = std::find(aLayer.begin(), aLayer.end(), pLayer); + if (it==aLayer.end()) { nRet=SDRLAYER_NOTFOUND; + } else { + nRet=it - aLayer.begin(); } } return sal_uInt16(nRet); -- cgit