summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2011-03-25 17:32:17 +0100
committerLuboš Luňák <l.lunak@suse.cz>2011-03-25 17:32:17 +0100
commit73813f23fd3dc708d3d4eeb553686f5d967b21dd (patch)
treeede4a27c7db858886f5a38f5915c6e47d4b8d9aa
parent5a07c019777e7fc26d89a650d5804408a29190fa (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.
-rw-r--r--basctl/source/dlged/dlgedobj.cxx15
-rw-r--r--basctl/source/inc/dlgedobj.hxx3
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