From 4afa430c30483767440f61d11e9012e694019157 Mon Sep 17 00:00:00 2001 From: Luboš Luňák Date: Fri, 25 Mar 2011 17:27:08 +0100 Subject: more sensible SdrObject::Clone() and SdrObject::operator=() Virtual operator=() is IMO pointless, and especially in a class hierarchy like SdrObject it's pretty unlikely one could reasonably assign any SdrObject-based object to any other one. Moreover, it was actually only used in Clone(), which was almost never reimplemented, so the more sensible choice is to have non-virtual operator= and virtual Clone() always being reimplemented and using that. This commit also fixes various smaller or bigger, er, interesting details in the various operator= implementations. --- reportdesign/inc/RptObject.hxx | 4 ++-- reportdesign/source/core/sdr/RptObject.cxx | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'reportdesign') diff --git a/reportdesign/inc/RptObject.hxx b/reportdesign/inc/RptObject.hxx index 44fa0a49c169..056a06c4a522 100644 --- a/reportdesign/inc/RptObject.hxx +++ b/reportdesign/inc/RptObject.hxx @@ -221,7 +221,7 @@ public: virtual sal_uInt16 GetObjIdentifier() const; virtual sal_uInt32 GetObjInventor() const; // Clone() soll eine komplette Kopie des Objektes erzeugen. - virtual SdrObject* Clone() const; + virtual OOle2Obj* Clone() const; virtual void initializeOle(); void initializeChart( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel>& _xModel); @@ -273,7 +273,7 @@ public: virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getUnoShape(); virtual sal_uInt16 GetObjIdentifier() const; virtual sal_uInt32 GetObjInventor() const; - virtual SdrObject* Clone() const; + virtual OUnoObject* Clone() const; private: void impl_setReportComponent_nothrow(); diff --git a/reportdesign/source/core/sdr/RptObject.cxx b/reportdesign/source/core/sdr/RptObject.cxx index 71e0246c8ab4..4969f740c7bb 100644 --- a/reportdesign/source/core/sdr/RptObject.cxx +++ b/reportdesign/source/core/sdr/RptObject.cxx @@ -942,9 +942,9 @@ uno::Reference< uno::XInterface > OUnoObject::getUnoShape() return OObjectBase::getUnoShapeOf( *this ); } // ----------------------------------------------------------------------------- -SdrObject* OUnoObject::Clone() const +OUnoObject* OUnoObject::Clone() const { - SdrObject* pClone = SdrUnoObj::Clone(); + OUnoObject* pClone = CloneHelper< OUnoObject >(); if ( pClone ) { Reference xSource(const_cast(this)->getUnoShape(),uno::UNO_QUERY); @@ -1130,9 +1130,9 @@ uno::Reference< chart2::data::XDatabaseDataProvider > lcl_getDataProvider(const } // ----------------------------------------------------------------------------- // Clone() soll eine komplette Kopie des Objektes erzeugen. -SdrObject* OOle2Obj::Clone() const +OOle2Obj* OOle2Obj::Clone() const { - OOle2Obj* pObj = static_cast(SdrOle2Obj::Clone()); + OOle2Obj* pObj = CloneHelper< OOle2Obj >(); OReportModel* pRptModel = static_cast(GetModel()); svt::EmbeddedObjectRef::TryRunningState( pObj->GetObjRef() ); pObj->impl_createDataProvider_nothrow(pRptModel->getReportDefinition().get()); -- cgit