[Libreoffice-commits] .: basctl/source

Lubos Lunak llunak at kemper.freedesktop.org
Fri Mar 25 09:40:11 PDT 2011


 basctl/source/dlged/dlgedobj.cxx |   15 +++------------
 basctl/source/inc/dlgedobj.hxx   |    3 +--
 2 files changed, 4 insertions(+), 14 deletions(-)

New commits:
commit 4804f9b778bcebda23637f3fd27b508d2d4a0331
Author: Luboš Luňák <l.lunak at suse.cz>
Date:   Fri Mar 25 17:32:17 2011 +0100

    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.

diff --git a/basctl/source/dlged/dlgedobj.cxx b/basctl/source/dlged/dlgedobj.cxx
index d1607fc..52adc03 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 bb85f7a..8cf86eb 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


More information about the Libreoffice-commits mailing list