Kaydet (Commit) 4afa430c authored tarafından Luboš Luňák's avatar Luboš Luňák

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.
üst 63d66595
...@@ -221,7 +221,7 @@ public: ...@@ -221,7 +221,7 @@ public:
virtual sal_uInt16 GetObjIdentifier() const; virtual sal_uInt16 GetObjIdentifier() const;
virtual sal_uInt32 GetObjInventor() const; virtual sal_uInt32 GetObjInventor() const;
// Clone() soll eine komplette Kopie des Objektes erzeugen. // Clone() soll eine komplette Kopie des Objektes erzeugen.
virtual SdrObject* Clone() const; virtual OOle2Obj* Clone() const;
virtual void initializeOle(); virtual void initializeOle();
void initializeChart( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel>& _xModel); void initializeChart( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel>& _xModel);
...@@ -273,7 +273,7 @@ public: ...@@ -273,7 +273,7 @@ public:
virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getUnoShape(); virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getUnoShape();
virtual sal_uInt16 GetObjIdentifier() const; virtual sal_uInt16 GetObjIdentifier() const;
virtual sal_uInt32 GetObjInventor() const; virtual sal_uInt32 GetObjInventor() const;
virtual SdrObject* Clone() const; virtual OUnoObject* Clone() const;
private: private:
void impl_setReportComponent_nothrow(); void impl_setReportComponent_nothrow();
......
...@@ -942,9 +942,9 @@ uno::Reference< uno::XInterface > OUnoObject::getUnoShape() ...@@ -942,9 +942,9 @@ uno::Reference< uno::XInterface > OUnoObject::getUnoShape()
return OObjectBase::getUnoShapeOf( *this ); return OObjectBase::getUnoShapeOf( *this );
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
SdrObject* OUnoObject::Clone() const OUnoObject* OUnoObject::Clone() const
{ {
SdrObject* pClone = SdrUnoObj::Clone(); OUnoObject* pClone = CloneHelper< OUnoObject >();
if ( pClone ) if ( pClone )
{ {
Reference<XPropertySet> xSource(const_cast<OUnoObject*>(this)->getUnoShape(),uno::UNO_QUERY); Reference<XPropertySet> xSource(const_cast<OUnoObject*>(this)->getUnoShape(),uno::UNO_QUERY);
...@@ -1130,9 +1130,9 @@ uno::Reference< chart2::data::XDatabaseDataProvider > lcl_getDataProvider(const ...@@ -1130,9 +1130,9 @@ uno::Reference< chart2::data::XDatabaseDataProvider > lcl_getDataProvider(const
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// Clone() soll eine komplette Kopie des Objektes erzeugen. // Clone() soll eine komplette Kopie des Objektes erzeugen.
SdrObject* OOle2Obj::Clone() const OOle2Obj* OOle2Obj::Clone() const
{ {
OOle2Obj* pObj = static_cast<OOle2Obj*>(SdrOle2Obj::Clone()); OOle2Obj* pObj = CloneHelper< OOle2Obj >();
OReportModel* pRptModel = static_cast<OReportModel*>(GetModel()); OReportModel* pRptModel = static_cast<OReportModel*>(GetModel());
svt::EmbeddedObjectRef::TryRunningState( pObj->GetObjRef() ); svt::EmbeddedObjectRef::TryRunningState( pObj->GetObjRef() );
pObj->impl_createDataProvider_nothrow(pRptModel->getReportDefinition().get()); pObj->impl_createDataProvider_nothrow(pRptModel->getReportDefinition().get());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment