diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2011-03-25 17:32:17 +0100 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2011-03-25 17:32:17 +0100 |
commit | 73813f23fd3dc708d3d4eeb553686f5d967b21dd (patch) | |
tree | ede4a27c7db858886f5a38f5915c6e47d4b8d9aa /basctl | |
parent | 5a07c019777e7fc26d89a650d5804408a29190fa (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 'basctl')
-rw-r--r-- | basctl/source/dlged/dlgedobj.cxx | 15 | ||||
-rw-r--r-- | basctl/source/inc/dlgedobj.hxx | 3 |
2 files changed, 4 insertions, 14 deletions
diff --git a/basctl/source/dlged/dlgedobj.cxx b/basctl/source/dlged/dlgedobj.cxx index c2ab69331f2a..315b4a4b7c37 100644 --- a/basctl/source/dlged/dlgedobj.cxx +++ b/basctl/source/dlged/dlgedobj.cxx @@ -979,16 +979,14 @@ void DlgEdObj::clonedFrom(const DlgEdObj* _pSource) //---------------------------------------------------------------------------- -SdrObject* DlgEdObj::Clone() const +DlgEdObj* DlgEdObj::Clone() const { - SdrObject* pReturn = SdrUnoObj::Clone(); - - DlgEdObj* pDlgEdObj = PTR_CAST(DlgEdObj, pReturn); + DlgEdObj* pDlgEdObj = CloneHelper< DlgEdObj >(); DBG_ASSERT( pDlgEdObj != NULL, "DlgEdObj::Clone: invalid clone!" ); if ( pDlgEdObj ) pDlgEdObj->clonedFrom( this ); - return pReturn; + return pDlgEdObj; } //---------------------------------------------------------------------------- @@ -1005,13 +1003,6 @@ SdrObject* DlgEdObj::getFullDragClone() const //---------------------------------------------------------------------------- -void DlgEdObj::operator= (const SdrObject& rObj) -{ - SdrUnoObj::operator= (rObj); -} - -//---------------------------------------------------------------------------- - void DlgEdObj::NbcMove( const Size& rSize ) { SdrUnoObj::NbcMove( rSize ); diff --git a/basctl/source/inc/dlgedobj.hxx b/basctl/source/inc/dlgedobj.hxx index ab8dbf3fa10e..cbb6b6b67b26 100644 --- a/basctl/source/inc/dlgedobj.hxx +++ b/basctl/source/inc/dlgedobj.hxx @@ -104,8 +104,7 @@ public: virtual sal_uInt32 GetObjInventor() const; virtual sal_uInt16 GetObjIdentifier() const; - virtual SdrObject* Clone() const; // not working yet - virtual void operator= (const SdrObject& rObj); // not working yet + virtual DlgEdObj* Clone() const; // not working yet virtual void clonedFrom(const DlgEdObj* _pSource); // not working yet // FullDrag support |