diff options
author | Armin Le Grand <Armin.Le.Grand@cib.de> | 2018-04-11 19:22:52 +0200 |
---|---|---|
committer | Armin Le Grand <Armin.Le.Grand@cib.de> | 2018-04-16 21:21:37 +0200 |
commit | fda4b0f65eb23b597612113686a927a90f11a0f0 (patch) | |
tree | b39c1b8abb7a6d50eee862ad01f7f999e554421f /svx | |
parent | 6703b806a7d33f27bdec53d5c897beac94308fd9 (diff) |
Take care of E3DObjList
E3DObjList is not needed, remove. Remove memeber from
E3DObject, derive E3DScene directly from SdrObjList, some
cleanups in SdrObject, too
Change-Id: Ifa4620a800c14faf21f8b80fd4dc1d39f71be804
Reviewed-on: https://gerrit.libreoffice.org/52740
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/inc/sdr/properties/e3dproperties.hxx | 3 | ||||
-rw-r--r-- | svx/source/engine3d/obj3d.cxx | 301 | ||||
-rw-r--r-- | svx/source/engine3d/scene3d.cxx | 253 | ||||
-rw-r--r-- | svx/source/engine3d/view3d.cxx | 2 | ||||
-rw-r--r-- | svx/source/sdr/contact/viewcontactofsdrobj.cxx | 2 | ||||
-rw-r--r-- | svx/source/sdr/properties/e3dproperties.cxx | 15 | ||||
-rw-r--r-- | svx/source/sdr/properties/e3dsceneproperties.cxx | 30 | ||||
-rw-r--r-- | svx/source/sdr/properties/groupproperties.cxx | 35 | ||||
-rw-r--r-- | svx/source/svdraw/svdedtv.cxx | 6 | ||||
-rw-r--r-- | svx/source/svdraw/svdedtv2.cxx | 32 | ||||
-rw-r--r-- | svx/source/svdraw/svdedxv.cxx | 6 | ||||
-rw-r--r-- | svx/source/svdraw/svdmark.cxx | 8 | ||||
-rw-r--r-- | svx/source/svdraw/svdmrkv.cxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svdobj.cxx | 45 | ||||
-rw-r--r-- | svx/source/svdraw/svdogrp.cxx | 4 | ||||
-rw-r--r-- | svx/source/svdraw/svdpage.cxx | 62 | ||||
-rw-r--r-- | svx/source/svdraw/svdpagv.cxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svdundo.cxx | 8 | ||||
-rw-r--r-- | svx/source/svdraw/svdview.cxx | 4 | ||||
-rw-r--r-- | svx/source/unodraw/unoshap2.cxx | 6 | ||||
-rw-r--r-- | svx/source/unodraw/unoshap3.cxx | 4 | ||||
-rw-r--r-- | svx/source/unodraw/unoshape.cxx | 6 |
22 files changed, 401 insertions, 435 deletions
diff --git a/svx/inc/sdr/properties/e3dproperties.hxx b/svx/inc/sdr/properties/e3dproperties.hxx index 8b90440a9c5a..2a6eb0e9e4cc 100644 --- a/svx/inc/sdr/properties/e3dproperties.hxx +++ b/svx/inc/sdr/properties/e3dproperties.hxx @@ -48,9 +48,6 @@ namespace sdr // Clone() operator, normally just calls the local copy constructor virtual std::unique_ptr<BaseProperties> Clone(SdrObject& rObj) const override; - - // set a new StyleSheet and broadcast - virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; }; } // end of namespace properties } // end of namespace sdr diff --git a/svx/source/engine3d/obj3d.cxx b/svx/source/engine3d/obj3d.cxx index 959ecf1f0c49..93cad1bbe6c7 100644 --- a/svx/source/engine3d/obj3d.cxx +++ b/svx/source/engine3d/obj3d.cxx @@ -76,102 +76,15 @@ #include <svx/sdr/contact/viewcontactofe3dscene.hxx> #include <svx/e3dsceneupdater.hxx> - using namespace com::sun::star; - -// List for 3D-Objects -E3dObjList::E3dObjList() -: SdrObjList(nullptr) -{ -} - -E3dObjList* E3dObjList::CloneSdrObjList(SdrModel* pNewModel) const -{ - E3dObjList* pObjList = new E3dObjList(); - pObjList->lateInitSdrObjList(*this, pNewModel); - return pObjList; -} - -E3dObjList::~E3dObjList() -{ -} - -void E3dObjList::NbcInsertObject(SdrObject* pObj, size_t nPos) -{ - // Get owner - DBG_ASSERT(dynamic_cast<const E3dObject*>(GetOwnerObj()), "Insert 3D object in parent != 3DObject"); - - // Is it even a 3D object? - if(pObj && dynamic_cast<const E3dObject*>(pObj)) - { - // Normal 3D object, insert means - // call parent - SdrObjList::NbcInsertObject(pObj, nPos); - } - else - { - // No 3D object, inserted a page in place in a scene ... - GetOwnerObj()->GetPage()->InsertObject(pObj, nPos); - } -} - -void E3dObjList::InsertObject(SdrObject* pObj, size_t nPos) -{ - OSL_ENSURE(dynamic_cast<const E3dObject*>(GetOwnerObj()), "Insert 3D object in non-3D Parent"); - - // call parent - SdrObjList::InsertObject(pObj, nPos); - - E3dScene* pScene = static_cast<E3dObject*>(GetOwnerObj())->GetScene(); - if(pScene) - { - pScene->Cleanup3DDepthMapper(); - } -} - -SdrObject* E3dObjList::NbcRemoveObject(size_t nObjNum) -{ - DBG_ASSERT(dynamic_cast<const E3dObject*>(GetOwnerObj()), "Remove 3D object from Parent != 3DObject"); - - // call parent - SdrObject* pRetval = SdrObjList::NbcRemoveObject(nObjNum); - - E3dScene* pScene = static_cast<E3dObject*>(GetOwnerObj())->GetScene(); - if(pScene) - { - pScene->Cleanup3DDepthMapper(); - } - - return pRetval; -} - -SdrObject* E3dObjList::RemoveObject(size_t nObjNum) -{ - OSL_ENSURE(dynamic_cast<const E3dObject*>(GetOwnerObj()), "3D object is removed from non-3D Parent"); - - // call parent - SdrObject* pRetval = SdrObjList::RemoveObject(nObjNum); - - E3dScene* pScene = static_cast<E3dObject*>(GetOwnerObj())->GetScene(); - if(pScene) - { - pScene->Cleanup3DDepthMapper(); - } - - return pRetval; -} - - sdr::properties::BaseProperties* E3dObject::CreateObjectSpecificProperties() { return new sdr::properties::E3dProperties(*this); } - E3dObject::E3dObject(SdrModel& rSdrModel) : SdrAttrObj(rSdrModel), - maSubList(), maLocalBoundVol(), maTransformation(), maFullTransform(), @@ -179,8 +92,6 @@ E3dObject::E3dObject(SdrModel& rSdrModel) mbIsSelected(false) { bIs3DObj = true; - maSubList.SetOwnerObj(this); - maSubList.SetListKind(SdrObjListKind::GroupObj); bClosedObj = true; } @@ -194,20 +105,9 @@ void E3dObject::SetSelected(bool bNew) { mbIsSelected = bNew; } - - for(size_t a = 0; a < maSubList.GetObjCount(); ++a) - { - E3dObject* pCandidate = dynamic_cast< E3dObject* >(maSubList.GetObj(a)); - - if(pCandidate) - { - pCandidate->SetSelected(bNew); - } - } } // Break, default implementations - bool E3dObject::IsBreakObjPossible() { return false; @@ -218,24 +118,6 @@ SdrAttrObj* E3dObject::GetBreakObj() return nullptr; } -// SetRectsDirty must be done through the local SdrSubList - -void E3dObject::SetRectsDirty(bool bNotMyself) -{ - // call parent - SdrAttrObj::SetRectsDirty(bNotMyself); - - for(size_t a = 0; a < maSubList.GetObjCount(); ++a) - { - E3dObject* pCandidate = dynamic_cast< E3dObject* >(maSubList.GetObj(a)); - - if(pCandidate) - { - pCandidate->SetRectsDirty(bNotMyself); - } - } -} - SdrInventor E3dObject::GetObjInventor() const { return SdrInventor::E3d; @@ -247,7 +129,6 @@ sal_uInt16 E3dObject::GetObjIdentifier() const } // Determine the capabilities of the object - void E3dObject::TakeObjInfo(SdrObjTransformInfoRec& rInfo) const { rInfo.bResizeFreeAllowed = true; @@ -275,35 +156,6 @@ void E3dObject::TakeObjInfo(SdrObjTransformInfoRec& rInfo) const rInfo.bCanConvToPolyLineToArea = false; } -void E3dObject::NbcSetLayer(SdrLayerID nLayer) -{ - SdrAttrObj::NbcSetLayer(nLayer); - - for(size_t a = 0; a < maSubList.GetObjCount(); ++a) - { - E3dObject* pCandidate = dynamic_cast< E3dObject* >(maSubList.GetObj(a)); - - if(pCandidate) - { - pCandidate->NbcSetLayer(nLayer); - } - } -} - -// Set ObjList also on SubList - -void E3dObject::SetObjList(SdrObjList* pNewObjList) -{ - SdrObject::SetObjList(pNewObjList); - maSubList.SetUpList(pNewObjList); -} - -void E3dObject::SetPage(SdrPage* pNewPage) -{ - SdrAttrObj::SetPage(pNewPage); - maSubList.SetPage(pNewPage); -} - // resize object, used from old 2d interfaces, e.g. in Move/Scale dialog (F4) void E3dObject::NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact) { @@ -354,9 +206,7 @@ void E3dObject::NbcResize(const Point& rRef, const Fraction& xFact, const Fracti SetTransform(aObjTrans); } - // Move object in 2D is needed when using cursor keys - void E3dObject::NbcMove(const Size& rSize) { // Movement in X, Y in the eye coordinate system @@ -407,31 +257,13 @@ void E3dObject::NbcMove(const Size& rSize) SetTransform(aTranslate * GetTransform()); } -// Return the sublist, but only if it contains objects! - -SdrObjList* E3dObject::GetSubList() const -{ - return &const_cast< E3dObjList& >(maSubList); -} - void E3dObject::RecalcSnapRect() { maSnapRect = tools::Rectangle(); - - for(size_t a = 0; a < maSubList.GetObjCount(); ++a) - { - E3dObject* pCandidate = dynamic_cast< E3dObject* >(maSubList.GetObj(a)); - - if(pCandidate) - { - maSnapRect.Union(pCandidate->GetSnapRect()); - } - } } // Inform the parent about insertion of a 3D object, so that the parent is able // treat the particular objects in a special way (eg Light / Label in E3dScene) - void E3dObject::NewObjectInserted(const E3dObject* p3DObj) { if(GetParentObj()) @@ -440,7 +272,6 @@ void E3dObject::NewObjectInserted(const E3dObject* p3DObj) // Inform parent of changes in the structure (eg by transformation), in this // process the object in which the change has occurred is returned. - void E3dObject::StructureChanged() { if ( GetParentObj() ) @@ -450,90 +281,46 @@ void E3dObject::StructureChanged() } } -void E3dObject::Insert3DObj(E3dObject* p3DObj) -{ - DBG_ASSERT(p3DObj, "Insert3DObj with NULL-pointer!"); - SdrPage* pPg = pPage; - maSubList.InsertObject(p3DObj); - pPage = pPg; - InvalidateBoundVolume(); - NewObjectInserted(p3DObj); - StructureChanged(); -} - -void E3dObject::Remove3DObj(E3dObject const * p3DObj) +E3dObject* E3dObject::GetParentObj() const { - DBG_ASSERT(p3DObj, "Remove3DObj with NULL-pointer!"); + E3dObject* pRetval = nullptr; - if(p3DObj->GetParentObj() == this) + if(getParentOfSdrObject() && getParentOfSdrObject()->GetOwnerObj()) { - SdrPage* pPg = pPage; - maSubList.RemoveObject(p3DObj->GetOrdNum()); - pPage = pPg; - - InvalidateBoundVolume(); - StructureChanged(); + pRetval = dynamic_cast<E3dObject*>(getParentOfSdrObject()->GetOwnerObj()); } -} -E3dObject* E3dObject::GetParentObj() const -{ - E3dObject* pRetval = nullptr; - - if(GetObjList() - && GetObjList()->GetOwnerObj() - && dynamic_cast<const E3dObject*>(GetObjList()->GetOwnerObj())) - pRetval = static_cast<E3dObject*>(GetObjList()->GetOwnerObj()); return pRetval; } // Determine the top-level scene object - E3dScene* E3dObject::GetScene() const { if(GetParentObj()) + { return GetParentObj()->GetScene(); + } + return nullptr; } // Calculate enclosed volume, including all child objects - basegfx::B3DRange E3dObject::RecalcBoundVolume() const { basegfx::B3DRange aRetval; - const size_t nObjCnt(maSubList.GetObjCount()); + const sdr::contact::ViewContactOfE3d* pVCOfE3D = dynamic_cast< const sdr::contact::ViewContactOfE3d* >(&GetViewContact()); - if(nObjCnt) + if(pVCOfE3D) { - for(size_t a = 0; a < nObjCnt; ++a) - { - const E3dObject* p3DObject = dynamic_cast< const E3dObject* >(maSubList.GetObj(a)); - - if(p3DObject) - { - basegfx::B3DRange aLocalRange(p3DObject->GetBoundVolume()); - aLocalRange.transform(p3DObject->GetTransform()); - aRetval.expand(aLocalRange); - } - } - } - else - { - // single 3D object - const sdr::contact::ViewContactOfE3d* pVCOfE3D = dynamic_cast< const sdr::contact::ViewContactOfE3d* >(&GetViewContact()); + // BoundVolume is without 3D object transformation, use correct sequence + const drawinglayer::primitive3d::Primitive3DContainer xLocalSequence(pVCOfE3D->getVIP3DSWithoutObjectTransform()); - if(pVCOfE3D) + if(!xLocalSequence.empty()) { - // BoundVolume is without 3D object transformation, use correct sequence - const drawinglayer::primitive3d::Primitive3DContainer xLocalSequence(pVCOfE3D->getVIP3DSWithoutObjectTransform()); + const uno::Sequence< beans::PropertyValue > aEmptyParameters; + const drawinglayer::geometry::ViewInformation3D aLocalViewInformation3D(aEmptyParameters); - if(!xLocalSequence.empty()) - { - const uno::Sequence< beans::PropertyValue > aEmptyParameters; - const drawinglayer::geometry::ViewInformation3D aLocalViewInformation3D(aEmptyParameters); - - aRetval = xLocalSequence.getB3DRange(aLocalViewInformation3D); - } + aRetval = xLocalSequence.getB3DRange(aLocalViewInformation3D); } } @@ -541,7 +328,6 @@ basegfx::B3DRange E3dObject::RecalcBoundVolume() const } // Get enclosed volume and possibly recalculate it - const basegfx::B3DRange& E3dObject::GetBoundVolume() const { if(maLocalBoundVol.isEmpty()) @@ -558,26 +344,14 @@ void E3dObject::InvalidateBoundVolume() } // Pass on the changes in transformation to all child objects - void E3dObject::SetTransformChanged() { InvalidateBoundVolume(); mbTfHasChanged = true; - - for(size_t a = 0; a < maSubList.GetObjCount(); ++a) - { - E3dObject* pCandidate = dynamic_cast< E3dObject* >(maSubList.GetObj(a)); - - if(pCandidate) - { - pCandidate->SetTransformChanged(); - } - } } // Define the hierarchical transformation over all Parents, store in // maFullTransform and return them - const basegfx::B3DHomMatrix& E3dObject::GetFullTransform() const { if(mbTfHasChanged) @@ -596,7 +370,6 @@ const basegfx::B3DHomMatrix& E3dObject::GetFullTransform() const return maFullTransform; } - void E3dObject::NbcSetTransform(const basegfx::B3DHomMatrix& rMatrix) { if(maTransformation != rMatrix) @@ -608,7 +381,6 @@ void E3dObject::NbcSetTransform(const basegfx::B3DHomMatrix& rMatrix) } // Set transformation matrix with repaint broadcast - void E3dObject::SetTransform(const basegfx::B3DHomMatrix& rMatrix) { if(rMatrix != maTransformation) @@ -627,7 +399,6 @@ basegfx::B3DPolyPolygon E3dObject::CreateWireframe() const } // Get the name of the object (singular) - OUString E3dObject::TakeObjNameSingul() const { OUStringBuffer sName(ImpGetResStr(STR_ObjNameSingulObj3d)); @@ -644,7 +415,6 @@ OUString E3dObject::TakeObjNameSingul() const } // Get the name of the object (plural) - OUString E3dObject::TakeObjNamePlural() const { return ImpGetResStr(STR_ObjNamePluralObj3d); @@ -655,27 +425,25 @@ E3dObject* E3dObject::Clone(SdrModel* pTargetModel) const return CloneHelper< E3dObject >(pTargetModel); } -E3dObject& E3dObject::operator=(const E3dObject& rObj) +E3dObject& E3dObject::operator=(const E3dObject& rSource) { - if( this == &rObj ) - return *this; - SdrObject::operator=(rObj); - - if (rObj.GetSubList()) + if(this != &rSource) { - maSubList.CopyObjects(*rObj.GetSubList()); - } + // call parent + SdrAttrObj::operator=(rSource); - // BoundVol can be copied since also the children are copied - maLocalBoundVol = rObj.maLocalBoundVol; - maTransformation = rObj.maTransformation; + // BoundVol can be copied since also the children are copied + maLocalBoundVol = rSource.maLocalBoundVol; + maTransformation = rSource.maTransformation; - // Because the parent may have changed, definitely redefine the total - // transformation next time - SetTransformChanged(); + // Because the parent may have changed, definitely redefine the total + // transformation next time + SetTransformChanged(); + + // Copy selection status + mbIsSelected = rSource.mbIsSelected; + } - // Copy selection status - mbIsSelected = rObj.mbIsSelected; return *this; } @@ -704,14 +472,12 @@ void E3dObject::RestGeoData(const SdrObjGeoData& rGeo) // This is however a correct implementation, because everything that has // happened is a rotation around the axis perpendicular to the screen and that // is regardless of how the scene has been rotated up until now. - void E3dObject::NbcRotate(const Point& rRef, long nAngle, double sn, double cs) { // So currently the glue points are defined relative to the scene aOutRect. // Before turning the glue points are defined relative to the page. They // take no part in the rotation of the scene. To ensure this, there is the // SetGlueReallyAbsolute(sal_True); - double fAngleInRad = nAngle/100.0 * F_PI180; basegfx::B3DHomMatrix aRotateZ; @@ -891,7 +657,6 @@ E3dCompoundObject& E3dCompoundObject::operator=(const E3dCompoundObject& rObj) } // convert given basegfx::B3DPolyPolygon to screen coor - basegfx::B2DPolyPolygon E3dCompoundObject::TransformToScreenCoor(const basegfx::B3DPolyPolygon& rCandidate) { const uno::Sequence< beans::PropertyValue > aEmptyParameters; @@ -912,11 +677,11 @@ basegfx::B2DPolyPolygon E3dCompoundObject::TransformToScreenCoor(const basegfx:: bool E3dCompoundObject::IsAOrdNumRemapCandidate(E3dScene*& prScene) const { - if(GetObjList() - && GetObjList()->GetOwnerObj() - && dynamic_cast<const E3dObject*>(GetObjList()->GetOwnerObj())) + if(getParentOfSdrObject() + && getParentOfSdrObject()->GetOwnerObj() + && dynamic_cast<const E3dObject*>(getParentOfSdrObject()->GetOwnerObj())) { - prScene = static_cast<E3dScene*>(GetObjList()->GetOwnerObj()); + prScene = static_cast<E3dScene*>(getParentOfSdrObject()->GetOwnerObj()); return true; } diff --git a/svx/source/engine3d/scene3d.cxx b/svx/source/engine3d/scene3d.cxx index 38961d3ccfa8..2ff169357836 100644 --- a/svx/source/engine3d/scene3d.cxx +++ b/svx/source/engine3d/scene3d.cxx @@ -172,11 +172,15 @@ sdr::contact::ViewContact* E3dScene::CreateObjectSpecificViewContact() E3dScene::E3dScene(SdrModel& rSdrModel) : E3dObject(rSdrModel), + SdrObjList(), aCamera(basegfx::B3DPoint(0.0, 0.0, 4.0), basegfx::B3DPoint()), mp3DDepthRemapper(nullptr), bDrawOnlySelected(false), mbSkipSettingDirty(false) { + SetOwnerObj(this); + SetListKind(SdrObjListKind::GroupObj); + // Set defaults SetDefaultAttributes(); } @@ -367,9 +371,9 @@ void E3dScene::removeAllNonSelectedObjects() { E3DModifySceneSnapRectUpdater aUpdater(this); - for(size_t a = 0; a < maSubList.GetObjCount(); ++a) + for(size_t a = 0; a < GetObjCount(); ++a) { - SdrObject* pObj = maSubList.GetObj(a); + SdrObject* pObj = GetObj(a); if(pObj) { @@ -403,7 +407,7 @@ void E3dScene::removeAllNonSelectedObjects() if(bRemoveObject) { - maSubList.NbcRemoveObject(pObj->GetOrdNum()); + NbcRemoveObject(pObj->GetOrdNum()); a--; SdrObject::Free(pObj); } @@ -416,35 +420,28 @@ E3dScene* E3dScene::Clone(SdrModel* pTargetModel) const return CloneHelper< E3dScene >(pTargetModel); } -E3dScene& E3dScene::operator=(const E3dScene& rObj) +E3dScene& E3dScene::operator=(const E3dScene& rSource) { - if( this == &rObj ) - return *this; - E3dObject::operator=(rObj); - - aCamera = rObj.aCamera; - - aCameraSet = rObj.aCameraSet; - static_cast<sdr::properties::E3dSceneProperties&>(GetProperties()).SetSceneItemsFromCamera(); + if(this != &rSource) + { + // call parent + E3dObject::operator=(rSource); - InvalidateBoundVolume(); - RebuildLists(); - SetRectsDirty(); + // copy local data + if (rSource.GetSubList()) + { + CopyObjects(*rSource.GetSubList()); + } - ImpCleanup3DDepthMapper(); + aCamera = rSource.aCamera; + aCameraSet = rSource.aCameraSet; + static_cast<sdr::properties::E3dSceneProperties&>(GetProperties()).SetSceneItemsFromCamera(); + InvalidateBoundVolume(); + RebuildLists(); + ImpCleanup3DDepthMapper(); + GetViewContact().ActionChanged(); + } - // #i101941# - // After a Scene as model object is cloned, the used - // ViewContactOfE3dScene is created and partially used - // to calculate Bound/SnapRects, but - since quite some - // values are buffered at the VC - not really well - // initialized. It would be possible to always watch for - // preconditions of buffered data, but this would be expensive - // and would create a lot of short living data structures. - // It is currently better to flush that data, e.g. by using - // ActionChanged at the VC which will for this class - // flush that cached data and initialize its valid reconstruction - GetViewContact().ActionChanged(); return *this; } @@ -470,7 +467,7 @@ void E3dScene::RebuildLists() // first delete SdrLayerID nCurrLayerID = GetLayer(); - SdrObjListIter a3DIterator(maSubList, SdrIterMode::Flat); + SdrObjListIter a3DIterator(static_cast< SdrObjList& >(*this), SdrIterMode::Flat); // then examine all the objects in the scene while ( a3DIterator.IsMore() ) @@ -640,14 +637,25 @@ void E3dScene::RecalcSnapRect() { // The Scene itself is a member of another scene, get the SnapRect // as a composite object + // call parent E3dObject::RecalcSnapRect(); + + for(size_t a = 0; a < GetObjCount(); ++a) + { + E3dObject* pCandidate(dynamic_cast< E3dObject* >(GetObj(a))); + + if(pCandidate) + { + maSnapRect.Union(pCandidate->GetSnapRect()); + } + } } } bool E3dScene::IsBreakObjPossible() { // Break scene, if all members are able to break - SdrObjListIter a3DIterator(maSubList, SdrIterMode::DeepWithGroups); + SdrObjListIter a3DIterator(static_cast< SdrObjList& >(*this), SdrIterMode::DeepWithGroups); while ( a3DIterator.IsMore() ) { @@ -706,4 +714,189 @@ void E3dScene::BrkCreate(SdrDragStat& /*rStat*/) { } +void E3dScene::SetSelected(bool bNew) +{ + // call parent + E3dObject::SetSelected(bNew); + + for(size_t a(0); a < GetObjCount(); a++) + { + E3dObject* pCandidate(dynamic_cast< E3dObject* >(GetObj(a))); + + if(pCandidate) + { + pCandidate->SetSelected(bNew); + } + } +} + +void E3dScene::NbcInsertObject(SdrObject* pObj, size_t nPos) +{ + // Get owner + DBG_ASSERT(dynamic_cast<const E3dObject*>(GetOwnerObj()), "Insert 3D object in parent != 3DObject"); + + // Is it even a 3D object? + if(pObj && nullptr != dynamic_cast< const E3dObject* >(pObj)) + { + // Normal 3D object, insert means + // call parent + SdrObjList::NbcInsertObject(pObj, nPos); + } + else + { + // No 3D object, inserted a page in place in a scene ... + GetOwnerObj()->GetPage()->InsertObject(pObj, nPos); + } +} + +void E3dScene::InsertObject(SdrObject* pObj, size_t nPos) +{ + OSL_ENSURE(dynamic_cast<const E3dObject*>(GetOwnerObj()), "Insert 3D object in non-3D Parent"); + + // call parent + SdrObjList::InsertObject(pObj, nPos); + + Cleanup3DDepthMapper(); +} + +SdrObject* E3dScene::NbcRemoveObject(size_t nObjNum) +{ + DBG_ASSERT(dynamic_cast<const E3dObject*>(GetOwnerObj()), "Remove 3D object from Parent != 3DObject"); + + // call parent + SdrObject* pRetval = SdrObjList::NbcRemoveObject(nObjNum); + + Cleanup3DDepthMapper(); + + return pRetval; +} + +SdrObject* E3dScene::RemoveObject(size_t nObjNum) +{ + OSL_ENSURE(dynamic_cast<const E3dObject*>(GetOwnerObj()), "3D object is removed from non-3D Parent"); + + // call parent + SdrObject* pRetval = SdrObjList::RemoveObject(nObjNum); + + Cleanup3DDepthMapper(); + + return pRetval; +} + +void E3dScene::SetRectsDirty(bool bNotMyself) +{ + // call parent + E3dObject::SetRectsDirty(bNotMyself); + + for(size_t a = 0; a < GetObjCount(); ++a) + { + E3dObject* pCandidate = dynamic_cast< E3dObject* >(GetObj(a)); + + if(pCandidate) + { + pCandidate->SetRectsDirty(bNotMyself); + } + } +} + +void E3dScene::NbcSetLayer(SdrLayerID nLayer) +{ + // call parent + E3dObject::NbcSetLayer(nLayer); + + for(size_t a = 0; a < GetObjCount(); ++a) + { + E3dObject* pCandidate = dynamic_cast< E3dObject* >(GetObj(a)); + + if(pCandidate) + { + pCandidate->NbcSetLayer(nLayer); + } + } +} + +void E3dScene::setParentOfSdrObject(SdrObjList* pNewObjList) +{ + // call parent + E3dObject::setParentOfSdrObject(pNewObjList); + + SetUpList(pNewObjList); +} + +void E3dScene::SetPage(SdrPage* pNewPage) +{ + // call parent + E3dObject::SetPage(pNewPage); + + // set at SdrObjList + SdrObjList::SetPage(pNewPage); +} + +SdrObjList* E3dScene::GetSubList() const +{ + return const_cast< E3dScene* >(this); +} + +void E3dScene::Insert3DObj(E3dObject* p3DObj) +{ + DBG_ASSERT(p3DObj, "Insert3DObj with NULL-pointer!"); + SdrPage* pPg = pPage; + InsertObject(p3DObj); + pPage = pPg; + InvalidateBoundVolume(); + NewObjectInserted(p3DObj); + StructureChanged(); +} + +void E3dScene::Remove3DObj(E3dObject const * p3DObj) +{ + DBG_ASSERT(p3DObj, "Remove3DObj with NULL-pointer!"); + + if(p3DObj->GetParentObj() == this) + { + SdrPage* pPg = pPage; + RemoveObject(p3DObj->GetOrdNum()); + pPage = pPg; + + InvalidateBoundVolume(); + StructureChanged(); + } +} + +basegfx::B3DRange E3dScene::RecalcBoundVolume() const +{ + basegfx::B3DRange aRetval; + const size_t nObjCnt(GetObjCount()); + + for(size_t a = 0; a < nObjCnt; ++a) + { + const E3dObject* p3DObject = dynamic_cast< const E3dObject* >(GetObj(a)); + + if(p3DObject) + { + basegfx::B3DRange aLocalRange(p3DObject->GetBoundVolume()); + aLocalRange.transform(p3DObject->GetTransform()); + aRetval.expand(aLocalRange); + } + } + + return aRetval; +} + +void E3dScene::SetTransformChanged() +{ + // call parent + E3dObject::SetTransformChanged(); + + for(size_t a = 0; a < GetObjCount(); ++a) + { + E3dObject* pCandidate = dynamic_cast< E3dObject* >(GetObj(a)); + + if(pCandidate) + { + pCandidate->SetTransformChanged(); + } + } +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/engine3d/view3d.cxx b/svx/source/engine3d/view3d.cxx index 31d6c36bb44c..62724e184dd0 100644 --- a/svx/source/engine3d/view3d.cxx +++ b/svx/source/engine3d/view3d.cxx @@ -581,7 +581,7 @@ bool E3dView::ImpCloneAll3DObjectsToDestScene(E3dScene const * pSrcScene, E3dSce pNewCompoundObj->SetTransform(aModifyingTransform * aNewObjectTrans); // fill and insert new object - pNewCompoundObj->SetPage(pDstScene->GetPage()); + pNewCompoundObj->SetPage(pDstScene->E3dObject::GetPage()); pNewCompoundObj->NbcSetLayer(pCompoundObj->GetLayer()); pNewCompoundObj->NbcSetStyleSheet(pCompoundObj->GetStyleSheet(), true); pDstScene->Insert3DObj(pNewCompoundObj); diff --git a/svx/source/sdr/contact/viewcontactofsdrobj.cxx b/svx/source/sdr/contact/viewcontactofsdrobj.cxx index 14a7efed54c6..67ba3c507967 100644 --- a/svx/source/sdr/contact/viewcontactofsdrobj.cxx +++ b/svx/source/sdr/contact/viewcontactofsdrobj.cxx @@ -87,7 +87,7 @@ ViewContact& ViewContactOfSdrObj::GetViewContact(sal_uInt32 nIndex) const ViewContact* ViewContactOfSdrObj::GetParentContact() const { ViewContact* pRetval = nullptr; - SdrObjList* pObjList = GetSdrObject().GetObjList(); + SdrObjList* pObjList = GetSdrObject().getParentOfSdrObject(); if(pObjList) { diff --git a/svx/source/sdr/properties/e3dproperties.cxx b/svx/source/sdr/properties/e3dproperties.cxx index 8666191f0c54..a86421656d26 100644 --- a/svx/source/sdr/properties/e3dproperties.cxx +++ b/svx/source/sdr/properties/e3dproperties.cxx @@ -73,21 +73,6 @@ namespace sdr // local changes rObj.StructureChanged(); } - - void E3dProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) - { - // call parent - AttributeProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); - - // propagate call to contained objects - const SdrObjList* pSub = static_cast<const E3dObject&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); - - for(size_t a = 0; a < nCount; ++a) - { - pSub->GetObj(a)->GetProperties().SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); - } - } } // end of namespace properties } // end of namespace sdr diff --git a/svx/source/sdr/properties/e3dsceneproperties.cxx b/svx/source/sdr/properties/e3dsceneproperties.cxx index 52f1207ebd44..696e42b78f19 100644 --- a/svx/source/sdr/properties/e3dsceneproperties.cxx +++ b/svx/source/sdr/properties/e3dsceneproperties.cxx @@ -67,8 +67,9 @@ namespace sdr } // collect all ItemSets of contained 3d objects - const SdrObjList* pSub = static_cast<const E3dScene&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); + 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) { @@ -108,8 +109,9 @@ namespace sdr void E3dSceneProperties::SetMergedItemSet(const SfxItemSet& rSet, bool bClearAllItems) { // Set SDRATTR_3DOBJ_ range at contained objects. - const SdrObjList* pSub = static_cast<const E3dScene&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); + 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()); if(nCount) { @@ -144,8 +146,9 @@ namespace sdr void E3dSceneProperties::SetMergedItem(const SfxPoolItem& rItem) { - const SdrObjList* pSub = static_cast<const E3dScene&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); + 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) { @@ -158,8 +161,9 @@ namespace sdr void E3dSceneProperties::ClearMergedItem(const sal_uInt16 nWhich) { - const SdrObjList* pSub = static_cast<const E3dScene&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); + 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) { @@ -230,8 +234,9 @@ namespace sdr void E3dSceneProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) { - const SdrObjList* pSub = static_cast<const E3dScene&>(GetSdrObject()).GetSubList(); - const sal_uInt32 nCount(pSub->GetObjCount()); + 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) { @@ -243,8 +248,9 @@ namespace sdr { SfxStyleSheet* pRetval = nullptr; - const SdrObjList* pSub = static_cast<const E3dScene&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); + 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) { diff --git a/svx/source/sdr/properties/groupproperties.cxx b/svx/source/sdr/properties/groupproperties.cxx index 39130e8b5326..410e2c641f48 100644 --- a/svx/source/sdr/properties/groupproperties.cxx +++ b/svx/source/sdr/properties/groupproperties.cxx @@ -83,8 +83,9 @@ namespace sdr } // collect all ItemSets in mpItemSet - const SdrObjList* pSub = static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); + 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) { @@ -115,8 +116,9 @@ namespace sdr void GroupProperties::SetMergedItemSet(const SfxItemSet& rSet, bool bClearAllItems) { // iterate over contained SdrObjects - const SdrObjList* pSub = static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); + 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) { @@ -156,8 +158,9 @@ namespace sdr void GroupProperties::SetMergedItem(const SfxPoolItem& rItem) { - const SdrObjList* pSub = static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); + 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) { @@ -167,8 +170,9 @@ namespace sdr void GroupProperties::ClearMergedItem(const sal_uInt16 nWhich) { - const SdrObjList* pSub = static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); + 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) { @@ -206,8 +210,9 @@ namespace sdr { SfxStyleSheet* pRetval = nullptr; - const SdrObjList* pSub = static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); + 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) { @@ -232,8 +237,9 @@ namespace sdr void GroupProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) { - const SdrObjList* pSub = static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); + 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) { @@ -248,8 +254,9 @@ namespace sdr void GroupProperties::ForceStyleToHardAttributes() { - const SdrObjList* pSub = static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList(); - const size_t nCount(pSub->GetObjCount()); + 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) { diff --git a/svx/source/svdraw/svdedtv.cxx b/svx/source/svdraw/svdedtv.cxx index f90894df9902..f22c780640d0 100644 --- a/svx/source/svdraw/svdedtv.cxx +++ b/svx/source/svdraw/svdedtv.cxx @@ -719,7 +719,7 @@ std::vector<SdrObject*> SdrEditView::DeleteMarkedList(SdrMarkList const& rMark) --nm; SdrMark* pM = rMark.GetMark(nm); SdrObject* pObj = pM->GetMarkedSdrObj(); - SdrObjList* pOL = pObj->GetObjList(); + SdrObjList* pOL = pObj->getParentOfSdrObject(); const size_t nOrdNum(pObj->GetOrdNumDirect()); bool bIs3D = dynamic_cast< E3dObject* >(pObj); @@ -791,7 +791,7 @@ void SdrEditView::DeleteMarkedObj() // in the first run, add all found parents, but only once SdrMark* pMark = rMarkList.GetMark(a); SdrObject* pObject = pMark->GetMarkedSdrObj(); - SdrObject* pParent = pObject->GetObjList()->GetOwnerObj(); + SdrObject* pParent = pObject->getParentOfSdrObject()->GetOwnerObj(); if(pParent) { @@ -1003,7 +1003,7 @@ void SdrEditView::ReplaceObjectAtView(SdrObject* pOldObj, SdrPageView& rPV, SdrO pSdrView->SdrEndTextEdit(); } - SdrObjList* pOL=pOldObj->GetObjList(); + SdrObjList* pOL=pOldObj->getParentOfSdrObject(); const bool bUndo = IsUndoEnabled(); if( bUndo ) AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoReplaceObject(*pOldObj,*pNewObj)); diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx index ef63499a1eb8..a3ef121d777c 100644 --- a/svx/source/svdraw/svdedtv2.cxx +++ b/svx/source/svdraw/svdedtv2.cxx @@ -82,7 +82,7 @@ void SdrEditView::MovMarkedToTop() --nm; SdrMark* pM=GetSdrMarkByIndex(nm); SdrObject* pObj=pM->GetMarkedSdrObj(); - SdrObjList* pOL=pObj->GetObjList(); + SdrObjList* pOL=pObj->getParentOfSdrObject(); if (pOL!=pOL0) { nNewPos = pOL->GetObjCount()-1; @@ -169,7 +169,7 @@ void SdrEditView::MovMarkedToBtm() { SdrMark* pM=GetSdrMarkByIndex(nm); SdrObject* pObj=pM->GetMarkedSdrObj(); - SdrObjList* pOL=pObj->GetObjList(); + SdrObjList* pOL=pObj->getParentOfSdrObject(); if (pOL!=pOL0) { nNewPos=0; @@ -285,7 +285,7 @@ void SdrEditView::PutMarkedInFrontOfObj(const SdrObject* pRefObj) SdrObject* pObj=pM->GetMarkedSdrObj(); if (pObj!=pRefObj) { - SdrObjList* pOL=pObj->GetObjList(); + SdrObjList* pOL=pObj->getParentOfSdrObject(); if (pOL!=pOL0) { nNewPos=pOL->GetObjCount()-1; @@ -305,7 +305,7 @@ void SdrEditView::PutMarkedInFrontOfObj(const SdrObject* pRefObj) } if (pRefObj!=nullptr) { - if (pRefObj->GetObjList()==pObj->GetObjList()) + if (pRefObj->getParentOfSdrObject()==pObj->getParentOfSdrObject()) { const size_t nMaxOrd=pRefObj->GetOrdNum(); // sadly doesn't work any other way if (nNewPos>nMaxOrd) @@ -382,7 +382,7 @@ void SdrEditView::PutMarkedBehindObj(const SdrObject* pRefObj) SdrMark* pM=GetSdrMarkByIndex(nm); SdrObject* pObj=pM->GetMarkedSdrObj(); if (pObj!=pRefObj) { - SdrObjList* pOL=pObj->GetObjList(); + SdrObjList* pOL=pObj->getParentOfSdrObject(); if (pOL!=pOL0) { nNewPos=0; pOL0=pOL; @@ -395,7 +395,7 @@ void SdrEditView::PutMarkedBehindObj(const SdrObject* pRefObj) if (nNewPos>nNowPos) nNewPos=nNowPos; // nor go into the other direction } if (pRefObj!=nullptr) { - if (pRefObj->GetObjList()==pObj->GetObjList()) { + if (pRefObj->getParentOfSdrObject()==pObj->getParentOfSdrObject()) { const size_t nMinOrd=pRefObj->GetOrdNum(); // sadly doesn't work any differently if (nNewPos<nMinOrd) nNewPos=nMinOrd; // neither go faster... if (nNewPos>nNowPos) nNewPos=nNowPos; // nor go into the other direction @@ -482,7 +482,7 @@ void SdrEditView::ImpCheckToTopBtmPossible() if (nCount==1) { // special-casing for single selection SdrObject* pObj=GetMarkedObjectByIndex(0); - SdrObjList* pOL=pObj->GetObjList(); + SdrObjList* pOL=pObj->getParentOfSdrObject(); SAL_WARN_IF(!pOL, "svx", "Object somehow has no ObjList"); size_t nMax = pOL ? pOL->GetObjCount() : 0; size_t nMin = 0; @@ -504,7 +504,7 @@ void SdrEditView::ImpCheckToTopBtmPossible() size_t nPos0 = 0; for (size_t nm = 0; !bToBtmPossible && nm<nCount; ++nm) { // check 'send to background' SdrObject* pObj=GetMarkedObjectByIndex(nm); - SdrObjList* pOL=pObj->GetObjList(); + SdrObjList* pOL=pObj->getParentOfSdrObject(); if (pOL!=pOL0) { nPos0 = 0; pOL0=pOL; @@ -519,7 +519,7 @@ void SdrEditView::ImpCheckToTopBtmPossible() for (size_t nm=nCount; !bToTopPossible && nm>0; ) { // check 'bring to front' --nm; SdrObject* pObj=GetMarkedObjectByIndex(nm); - SdrObjList* pOL=pObj->GetObjList(); + SdrObjList* pOL=pObj->getParentOfSdrObject(); if (pOL!=pOL0) { nPos0=pOL->GetObjCount(); pOL0=pOL; @@ -1029,7 +1029,7 @@ void SdrEditView::MergeMarkedObjects(SdrMergeMode eMode) nInsPos = pObj->GetOrdNum() + 1; pInsPV = pM->GetPageView(); - pInsOL = pObj->GetObjList(); + pInsOL = pObj->getParentOfSdrObject(); // #i76891# use single iteration from SJ here which works on SdrObjects and takes // groups into account by itself @@ -1278,7 +1278,7 @@ void SdrEditView::CombineMarkedObjects(bool bNoPolyPoly) --a; SdrMark* pM = GetSdrMarkByIndex(a); SdrObject* pObj = pM->GetMarkedSdrObj(); - SdrObjList* pThisOL = pObj->GetObjList(); + SdrObjList* pThisOL = pObj->getParentOfSdrObject(); if(pCurrentOL != pThisOL) { @@ -1300,7 +1300,7 @@ void SdrEditView::CombineMarkedObjects(bool bNoPolyPoly) { nInsPos = pObj->GetOrdNum() + 1; pInsPV = pM->GetPageView(); - pInsOL = pObj->GetObjList(); + pInsOL = pObj->getParentOfSdrObject(); } aRemoveMerker.InsertEntry(SdrMark(pObj, pM->GetPageView())); @@ -1677,7 +1677,7 @@ void SdrEditView::DismantleMarkedObjects(bool bMakeLines) SdrMark* pM=GetSdrMarkByIndex(nm); SdrObject* pObj=pM->GetMarkedSdrObj(); SdrPageView* pPV=pM->GetPageView(); - SdrObjList* pOL=pObj->GetObjList(); + SdrObjList* pOL=pObj->getParentOfSdrObject(); if (pOL!=pOL0) { pOL0=pOL; pObj->GetOrdNum(); } // make sure OrdNums are correct! if (ImpCanDismantle(pObj,bMakeLines)) { aRemoveMerker.InsertEntry(SdrMark(pObj,pM->GetPageView())); @@ -1768,7 +1768,7 @@ void SdrEditView::GroupMarked() pDstLst=pGrp->GetSubList(); DBG_ASSERT(pDstLst!=nullptr,"Alleged group object doesn't return object list."); } - pSrcLst=pObj->GetObjList(); + pSrcLst=pObj->getParentOfSdrObject(); if (pSrcLst!=pSrcLst0) { if (pSrcLst->IsObjOrdNumsDirty()) @@ -1919,7 +1919,7 @@ SdrObject* SdrEditView::ImpConvertOneObj(SdrObject* pObj, bool bPath, bool bLine SdrObject* pNewObj = pObj->ConvertToPolyObj(bPath, bLineToArea); if (pNewObj!=nullptr) { - SdrObjList* pOL=pObj->GetObjList(); + SdrObjList* pOL=pObj->getParentOfSdrObject(); DBG_ASSERT(pOL!=nullptr,"ConvertTo: Object doesn't return object list"); if (pOL!=nullptr) { @@ -2037,7 +2037,7 @@ void SdrEditView::DoImportMarkedMtf(SvdProgressInfo *pProgrInfo) SdrMark* pM=GetSdrMarkByIndex(nm); SdrObject* pObj=pM->GetMarkedSdrObj(); SdrPageView* pPV=pM->GetPageView(); - SdrObjList* pOL=pObj->GetObjList(); + SdrObjList* pOL=pObj->getParentOfSdrObject(); const size_t nInsPos=pObj->GetOrdNum()+1; SdrGrafObj* pGraf= dynamic_cast<SdrGrafObj*>( pObj ); SdrOle2Obj* pOle2= dynamic_cast<SdrOle2Obj*>( pObj ); diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index d03a55fe4b11..5b41d59ca7d3 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -1518,10 +1518,10 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally) delete pDelUndo; } eRet=SdrEndTextEditKind::Deleted; - DBG_ASSERT(pTEObj->GetObjList()!=nullptr,"SdrObjEditView::SdrEndTextEdit(): Fatal: Object edited doesn't have an ObjList!"); - if (pTEObj->GetObjList()!=nullptr) + DBG_ASSERT(pTEObj->getParentOfSdrObject()!=nullptr,"SdrObjEditView::SdrEndTextEdit(): Fatal: Object edited doesn't have an ObjList!"); + if (pTEObj->getParentOfSdrObject()!=nullptr) { - pTEObj->GetObjList()->RemoveObject(pTEObj->GetOrdNum()); + pTEObj->getParentOfSdrObject()->RemoveObject(pTEObj->GetOrdNum()); CheckMarked(); // remove selection immediately... } } diff --git a/svx/source/svdraw/svdmark.cxx b/svx/source/svdraw/svdmark.cxx index 25ee096abe2d..c1bcf353d536 100644 --- a/svx/source/svdraw/svdmark.cxx +++ b/svx/source/svdraw/svdmark.cxx @@ -123,8 +123,8 @@ static bool ImpSdrMarkListSorter(SdrMark* const& lhs, SdrMark* const& rhs) { SdrObject* pObj1 = lhs->GetMarkedSdrObj(); SdrObject* pObj2 = rhs->GetMarkedSdrObj(); - SdrObjList* pOL1 = pObj1 ? pObj1->GetObjList() : nullptr; - SdrObjList* pOL2 = pObj2 ? pObj2->GetObjList() : nullptr; + SdrObjList* pOL1 = pObj1 ? pObj1->getParentOfSdrObject() : nullptr; + SdrObjList* pOL2 = pObj2 ? pObj2->getParentOfSdrObject() : nullptr; if (pOL1 == pOL2) { @@ -307,8 +307,8 @@ void SdrMarkList::InsertEntry(const SdrMark& rMark, bool bChkSort) maList.push_back(pCopy); // now check if the sort is ok - const SdrObjList* pLastOL = pLastObj!=nullptr ? pLastObj->GetObjList() : nullptr; - const SdrObjList* pNewOL = pNewObj !=nullptr ? pNewObj ->GetObjList() : nullptr; + const SdrObjList* pLastOL = pLastObj!=nullptr ? pLastObj->getParentOfSdrObject() : nullptr; + const SdrObjList* pNewOL = pNewObj !=nullptr ? pNewObj->getParentOfSdrObject() : nullptr; if(pLastOL == pNewOL) { diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx index 07a5b2876361..0bf87a21f6e7 100644 --- a/svx/source/svdraw/svdmrkv.cxx +++ b/svx/source/svdraw/svdmrkv.cxx @@ -1512,7 +1512,7 @@ bool SdrMarkView::MarkNextObj(const Point& rPnt, short nTol, bool bPrev) if (pTopMarkHit==nullptr) return MarkObj(rPnt,sal_uInt16(nTol)); SdrObject* pTopObjHit=pTopMarkHit->GetMarkedSdrObj(); - SdrObjList* pObjList=pTopObjHit->GetObjList(); + SdrObjList* pObjList=pTopObjHit->getParentOfSdrObject(); SdrPageView* pPV=pTopMarkHit->GetPageView(); // find lowermost of the selected objects that is hit by rPnt // and is placed on the same PageView as pTopMarkHit diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx index 4157679c1089..9090fb255a5c 100644 --- a/svx/source/svdraw/svdobj.cxx +++ b/svx/source/svdraw/svdobj.cxx @@ -295,7 +295,7 @@ SdrObject::SdrObject(SdrModel& rSdrModel) ,pUserCall(nullptr) ,pPlusData(nullptr) ,mpImpl(new Impl) - ,pObjList(nullptr) + ,mpParentOfSdrObject(nullptr) ,nOrdNum(0) ,pGrabBagItem(nullptr) ,mnNavigationPosition(SAL_MAX_UINT32) @@ -401,14 +401,19 @@ void SdrObject::SetRectsDirty(bool bNotMyself) SetBoundRectDirty(); bSnapRectDirty=true; } - if (pObjList!=nullptr) { - pObjList->SetRectsDirty(); + + if (nullptr != getParentOfSdrObject()) + { + getParentOfSdrObject()->SetRectsDirty(); } } -void SdrObject::SetObjList(SdrObjList* pNewObjList) +void SdrObject::setParentOfSdrObject(SdrObjList* pNewObjList) { - pObjList=pNewObjList; + if(getParentOfSdrObject() != pNewObjList) + { + mpParentOfSdrObject = pNewObjList; + } } @@ -623,7 +628,7 @@ SdrObjList* SdrObject::GetSubList() const SdrObject* SdrObject::GetUpGroup() const { - return pObjList!=nullptr ? pObjList->GetOwnerObj() : nullptr; + return nullptr != getParentOfSdrObject() ? getParentOfSdrObject()->GetOwnerObj() : nullptr; } void SdrObject::SetName(const OUString& rStr) @@ -760,9 +765,11 @@ OUString SdrObject::GetDescription() const sal_uInt32 SdrObject::GetOrdNum() const { - if (pObjList!=nullptr) { - if (pObjList->IsObjOrdNumsDirty()) { - pObjList->RecalcObjOrdNums(); + if (nullptr != getParentOfSdrObject()) + { + if (getParentOfSdrObject()->IsObjOrdNumsDirty()) + { + getParentOfSdrObject()->RecalcObjOrdNums(); } } else const_cast<SdrObject*>(this)->nOrdNum=0; return nOrdNum; @@ -795,7 +802,7 @@ void SdrObject::SetGrabBagItem(const css::uno::Any& rVal) sal_uInt32 SdrObject::GetNavigationPosition() { - if (pObjList!=nullptr && pObjList->RecalcNavigationPositions()) + if (nullptr != getParentOfSdrObject() && getParentOfSdrObject()->RecalcNavigationPositions()) { return mnNavigationPosition; } @@ -2652,8 +2659,10 @@ void SdrObject::SendUserCall(SdrUserCallType eUserCall, const tools::Rectangle& { SdrObject* pGroup = nullptr; - if( pObjList && pObjList->GetListKind() == SdrObjListKind::GroupObj ) - pGroup = pObjList->GetOwnerObj(); + if(nullptr != getParentOfSdrObject() && SdrObjListKind::GroupObj == getParentOfSdrObject()->GetListKind()) + { + pGroup = getParentOfSdrObject()->GetOwnerObj(); + } if ( pUserCall ) { @@ -2699,12 +2708,16 @@ void SdrObject::SendUserCall(SdrUserCallType eUserCall, const tools::Rectangle& pGroup->GetUserCall()->Changed( *this, eChildUserType, rBoundRect ); } - if( pGroup->GetObjList() && - pGroup->GetObjList()->GetListKind() == SdrObjListKind::GroupObj && - pGroup != pObjList->GetOwnerObj() ) - pGroup = pObjList->GetOwnerObj(); + if( pGroup->getParentOfSdrObject() && + pGroup->getParentOfSdrObject()->GetListKind() == SdrObjListKind::GroupObj && + pGroup != getParentOfSdrObject()->GetOwnerObj() ) + { + pGroup = getParentOfSdrObject()->GetOwnerObj(); + } else + { pGroup = nullptr; + } } // notify our UNO shape listeners diff --git a/svx/source/svdraw/svdogrp.cxx b/svx/source/svdraw/svdogrp.cxx index 6311106c4e2f..9476a5074613 100644 --- a/svx/source/svdraw/svdogrp.cxx +++ b/svx/source/svdraw/svdogrp.cxx @@ -160,9 +160,9 @@ void SdrObjGroup::NbcSetLayer(SdrLayerID nLayer) } -void SdrObjGroup::SetObjList(SdrObjList* pNewObjList) +void SdrObjGroup::setParentOfSdrObject(SdrObjList* pNewObjList) { - SdrObject::SetObjList(pNewObjList); + SdrObject::setParentOfSdrObject(pNewObjList); maSdrObjList.SetUpList(pNewObjList); } diff --git a/svx/source/svdraw/svdpage.cxx b/svx/source/svdraw/svdpage.cxx index 2dff0a900148..5d143e34f0e2 100644 --- a/svx/source/svdraw/svdpage.cxx +++ b/svx/source/svdraw/svdpage.cxx @@ -76,7 +76,7 @@ SdrObjList::SdrObjList(SdrPage* pNewPage) mbIsNavigationOrderDirty(false) { maList.reserve(InitialObjectContainerCapacity); - pPage=pNewPage; + mpPage=pNewPage; pUpList=nullptr; bObjOrdNumsDirty=false; bRectsDirty=false; @@ -92,11 +92,11 @@ SdrObjList::~SdrObjList() SdrObjList* SdrObjList::CloneSdrObjList(SdrModel* pNewModel) const { SdrObjList* pObjList = new SdrObjList(); - pObjList->lateInitSdrObjList(*this, pNewModel); + pObjList->copyDataFromSdrObjList(*this, pNewModel); return pObjList; } -void SdrObjList::lateInitSdrObjList(const SdrObjList& rSrcList, SdrModel* pNewModel) +void SdrObjList::copyDataFromSdrObjList(const SdrObjList& rSrcList, SdrModel* pNewModel) { // this function is only supposed to be called once, right after construction assert(maList.empty()); @@ -119,7 +119,7 @@ void SdrObjList::CopyObjects(const SdrObjList& rSrcList, SdrModel* pNewModel) if(nullptr != pDO) { - pDO->SetPage(pPage); + pDO->SetPage(mpPage); NbcInsertObject(pDO, SAL_MAX_SIZE); } else @@ -143,8 +143,8 @@ void SdrObjList::CopyObjects(const SdrObjList& rSrcList, SdrModel* pNewModel) if (pSrcEdge!=nullptr) { SdrObject* pSrcNode1=pSrcEdge->GetConnectedNode(true); SdrObject* pSrcNode2=pSrcEdge->GetConnectedNode(false); - if (pSrcNode1!=nullptr && pSrcNode1->GetObjList()!=pSrcEdge->GetObjList()) pSrcNode1=nullptr; // can't do this - if (pSrcNode2!=nullptr && pSrcNode2->GetObjList()!=pSrcEdge->GetObjList()) pSrcNode2=nullptr; // across all lists (yet) + if (pSrcNode1!=nullptr && pSrcNode1->getParentOfSdrObject()!=pSrcEdge->getParentOfSdrObject()) pSrcNode1=nullptr; // can't do this + if (pSrcNode2!=nullptr && pSrcNode2->getParentOfSdrObject()!=pSrcEdge->getParentOfSdrObject()) pSrcNode2=nullptr; // across all lists (yet) if (pSrcNode1!=nullptr || pSrcNode2!=nullptr) { SdrObject* pEdgeObjTmp=GetObj(no); SdrEdgeObj* pDstEdge=dynamic_cast<SdrEdgeObj*>( pEdgeObjTmp ); @@ -214,7 +214,7 @@ void SdrObjList::Clear() } // sent remove hint (after removal, see RemoveObject()) - SdrHint aHint(SdrHintKind::ObjectRemoved, *pObj, pPage); + SdrHint aHint(SdrHintKind::ObjectRemoved, *pObj, mpPage); pObj->getSdrModelFromSdrObject().Broadcast(aHint); // delete the object itself @@ -229,17 +229,17 @@ void SdrObjList::Clear() SdrPage* SdrObjList::GetPage() const { - return pPage; + return mpPage; } void SdrObjList::SetPage(SdrPage* pNewPage) { - if (pPage!=pNewPage) { - pPage=pNewPage; + if (mpPage!=pNewPage) { + mpPage=pNewPage; const size_t nCount = GetObjCount(); for (size_t no=0; no<nCount; ++no) { SdrObject* pObj=GetObj(no); - pObj->SetPage(pPage); + pObj->SetPage(mpPage); } } } @@ -256,16 +256,16 @@ void SdrObjList::RecalcObjOrdNums() void SdrObjList::RecalcRects() { - aOutRect=tools::Rectangle(); - aSnapRect=aOutRect; + maOutRect=tools::Rectangle(); + aSnapRect=maOutRect; const size_t nCount = GetObjCount(); for (size_t i=0; i<nCount; ++i) { SdrObject* pObj=GetObj(i); if (i==0) { - aOutRect=pObj->GetCurrentBoundRect(); + maOutRect=pObj->GetCurrentBoundRect(); aSnapRect=pObj->GetSnapRect(); } else { - aOutRect.Union(pObj->GetCurrentBoundRect()); + maOutRect.Union(pObj->GetCurrentBoundRect()); aSnapRect.Union(pObj->GetSnapRect()); } } @@ -300,15 +300,15 @@ void SdrObjList::NbcInsertObject(SdrObject* pObj, size_t nPos) if (nPos<nCount) bObjOrdNumsDirty=true; pObj->SetOrdNum(nPos); - pObj->SetObjList(this); - pObj->SetPage(pPage); + pObj->setParentOfSdrObject(this); + pObj->SetPage(mpPage); // Inform the parent about change to allow invalidations at // evtl. existing parent visualisations impChildInserted(*pObj); if (!bRectsDirty) { - aOutRect.Union(pObj->GetCurrentBoundRect()); + maOutRect.Union(pObj->GetCurrentBoundRect()); aSnapRect.Union(pObj->GetSnapRect()); } pObj->SetInserted(true); // calls the UserCall (among others) @@ -370,7 +370,7 @@ SdrObject* SdrObjList::NbcRemoveObject(size_t nObjNum) DBG_ASSERT(pObj->IsInserted(),"The object does not have the status Inserted."); pObj->SetInserted(false); // calls UserCall, among other - pObj->SetObjList(nullptr); + pObj->setParentOfSdrObject(nullptr); pObj->SetPage(nullptr); if (!bObjOrdNumsDirty) { // optimizing for the case that the last object has to be removed if (nObjNum+1!=nCount) { @@ -411,7 +411,7 @@ SdrObject* SdrObjList::RemoveObject(size_t nObjNum) pObj->getSdrModelFromSdrObject().SetChanged(); pObj->SetInserted(false); // calls, among other things, the UserCall - pObj->SetObjList(nullptr); + pObj->setParentOfSdrObject(nullptr); pObj->SetPage(nullptr); if (!bObjOrdNumsDirty) { // optimization for the case that the last object is removed if (nObjNum+1!=nCount) { @@ -444,7 +444,7 @@ SdrObject* SdrObjList::NbcReplaceObject(SdrObject* pNewObj, size_t nObjNum) if (pObj!=nullptr) { DBG_ASSERT(pObj->IsInserted(),"SdrObjList::ReplaceObject: the object does not have status Inserted."); pObj->SetInserted(false); - pObj->SetObjList(nullptr); + pObj->setParentOfSdrObject(nullptr); pObj->SetPage(nullptr); ReplaceObjectInContainer(*pNewObj,nObjNum); @@ -452,8 +452,8 @@ SdrObject* SdrObjList::NbcReplaceObject(SdrObject* pNewObj, size_t nObjNum) pObj->GetViewContact().flushViewObjectContacts(); pNewObj->SetOrdNum(nObjNum); - pNewObj->SetObjList(this); - pNewObj->SetPage(pPage); + pNewObj->setParentOfSdrObject(this); + pNewObj->SetPage(mpPage); // Inform the parent about change to allow invalidations at // evtl. existing parent visualisations @@ -491,7 +491,7 @@ SdrObject* SdrObjList::ReplaceObject(SdrObject* pNewObj, size_t nObjNum) } pObj->SetInserted(false); - pObj->SetObjList(nullptr); + pObj->setParentOfSdrObject(nullptr); pObj->SetPage(nullptr); ReplaceObjectInContainer(*pNewObj,nObjNum); @@ -499,8 +499,8 @@ SdrObject* SdrObjList::ReplaceObject(SdrObject* pNewObj, size_t nObjNum) pObj->GetViewContact().flushViewObjectContacts(); pNewObj->SetOrdNum(nObjNum); - pNewObj->SetObjList(this); - pNewObj->SetPage(pPage); + pNewObj->setParentOfSdrObject(this); + pNewObj->SetPage(mpPage); // Inform the parent about change to allow invalidations at // evtl. existing parent visualisations @@ -567,14 +567,14 @@ const tools::Rectangle& SdrObjList::GetAllObjBoundRect() const // #i106183# for deep group hierarchies like in chart2, the invalidates // through the hierarchy are not correct; use a 2nd hint for the needed // recalculation. Future versions will have no bool flag at all, but - // just aOutRect in empty state to represent an invalid state, thus + // just maOutRect in empty state to represent an invalid state, thus // it's a step in the right direction. - if (bRectsDirty || aOutRect.IsEmpty()) + if (bRectsDirty || maOutRect.IsEmpty()) { const_cast<SdrObjList*>(this)->RecalcRects(); const_cast<SdrObjList*>(this)->bRectsDirty=false; } - return aOutRect; + return maOutRect; } void SdrObjList::NbcReformatAllTextObjects() @@ -647,7 +647,7 @@ SdrObject* SdrObjList::GetObj(size_t nNum) const bool SdrObjList::IsReadOnly() const { bool bRet = false; - if (pPage!=nullptr && pPage!=this) bRet=pPage->IsReadOnly(); + if (mpPage!=nullptr && mpPage!=this) bRet=mpPage->IsReadOnly(); return bRet; } @@ -1212,7 +1212,7 @@ void SdrPage::lateInit(const SdrPage& rSrcPage) } // Now copy the contained objects - SdrObjList::lateInitSdrObjList(rSrcPage, &getSdrModelFromSdrPage()); + SdrObjList::copyDataFromSdrObjList(rSrcPage, &getSdrModelFromSdrPage()); // be careful and correct eListKind, a member of SdrObjList which // will be changed by the SdrObjList::lateInit before... diff --git a/svx/source/svdraw/svdpagv.cxx b/svx/source/svdraw/svdpagv.cxx index fb1eee822d25..76d30c43d145 100644 --- a/svx/source/svdraw/svdpagv.cxx +++ b/svx/source/svdraw/svdpagv.cxx @@ -901,7 +901,7 @@ void SdrPageView::CheckCurrentGroup() SdrObject* pGrp(GetCurrentGroup()); while(nullptr != pGrp && - (!pGrp->IsInserted() || nullptr == pGrp->GetObjList() || nullptr == pGrp->GetPage())) + (!pGrp->IsInserted() || nullptr == pGrp->getParentOfSdrObject() || nullptr == pGrp->GetPage())) { // anything outside of the borders? pGrp = pGrp->GetUpGroup(); diff --git a/svx/source/svdraw/svdundo.cxx b/svx/source/svdraw/svdundo.cxx index 22720cfb4ca4..6dc3788ab30e 100644 --- a/svx/source/svdraw/svdundo.cxx +++ b/svx/source/svdraw/svdundo.cxx @@ -656,7 +656,7 @@ SdrUndoObjList::SdrUndoObjList(SdrObject& rNewObj, bool bOrdNumDirect) : SdrUndoObj(rNewObj) , bOwner(false) { - pObjList=pObj->GetObjList(); + pObjList=pObj->getParentOfSdrObject(); if (bOrdNumDirect) { nOrdNum=pObj->GetOrdNumDirect(); @@ -856,7 +856,7 @@ SdrUndoReplaceObj::SdrUndoReplaceObj(SdrObject& rOldObj1, SdrObject& rNewObj1, b { SetOldOwner(true); - pObjList=pObj->GetObjList(); + pObjList=pObj->getParentOfSdrObject(); if (bOrdNumDirect) { nOrdNum=pObj->GetOrdNumDirect(); @@ -983,7 +983,7 @@ void SdrUndoObjOrdNum::Undo() // Trigger PageChangeCall ImpShowPageOfThisObject(); - SdrObjList* pOL=pObj->GetObjList(); + SdrObjList* pOL=pObj->getParentOfSdrObject(); if (pOL==nullptr) { OSL_FAIL("UndoObjOrdNum: pObj does not have an ObjList."); @@ -994,7 +994,7 @@ void SdrUndoObjOrdNum::Undo() void SdrUndoObjOrdNum::Redo() { - SdrObjList* pOL=pObj->GetObjList(); + SdrObjList* pOL=pObj->getParentOfSdrObject(); if (pOL==nullptr) { OSL_FAIL("RedoObjOrdNum: pObj does not have an ObjList."); diff --git a/svx/source/svdraw/svdview.cxx b/svx/source/svdraw/svdview.cxx index d9eb52432957..8bfea2399a26 100644 --- a/svx/source/svdraw/svdview.cxx +++ b/svx/source/svdraw/svdview.cxx @@ -743,8 +743,8 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co rVEvt.eEvent=eEvent; #ifdef DGB_UTIL if (rVEvt.pRootObj!=NULL) { - if (rVEvt.pRootObj->GetObjList()!=rVEvt.pPV->GetObjList()) { - OSL_FAIL("SdrView::PickAnything(): pRootObj->GetObjList()!=pPV->GetObjList() !"); + if (rVEvt.pRootObj->getParentOfSdrObject()!=rVEvt.pPV->GetObjList()) { + OSL_FAIL("SdrView::PickAnything(): pRootObj->getParentOfSdrObject()!=pPV->GetObjList() !"); } } #endif diff --git a/svx/source/unodraw/unoshap2.cxx b/svx/source/unodraw/unoshap2.cxx index 34106635f1cb..8b351899d54a 100644 --- a/svx/source/unodraw/unoshap2.cxx +++ b/svx/source/unodraw/unoshap2.cxx @@ -199,7 +199,7 @@ void SvxShapeGroup::addUnoShape( const uno::Reference< drawing::XShape >& xShape pSdrShape = mxPage->CreateSdrObject_( xShape ); if( pSdrShape->IsInserted() ) - pSdrShape->GetObjList()->RemoveObject( pSdrShape->GetOrdNum() ); + pSdrShape->getParentOfSdrObject()->RemoveObject( pSdrShape->GetOrdNum() ); GetSdrObject()->GetSubList()->InsertObject(pSdrShape, nPos); // TTTT Was created using mpModel in CreateSdrObject_ above @@ -242,10 +242,10 @@ void SAL_CALL SvxShapeGroup::remove( const uno::Reference< drawing::XShape >& xS if( pShape ) pSdrShape = pShape->GetSdrObject(); - if( !HasSdrObject() || pSdrShape == nullptr || pSdrShape->GetObjList()->GetOwnerObj() != GetSdrObject() ) + if( !HasSdrObject() || pSdrShape == nullptr || pSdrShape->getParentOfSdrObject()->GetOwnerObj() != GetSdrObject() ) throw uno::RuntimeException(); - SdrObjList& rList = *pSdrShape->GetObjList(); + SdrObjList& rList = *pSdrShape->getParentOfSdrObject(); const size_t nObjCount = rList.GetObjCount(); size_t nObjNum = 0; diff --git a/svx/source/unodraw/unoshap3.cxx b/svx/source/unodraw/unoshap3.cxx index 663dcc9f6bd9..9f694bd8a130 100644 --- a/svx/source/unodraw/unoshap3.cxx +++ b/svx/source/unodraw/unoshap3.cxx @@ -150,12 +150,12 @@ void SAL_CALL Svx3DSceneObject::remove( const Reference< drawing::XShape >& xSha throw uno::RuntimeException(); SdrObject* pSdrShape = pShape->GetSdrObject(); - if(pSdrShape == nullptr || pSdrShape->GetObjList()->GetOwnerObj() != GetSdrObject()) + if(pSdrShape == nullptr || pSdrShape->getParentOfSdrObject()->GetOwnerObj() != GetSdrObject()) { throw uno::RuntimeException(); } - SdrObjList& rList = *pSdrShape->GetObjList(); + SdrObjList& rList = *pSdrShape->getParentOfSdrObject(); const size_t nObjCount = rList.GetObjCount(); size_t nObjNum = 0; diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx index 33afa53635a4..1d567bae7caf 100644 --- a/svx/source/unodraw/unoshape.cxx +++ b/svx/source/unodraw/unoshape.cxx @@ -2088,7 +2088,7 @@ bool SvxShape::setPropertyValueImpl( const OUString&, const SfxItemPropertySimpl sal_Int32 nNewOrdNum = 0; if(rValue >>= nNewOrdNum) { - SdrObjList* pObjList = GetSdrObject()->GetObjList(); + SdrObjList* pObjList = GetSdrObject()->getParentOfSdrObject(); if( pObjList ) { SdrObject* pCheck = @@ -3671,9 +3671,9 @@ uno::Reference<uno::XInterface> SAL_CALL SvxShape::getParent() { ::SolarMutexGuard aGuard; - if( HasSdrObject() && GetSdrObject()->GetObjList() ) + if( HasSdrObject() && GetSdrObject()->getParentOfSdrObject() ) { - SdrObjList* pObjList = GetSdrObject()->GetObjList(); + SdrObjList* pObjList = GetSdrObject()->getParentOfSdrObject(); switch (pObjList->GetListKind()) { |