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.
This commit is contained in:
@@ -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 );
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user