From 09cb778b6eb7d3a5b9029965a1320b49c90e7295 Mon Sep 17 00:00:00 2001 From: Noel Date: Tue, 9 Feb 2021 13:42:22 +0200 Subject: clean up SdrObject cloning using operator= implies that overwriting an SdrObject is a useful operation, but that is not at all true - they are typically linked into and referred to by many other things. So rather use a copy-constructor. Also clean up a couple of weird "do some stuff after the clone" code into the main copy constructor. Change-Id: Iefc1481b527602748b5f3abed06e7cca66c0581c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110633 Tested-by: Jenkins Reviewed-by: Noel Grandin --- include/svx/cube3d.hxx | 4 +--- include/svx/lathe3d.hxx | 4 +--- include/svx/obj3d.hxx | 6 ++---- include/svx/scene3d.hxx | 2 +- include/svx/sphere3d.hxx | 4 +--- include/svx/svdoashp.hxx | 2 +- include/svx/svdoattr.hxx | 6 ++---- include/svx/svdobj.hxx | 32 ++++++-------------------------- include/svx/svdocapt.hxx | 5 ++--- include/svx/svdocirc.hxx | 5 ++--- include/svx/svdoedge.hxx | 3 ++- include/svx/svdograf.hxx | 3 ++- include/svx/svdogrp.hxx | 3 ++- include/svx/svdomeas.hxx | 5 ++--- include/svx/svdomedia.hxx | 3 ++- include/svx/svdoole2.hxx | 5 ++--- include/svx/svdopage.hxx | 3 ++- include/svx/svdopath.hxx | 3 ++- include/svx/svdorect.hxx | 5 +++-- include/svx/svdotable.hxx | 3 ++- include/svx/svdotext.hxx | 4 +++- include/svx/svdouno.hxx | 4 +++- include/svx/svdovirt.hxx | 3 ++- 23 files changed, 48 insertions(+), 69 deletions(-) (limited to 'include') diff --git a/include/svx/cube3d.hxx b/include/svx/cube3d.hxx index 515e8331c044..9842b26f0e55 100644 --- a/include/svx/cube3d.hxx +++ b/include/svx/cube3d.hxx @@ -65,6 +65,7 @@ public: const E3dDefaultAttributes& rDefault, const basegfx::B3DPoint& aPos, const basegfx::B3DVector& r3DSize); + E3dCubeObj(SdrModel& rSdrModel, E3dCubeObj const &); E3dCubeObj(SdrModel& rSdrModel); virtual SdrObjKind GetObjIdentifier() const override; @@ -72,9 +73,6 @@ public: virtual E3dCubeObj* CloneSdrObject(SdrModel& rTargetModel) const override; - // implemented mainly for the purposes of Clone() - E3dCubeObj& operator=(const E3dCubeObj& rObj); - // Set local parameters with geometry recreation void SetCubePos(const basegfx::B3DPoint& rNew); const basegfx::B3DPoint& GetCubePos() const { return aCubePos; } diff --git a/include/svx/lathe3d.hxx b/include/svx/lathe3d.hxx index db2c868280ce..4bd2fea31da6 100644 --- a/include/svx/lathe3d.hxx +++ b/include/svx/lathe3d.hxx @@ -56,6 +56,7 @@ public: SdrModel& rSdrModel, const E3dDefaultAttributes& rDefault, const basegfx::B2DPolyPolygon& rPoly2D); + E3dLatheObj(SdrModel& rSdrModel, E3dLatheObj const & rSource); E3dLatheObj(SdrModel& rSdrModel); // HorizontalSegments: @@ -102,9 +103,6 @@ public: virtual E3dLatheObj* CloneSdrObject(SdrModel& rTargetModel) const override; - // implemented mainly for the purposes of Clone() - E3dLatheObj& operator=(const E3dLatheObj& rObj); - virtual SdrObjectUniquePtr DoConvertToPolyObj(bool bBezier, bool bAddText) const override; // TakeObjName...() is for the display in the UI, for example "3 frames selected". diff --git a/include/svx/obj3d.hxx b/include/svx/obj3d.hxx index 4455711779af..4f18b4fcf694 100644 --- a/include/svx/obj3d.hxx +++ b/include/svx/obj3d.hxx @@ -83,6 +83,7 @@ protected: // and no instances should be created from anyone, so i move the constructors // to protected area E3dObject(SdrModel& rSdrModel); + E3dObject(SdrModel& rSdrModel, E3dObject const & rSource); // protected destructor virtual ~E3dObject() override; @@ -125,7 +126,6 @@ public: virtual OUString TakeObjNameSingul() const override; virtual OUString TakeObjNamePlural() const override; virtual E3dObject* CloneSdrObject(SdrModel& rTargetModel) const override; - E3dObject& operator=( const E3dObject& rObj ); virtual std::unique_ptr NewGeoData() const override; virtual void SaveGeoData(SdrObjGeoData& rGeo) const override; @@ -170,6 +170,7 @@ protected: virtual ~E3dCompoundObject() override; public: + E3dCompoundObject(SdrModel& rSdrModel, E3dCompoundObject const & rSource); E3dCompoundObject(SdrModel& rSdrModel); virtual basegfx::B2DPolyPolygon TakeXorPoly() const override; @@ -180,9 +181,6 @@ public: virtual void RecalcSnapRect() override; virtual E3dCompoundObject* CloneSdrObject(SdrModel& rTargetModel) const override; - - // implemented mainly for the purposes of Clone() - E3dCompoundObject& operator=(const E3dCompoundObject& rObj); }; #endif // INCLUDED_SVX_OBJ3D_HXX diff --git a/include/svx/scene3d.hxx b/include/svx/scene3d.hxx index 680cd0717d84..bd1c31ea13ca 100644 --- a/include/svx/scene3d.hxx +++ b/include/svx/scene3d.hxx @@ -83,6 +83,7 @@ protected: public: E3dScene(SdrModel& rSdrModel); + E3dScene(SdrModel& rSdrModel, E3dScene const &); virtual void StructureChanged() override; @@ -128,7 +129,6 @@ public: void removeAllNonSelectedObjects(); virtual E3dScene* CloneSdrObject(SdrModel& rTargetModel) const override; - E3dScene& operator=(const E3dScene&); virtual std::unique_ptr NewGeoData() const override; virtual void SaveGeoData(SdrObjGeoData& rGeo) const override; diff --git a/include/svx/sphere3d.hxx b/include/svx/sphere3d.hxx index 0ee9bc0531b3..4de73c1aa87f 100644 --- a/include/svx/sphere3d.hxx +++ b/include/svx/sphere3d.hxx @@ -57,6 +57,7 @@ public: // when a document with a sphere is loaded. This constructor does not call // CreateSphere, or create any spheres. E3dSphereObj(SdrModel& rSdrModel); + E3dSphereObj(SdrModel& rSdrModel, E3dSphereObj const & rSource); // horizontal segments: sal_uInt32 GetHorizontalSegments() const @@ -71,9 +72,6 @@ public: virtual E3dSphereObj* CloneSdrObject(SdrModel& rTargetModel) const override; - // implemented mainly for the purposes of Clone() - E3dSphereObj& operator=(const E3dSphereObj& rObj); - const basegfx::B3DPoint& Center() const { return aCenter; } const basegfx::B3DVector& Size() const { return aSize; } diff --git a/include/svx/svdoashp.hxx b/include/svx/svdoashp.hxx index e73ecf58ac97..8b12de0d2ec2 100644 --- a/include/svx/svdoashp.hxx +++ b/include/svx/svdoashp.hxx @@ -144,6 +144,7 @@ public: double GetExtraTextRotation( const bool bPreRotation = false ) const; SdrObjCustomShape(SdrModel& rSdrModel); + SdrObjCustomShape(SdrModel& rSdrModel, SdrObjCustomShape const & rSource); /* is merging default attributes from type-shape into the SdrCustomShapeGeometryItem. If pType is NULL then the type is being taken from the "Type" property of the SdrCustomShapeGeometryItem. @@ -211,7 +212,6 @@ public: virtual void TakeTextRect( SdrOutliner& rOutliner, tools::Rectangle& rTextRect, bool bNoEditText, tools::Rectangle* pAnchorRect, bool bLineWidth = true ) const override; virtual SdrObjCustomShape* CloneSdrObject(SdrModel& rTargetModel) const override; - SdrObjCustomShape& operator=(const SdrObjCustomShape& rObj); virtual OUString TakeObjNameSingul() const override; virtual OUString TakeObjNamePlural() const override; diff --git a/include/svx/svdoattr.hxx b/include/svx/svdoattr.hxx index 4c5dab883e4f..2505811d2948 100644 --- a/include/svx/svdoattr.hxx +++ b/include/svx/svdoattr.hxx @@ -49,13 +49,11 @@ protected: virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint) override; SdrAttrObj(SdrModel& rSdrModel); + // Copy constructor + SdrAttrObj(SdrModel& rSdrModel, SdrAttrObj const &); virtual ~SdrAttrObj() override; public: - SdrAttrObj(SdrAttrObj const &) = delete; // due to SdrObject - SdrAttrObj(SdrAttrObj &&) = delete; // due to SdrObject - SdrAttrObj & operator =(SdrAttrObj const &) = default; - SdrAttrObj & operator =(SdrAttrObj &&) = default; // Detects if bFilledObj && Fill != FillNone bool HasFill() const; diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx index bf70559ebdf4..f38f201621e7 100644 --- a/include/svx/svdobj.hxx +++ b/include/svx/svdobj.hxx @@ -291,6 +291,8 @@ private: public: // A SdrObject always needs a SdrModel for lifetime (Pool, ...) SdrObject(SdrModel& rSdrModel); + // Copy constructor + SdrObject(SdrModel& rSdrModel, SdrObject const & rSource); // SdrModel/SdrPage access on SdrObject level SdrPage* getSdrPageFromSdrObject() const; @@ -441,13 +443,12 @@ public: // means no change of the rotation point (only centered) and no shear allowed virtual bool HasLimitedRotation() const; - // Returns a copy of the object. Every inherited class must reimplement this (in class Foo - // it should be sufficient to do "virtual Foo* CloneSdrObject(...) const { return CloneHelper< Foo >(); }". - // Note that this function uses operator= internally. + // Returns a copy of the object. Every inherited class must reimplement this. virtual SdrObject* CloneSdrObject(SdrModel& rTargetModel) const; - // implemented mainly for the purposes of CloneSdrObject() - SdrObject& operator=(const SdrObject& rObj); + // Overwriting this object makes no sense, it is too complicated for that + SdrObject& operator=(const SdrObject& rObj) = delete; + SdrObject& operator=(SdrObject&& rObj) = delete; // TakeObjName...() is for the display in the UI, e.g. "3 frames selected" virtual OUString TakeObjNameSingul() const; @@ -944,9 +945,6 @@ protected: /// class (preferably as the first step)! virtual void impl_setUnoShape( const css::uno::Reference< css::uno::XInterface >& _rxUnoShape ); - // helper function for reimplementing Clone(). - template< typename T > T* CloneHelper(SdrModel& rTargetModel) const; - const SfxItemSet* getBackgroundFillSet() const; private: @@ -1030,22 +1028,4 @@ private: SdrObjFactory() = delete; }; -template< typename T > T* SdrObject::CloneHelper(SdrModel& rTargetModel) const -{ - OSL_ASSERT( typeid( T ) == typeid( *this )); - T* pObj = dynamic_cast< T* >( - SdrObjFactory::MakeNewObject( - rTargetModel, - GetObjInventor(), - GetObjIdentifier())); - - if(nullptr != pObj) - { - // use ::operator=() - *pObj = *static_cast< const T* >( this ); - } - - return pObj; -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/svx/svdocapt.hxx b/include/svx/svdocapt.hxx index ee856c32364a..0b2563878384 100644 --- a/include/svx/svdocapt.hxx +++ b/include/svx/svdocapt.hxx @@ -74,6 +74,8 @@ private: public: SdrCaptionObj(SdrModel& rSdrModel); + // Copy constructor + SdrCaptionObj(SdrModel& rSdrModel, SdrCaptionObj const & rSource); SdrCaptionObj( SdrModel& rSdrModel, const tools::Rectangle& rRect, @@ -86,9 +88,6 @@ public: virtual SdrObjKind GetObjIdentifier() const override; virtual SdrCaptionObj* CloneSdrObject(SdrModel& rTargetModel) const override; - // implemented mainly for the purposes of Clone() - SdrCaptionObj& operator=(const SdrCaptionObj& rObj); - // for calc: special shadow only for text box void SetSpecialTextBoxShadow() { mbSpecialTextBoxShadow = true; } bool GetSpecialTextBoxShadow() const { return mbSpecialTextBoxShadow; } diff --git a/include/svx/svdocirc.hxx b/include/svx/svdocirc.hxx index cd573323a94d..81687cc0bfe2 100644 --- a/include/svx/svdocirc.hxx +++ b/include/svx/svdocirc.hxx @@ -77,6 +77,8 @@ public: SdrModel& rSdrModel, SdrCircKind eNewKind, const tools::Rectangle& rRect); + // Copy constructor + SdrCircObj(SdrModel& rSdrModel, SdrCircObj const & rSource); // 0=0.00Deg=3h 9000=90.00Deg=12h 18000=180.00Deg=9h 27000=270.00Deg=6h // The circle is build up from StartAngle to EndWink anti-clockwise. @@ -100,9 +102,6 @@ public: virtual SdrCircObj* CloneSdrObject(SdrModel& rTargetModel) const override; - // implemented mainly for the purposes of Clone() - SdrCircObj& operator=(const SdrCircObj& rObj); - virtual void RecalcSnapRect() override; virtual void NbcSetSnapRect(const tools::Rectangle& rRect) override; virtual basegfx::B2DPolyPolygon TakeXorPoly() const override; diff --git a/include/svx/svdoedge.hxx b/include/svx/svdoedge.hxx index b19c5514429b..18842c0620e5 100644 --- a/include/svx/svdoedge.hxx +++ b/include/svx/svdoedge.hxx @@ -190,6 +190,8 @@ protected: public: SdrEdgeObj(SdrModel& rSdrModel); + // Copy constructor + SdrEdgeObj(SdrModel& rSdrModel, SdrEdgeObj const & rSource); // react on model/page change virtual void handlePageChange(SdrPage* pOldPage, SdrPage* pNewPage) override; @@ -217,7 +219,6 @@ public: virtual void RecalcSnapRect() override; virtual void TakeUnrotatedSnapRect(tools::Rectangle& rRect) const override; virtual SdrEdgeObj* CloneSdrObject(SdrModel& rTargetModel) const override; - SdrEdgeObj& operator=(const SdrEdgeObj& rObj); virtual OUString TakeObjNameSingul() const override; virtual OUString TakeObjNamePlural() const override; diff --git a/include/svx/svdograf.hxx b/include/svx/svdograf.hxx index 9a6d06267aa5..88ebc776537b 100644 --- a/include/svx/svdograf.hxx +++ b/include/svx/svdograf.hxx @@ -125,6 +125,8 @@ protected: public: SdrGrafObj(SdrModel& rSdrModel); + // Copy constructor + SdrGrafObj(SdrModel& rSdrModel, SdrGrafObj const & rSource); SdrGrafObj( SdrModel& rSdrModel, const Graphic& rGrf); @@ -177,7 +179,6 @@ public: virtual OUString TakeObjNamePlural() const override; virtual SdrGrafObj* CloneSdrObject(SdrModel& rTargetModel) const override; - SdrGrafObj& operator=(const SdrGrafObj& rObj); virtual sal_uInt32 GetHdlCount() const override; virtual void AddToHdlList(SdrHdlList& rHdlList) const override; diff --git a/include/svx/svdogrp.hxx b/include/svx/svdogrp.hxx index 2083c8839438..3eef83bbd3ac 100644 --- a/include/svx/svdogrp.hxx +++ b/include/svx/svdogrp.hxx @@ -44,6 +44,8 @@ private: public: SdrObjGroup(SdrModel& rSdrModel); + // Copy constructor + SdrObjGroup(SdrModel& rSdrModel, SdrObjGroup const& rSource); // derived from SdrObjList virtual SdrPage* getSdrPageFromSdrObjList() const override; @@ -67,7 +69,6 @@ public: virtual const tools::Rectangle& GetSnapRect() const override; virtual SdrObjGroup* CloneSdrObject(SdrModel& rTargetModel) const override; - SdrObjGroup& operator=(const SdrObjGroup& rObj); virtual OUString TakeObjNameSingul() const override; virtual OUString TakeObjNamePlural() const override; diff --git a/include/svx/svdomeas.hxx b/include/svx/svdomeas.hxx index 599104e937b8..b3dc1cd56666 100644 --- a/include/svx/svdomeas.hxx +++ b/include/svx/svdomeas.hxx @@ -77,6 +77,8 @@ protected: public: SdrMeasureObj(SdrModel& rSdrModel); + // Copy constructor + SdrMeasureObj(SdrModel& rSdrModel, SdrMeasureObj const & rSource); SdrMeasureObj( SdrModel& rSdrModel, const Point& rPt1, @@ -87,9 +89,6 @@ public: virtual void TakeUnrotatedSnapRect(tools::Rectangle& rRect) const override; virtual SdrMeasureObj* CloneSdrObject(SdrModel& rTargetModel) const override; - // implemented mainly for the purposes of Clone() - SdrMeasureObj& operator=(const SdrMeasureObj& rObj); - virtual OUString TakeObjNameSingul() const override; virtual OUString TakeObjNamePlural() const override; diff --git a/include/svx/svdomedia.hxx b/include/svx/svdomedia.hxx index 9eab605e8ef4..bc80acfff76c 100644 --- a/include/svx/svdomedia.hxx +++ b/include/svx/svdomedia.hxx @@ -41,6 +41,8 @@ private: public: SdrMediaObj(SdrModel& rSdrModel); + // Copy constructor + SdrMediaObj(SdrModel& rSdrModel, SdrMediaObj const & rSource); SdrMediaObj( SdrModel& rSdrModel, const tools::Rectangle& rRect); @@ -54,7 +56,6 @@ public: virtual OUString TakeObjNamePlural() const override; virtual SdrMediaObj* CloneSdrObject(SdrModel& rTargetModel) const override; - SdrMediaObj& operator=(const SdrMediaObj& rObj); virtual void AdjustToMaxRect( const tools::Rectangle& rMaxRect, bool bShrinkOnly = false ) override; diff --git a/include/svx/svdoole2.hxx b/include/svx/svdoole2.hxx index 8c209ce7f281..5b08652e3e40 100644 --- a/include/svx/svdoole2.hxx +++ b/include/svx/svdoole2.hxx @@ -74,6 +74,8 @@ public: SdrOle2Obj( SdrModel& rSdrModel, bool bFrame_ = false); + // Copy constructor + SdrOle2Obj(SdrModel& rSdrModel, SdrOle2Obj const & rSource); SdrOle2Obj( SdrModel& rSdrModel, const svt::EmbeddedObjectRef& rNewObjRef, @@ -140,9 +142,6 @@ public: virtual SdrOle2Obj* CloneSdrObject(SdrModel& rTargetModel) const override; - SdrOle2Obj& assignFrom(const SdrOle2Obj& rObj); - SdrOle2Obj& operator=(const SdrOle2Obj& rObj); - virtual void NbcMove(const Size& rSize) override; virtual void NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact) override; virtual void NbcSetSnapRect(const tools::Rectangle& rRect) override; diff --git a/include/svx/svdopage.hxx b/include/svx/svdopage.hxx index 601b86d5480c..c5e700ad9acd 100644 --- a/include/svx/svdopage.hxx +++ b/include/svx/svdopage.hxx @@ -46,6 +46,8 @@ public: SdrPageObj( SdrModel& rSdrModel, SdrPage* pNewPage = nullptr); + // Copy constructor + SdrPageObj(SdrModel& rSdrModel, SdrPageObj const & rSource); SdrPageObj( SdrModel& rSdrModel, const tools::Rectangle& rRect, @@ -60,7 +62,6 @@ public: virtual SdrObjKind GetObjIdentifier() const override; virtual void TakeObjInfo(SdrObjTransformInfoRec& rInfo) const override; virtual SdrPageObj* CloneSdrObject(SdrModel& rTargetModel) const override; - SdrPageObj& operator=(const SdrPageObj& rObj); virtual OUString TakeObjNameSingul() const override; virtual OUString TakeObjNamePlural() const override; diff --git a/include/svx/svdopath.hxx b/include/svx/svdopath.hxx index f8360d178f71..b825f1413630 100644 --- a/include/svx/svdopath.hxx +++ b/include/svx/svdopath.hxx @@ -67,6 +67,8 @@ public: SdrPathObj( SdrModel& rSdrModel, SdrObjKind eNewKind); + // Copy constructor + SdrPathObj(SdrModel& rSdrModel, SdrPathObj const & rSource); SdrPathObj( SdrModel& rSdrModel, SdrObjKind eNewKind, @@ -76,7 +78,6 @@ public: virtual SdrObjKind GetObjIdentifier() const override; virtual void TakeUnrotatedSnapRect(tools::Rectangle& rRect) const override; virtual SdrPathObj* CloneSdrObject(SdrModel& rTargetModel) const override; - SdrPathObj& operator=(const SdrPathObj& rObj); virtual OUString TakeObjNameSingul() const override; virtual OUString TakeObjNamePlural() const override; diff --git a/include/svx/svdorect.hxx b/include/svx/svdorect.hxx index 930fb01ff626..65671216da41 100644 --- a/include/svx/svdorect.hxx +++ b/include/svx/svdorect.hxx @@ -74,8 +74,6 @@ public: SdrModel& rSdrModel, const tools::Rectangle& rRect); - SdrRectObj& operator=(const SdrRectObj& rCopy); - // Constructor of a text frame SdrRectObj( SdrModel& rSdrModel, @@ -85,6 +83,9 @@ public: SdrObjKind eNewTextKind, const tools::Rectangle& rRect); + // Copy constructor + SdrRectObj(SdrModel& rSdrModel, SdrRectObj const & rSource); + virtual void TakeObjInfo(SdrObjTransformInfoRec& rInfo) const override; virtual SdrObjKind GetObjIdentifier() const override; virtual void TakeUnrotatedSnapRect(tools::Rectangle& rRect) const override; diff --git a/include/svx/svdotable.hxx b/include/svx/svdotable.hxx index 2f0b284d4394..ef52185b8116 100644 --- a/include/svx/svdotable.hxx +++ b/include/svx/svdotable.hxx @@ -101,6 +101,8 @@ class SVXCORE_DLLPUBLIC SdrTableObj final : public ::SdrTextObj public: SdrTableObj(SdrModel& rSdrModel); + // Copy constructor + SdrTableObj(SdrModel& rSdrModel, SdrTableObj const & rSource); SdrTableObj( SdrModel& rSdrModel, const ::tools::Rectangle& rNewRect, @@ -204,7 +206,6 @@ public: virtual OUString TakeObjNameSingul() const override; virtual OUString TakeObjNamePlural() const override; virtual SdrTableObj* CloneSdrObject(SdrModel& rTargetModel) const override; - SdrTableObj& operator=(const SdrTableObj& rObj); virtual void RecalcSnapRect() override; virtual const tools::Rectangle& GetSnapRect() const override; virtual void NbcSetSnapRect(const tools::Rectangle& rRect) override; diff --git a/include/svx/svdotext.hxx b/include/svx/svdotext.hxx index ed9cd61ad1f8..72ebffcbc5e3 100644 --- a/include/svx/svdotext.hxx +++ b/include/svx/svdotext.hxx @@ -315,6 +315,9 @@ protected: SdrObjKind eNewTextKind, const tools::Rectangle& rNewRect); + // copy constructor + SdrTextObj(SdrModel& rSdrModel, SdrTextObj const & rSource); + // protected destructor virtual ~SdrTextObj() override; @@ -447,7 +450,6 @@ public: virtual OUString TakeObjNameSingul() const override; virtual OUString TakeObjNamePlural() const override; virtual SdrTextObj* CloneSdrObject(SdrModel& rTargetModel) const override; - SdrTextObj& operator=(const SdrTextObj& rObj); virtual basegfx::B2DPolyPolygon TakeXorPoly() const override; virtual basegfx::B2DPolyPolygon TakeContour() const override; virtual void RecalcSnapRect() override; diff --git a/include/svx/svdouno.hxx b/include/svx/svdouno.hxx index 3796b086c8b9..c416439ecb5d 100644 --- a/include/svx/svdouno.hxx +++ b/include/svx/svdouno.hxx @@ -67,6 +67,8 @@ public: explicit SdrUnoObj( SdrModel& rSdrModel, const OUString& rModelName); + // Copy constructor + SdrUnoObj(SdrModel& rSdrModel, SdrUnoObj const & rSource); SdrUnoObj( SdrModel& rSdrModel, const OUString& rModelName, @@ -76,7 +78,6 @@ public: virtual SdrObjKind GetObjIdentifier() const override; virtual SdrUnoObj* CloneSdrObject(SdrModel& rTargetModel) const override; - SdrUnoObj& operator= (const SdrUnoObj& rObj); virtual void NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact) override; virtual void NbcSetLayer(SdrLayerID nLayer) override; @@ -122,6 +123,7 @@ public: ) const; const OUString& GetUnoControlTypeName() const { return aUnoControlTypeName; } + const OUString& getUnoControlModelTypeName() const { return aUnoControlModelTypeName; } virtual void SetUnoControlModel( const css::uno::Reference< css::awt::XControlModel >& xModel ); diff --git a/include/svx/svdovirt.hxx b/include/svx/svdovirt.hxx index eade82c13c42..420fb6caed26 100644 --- a/include/svx/svdovirt.hxx +++ b/include/svx/svdovirt.hxx @@ -52,6 +52,8 @@ protected: public: SdrVirtObj(SdrModel& rSdrModel, SdrObject& rNewObj); + // Copy constructor + SdrVirtObj(SdrModel& rSdrModel, SdrVirtObj const& rSource); SdrObject& ReferencedObj(); const SdrObject& GetReferencedObj() const; @@ -66,7 +68,6 @@ public: virtual const tools::Rectangle& GetLastBoundRect() const override; virtual void RecalcBoundRect() override; virtual SdrVirtObj* CloneSdrObject(SdrModel& rTargetModel) const override; - SdrVirtObj& operator=(const SdrVirtObj& rObj); virtual OUString TakeObjNameSingul() const override; virtual OUString TakeObjNamePlural() const override; -- cgit