chart2/source/inc/Diagram.hxx        |    7 +++----
 chart2/source/model/main/Diagram.cxx |   26 ++++++++++++++++----------
 chart2/source/model/main/Wall.hxx    |    2 +-
 3 files changed, 20 insertions(+), 15 deletions(-)

New commits:
commit 96878d682cb298173cfc649271f0e92fc9f62dd4
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Wed Jan 19 13:23:59 2022 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Wed Jan 19 15:00:31 2022 +0100

    use more concrete types in chart2, Diagram
    
    Change-Id: Id21836b1258b8757e634fc9ab670ef1180748469
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128612
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/chart2/source/inc/Diagram.hxx b/chart2/source/inc/Diagram.hxx
index 0235d52853c6..256a2c24ca6d 100644
--- a/chart2/source/inc/Diagram.hxx
+++ b/chart2/source/inc/Diagram.hxx
@@ -39,6 +39,7 @@ namespace com::sun::star::uno { class XComponentContext; }
 
 namespace chart
 {
+class Wall;
 
 namespace impl
 {
@@ -160,11 +161,9 @@ private:
 
     tCoordinateSystemContainerType m_aCoordSystems;
 
-    css::uno::Reference< css::beans::XPropertySet >
-                        m_xWall;
+    rtl::Reference< Wall >  m_xWall;
 
-    css::uno::Reference< css::beans::XPropertySet >
-                        m_xFloor;
+    rtl::Reference< Wall >  m_xFloor;
 
     css::uno::Reference< css::chart2::XTitle >
                         m_xTitle;
diff --git a/chart2/source/model/main/Diagram.cxx 
b/chart2/source/model/main/Diagram.cxx
index c813831ef465..15082ccf42c2 100644
--- a/chart2/source/model/main/Diagram.cxx
+++ b/chart2/source/model/main/Diagram.cxx
@@ -277,13 +277,17 @@ Diagram::Diagram( const Diagram & rOther ) :
     lcl_CloneCoordinateSystems( rOther.m_aCoordSystems, m_aCoordSystems );
     ModifyListenerHelper::addListenerToAllElements( m_aCoordSystems, 
m_xModifyEventForwarder );
 
-    m_xWall.set( CloneHelper::CreateRefClone< beans::XPropertySet >()( 
rOther.m_xWall ));
-    m_xFloor.set( CloneHelper::CreateRefClone< beans::XPropertySet >()( 
rOther.m_xFloor ));
+    if ( rOther.m_xWall )
+        m_xWall = new Wall( *rOther.m_xWall );
+    if ( rOther.m_xFloor )
+        m_xFloor = new Wall( *rOther.m_xFloor );
     m_xTitle.set( CloneHelper::CreateRefClone< chart2::XTitle >()( 
rOther.m_xTitle ));
     m_xLegend.set( CloneHelper::CreateRefClone< chart2::XLegend >()( 
rOther.m_xLegend ));
 
-    ModifyListenerHelper::addListener( m_xWall, m_xModifyEventForwarder );
-    ModifyListenerHelper::addListener( m_xFloor, m_xModifyEventForwarder );
+    if ( m_xWall )
+        m_xWall->addModifyListener( m_xModifyEventForwarder );
+    if ( m_xFloor )
+        m_xFloor->addModifyListener( m_xModifyEventForwarder );
     ModifyListenerHelper::addListener( m_xTitle, m_xModifyEventForwarder );
     ModifyListenerHelper::addListener( m_xLegend, m_xModifyEventForwarder );
 }
@@ -294,8 +298,10 @@ Diagram::~Diagram()
     {
         ModifyListenerHelper::removeListenerFromAllElements( m_aCoordSystems, 
m_xModifyEventForwarder );
 
-        ModifyListenerHelper::removeListener( m_xWall, m_xModifyEventForwarder 
);
-        ModifyListenerHelper::removeListener( m_xFloor, 
m_xModifyEventForwarder );
+        if ( m_xWall )
+            m_xWall->removeModifyListener( m_xModifyEventForwarder );
+        if ( m_xFloor )
+            m_xFloor->removeModifyListener( m_xModifyEventForwarder );
         ModifyListenerHelper::removeListener( m_xTitle, 
m_xModifyEventForwarder );
         ModifyListenerHelper::removeListener( m_xLegend, 
m_xModifyEventForwarder );
     }
@@ -308,7 +314,7 @@ Diagram::~Diagram()
 // ____ XDiagram ____
 uno::Reference< beans::XPropertySet > SAL_CALL Diagram::getWall()
 {
-    uno::Reference< beans::XPropertySet > xRet;
+    rtl::Reference< Wall > xRet;
     bool bAddListener = false;
     {
         MutexGuard aGuard( m_aMutex );
@@ -320,13 +326,13 @@ uno::Reference< beans::XPropertySet > SAL_CALL 
Diagram::getWall()
         xRet =  m_xWall;
     }
     if(bAddListener)
-        ModifyListenerHelper::addListener( xRet, m_xModifyEventForwarder );
+        xRet->addModifyListener( m_xModifyEventForwarder );
     return xRet;
 }
 
 uno::Reference< beans::XPropertySet > SAL_CALL Diagram::getFloor()
 {
-    uno::Reference< beans::XPropertySet > xRet;
+    rtl::Reference< Wall > xRet;
     bool bAddListener = false;
     {
         MutexGuard aGuard( m_aMutex );
@@ -338,7 +344,7 @@ uno::Reference< beans::XPropertySet > SAL_CALL 
Diagram::getFloor()
         xRet = m_xFloor;
     }
     if(bAddListener)
-        ModifyListenerHelper::addListener( xRet, m_xModifyEventForwarder );
+        xRet->addModifyListener( m_xModifyEventForwarder );
     return xRet;
 }
 
diff --git a/chart2/source/model/main/Wall.hxx 
b/chart2/source/model/main/Wall.hxx
index 916be997bef5..ddec92b6c876 100644
--- a/chart2/source/model/main/Wall.hxx
+++ b/chart2/source/model/main/Wall.hxx
@@ -50,7 +50,6 @@ public:
     /// merge XInterface implementations
      DECLARE_XINTERFACE()
 
-private:
     explicit Wall( const Wall & rOther );
 
     // ____ OPropertySet ____
@@ -72,6 +71,7 @@ private:
     virtual void SAL_CALL removeModifyListener(
         const css::uno::Reference< css::util::XModifyListener >& aListener ) 
override;
 
+private:
     // ____ XModifyListener ____
     virtual void SAL_CALL modified(
         const css::lang::EventObject& aEvent ) override;

Reply via email to