summaryrefslogtreecommitdiff
path: root/reportdesign
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2011-03-25 17:27:08 +0100
committerLuboš Luňák <l.lunak@suse.cz>2011-03-25 17:27:08 +0100
commit4afa430c30483767440f61d11e9012e694019157 (patch)
tree38eb33a7b545935d35a8ee0dcaab88a6d4239d28 /reportdesign
parent63d665953fb95ae69d41f38afc9cd49922ed4ff2 (diff)
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.
Diffstat (limited to 'reportdesign')
-rw-r--r--reportdesign/inc/RptObject.hxx4
-rw-r--r--reportdesign/source/core/sdr/RptObject.cxx8
2 files changed, 6 insertions, 6 deletions
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<XPropertySet> xSource(const_cast<OUnoObject*>(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<OOle2Obj*>(SdrOle2Obj::Clone());
+ OOle2Obj* pObj = CloneHelper< OOle2Obj >();
OReportModel* pRptModel = static_cast<OReportModel*>(GetModel());
svt::EmbeddedObjectRef::TryRunningState( pObj->GetObjRef() );
pObj->impl_createDataProvider_nothrow(pRptModel->getReportDefinition().get());