chart2/inc/ChartModel.hxx                                     |    7 +-
 chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx |    6 +
 chart2/source/inc/ChartModelHelper.hxx                        |    3 
 chart2/source/inc/UncachedDataSequence.hxx                    |   13 ++-
 chart2/source/model/main/ChartModel.cxx                       |   35 ++++------
 chart2/source/tools/ChartModelHelper.cxx                      |    2 
 chart2/source/tools/UncachedDataSequence.cxx                  |    5 -
 7 files changed, 37 insertions(+), 34 deletions(-)

New commits:
commit c6b8383e90c56efec87110f5303e64351aba9a1b
Author:     Noel Grandin <[email protected]>
AuthorDate: Wed Jan 19 19:52:39 2022 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Wed Jan 19 20:55:07 2022 +0100

    use more concrete types in chart2, SvNumberFormatsSupplierObj
    
    Change-Id: I15bb69bab11e374db2bfa2b964ba820063f01cda
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128631
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/chart2/inc/ChartModel.hxx b/chart2/inc/ChartModel.hxx
index 2040c12b7513..cad6f0422a72 100644
--- a/chart2/inc/ChartModel.hxx
+++ b/chart2/inc/ChartModel.hxx
@@ -66,6 +66,7 @@ namespace com::sun::star::uno { class XComponentContext; }
 namespace com::sun::star::uno { class XAggregation; }
 
 class SvNumberFormatter;
+class SvNumberFormatsSupplierObj;
 
 namespace chart
 {
@@ -153,8 +154,7 @@ private:
     */
     rtl::Reference< InternalDataProvider > m_xInternalDataProvider;
 
-    css::uno::Reference< css::util::XNumberFormatsSupplier >
-                                m_xOwnNumberFormatsSupplier;
+    rtl::Reference< SvNumberFormatsSupplierObj > m_xOwnNumberFormatsSupplier;
     css::uno::Reference< css::util::XNumberFormatsSupplier >
                                 m_xNumberFormatsSupplier;
     std::unique_ptr< SvNumberFormatter > m_apSvNumberFormatter; // #i113784# 
avoid memory leak
diff --git a/chart2/source/model/main/ChartModel.cxx 
b/chart2/source/model/main/ChartModel.cxx
index 66248107227c..95aaf733233c 100644
--- a/chart2/source/model/main/ChartModel.cxx
+++ b/chart2/source/model/main/ChartModel.cxx
@@ -540,7 +540,7 @@ void SAL_CALL ChartModel::dispose()
     m_xDataProvider.clear();
     m_xInternalDataProvider.clear();
     m_xNumberFormatsSupplier.clear();
-    DisposeHelper::DisposeAndClear( m_xOwnNumberFormatsSupplier );
+    m_xOwnNumberFormatsSupplier.clear();
     m_xChartTypeManager.clear();
     m_xDiagram.clear();
     DisposeHelper::DisposeAndClear( m_xTitle );
@@ -800,9 +800,9 @@ void SAL_CALL ChartModel::attachNumberFormatsSupplier( 
const uno::Reference< uti
 {
     {
         MutexGuard aGuard( m_aModelMutex );
-        if( xNewSupplier==m_xNumberFormatsSupplier )
+        if( xNewSupplier == m_xNumberFormatsSupplier )
             return;
-        if( xNewSupplier==m_xOwnNumberFormatsSupplier )
+        if( xNewSupplier == 
uno::Reference<XNumberFormatsSupplier>(m_xOwnNumberFormatsSupplier) )
             return;
         if( m_xOwnNumberFormatsSupplier.is() && xNewSupplier.is() )
         {
commit 79a2b786d3c39a4a756fb13778e437a20758caf8
Author:     Noel Grandin <[email protected]>
AuthorDate: Wed Jan 19 19:12:37 2022 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Wed Jan 19 20:54:52 2022 +0100

    use more concrete types in chart2, InternalDataProvider
    
    Change-Id: Iee2cc56b00f0464e652a14eace2640e5d798eb5f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128629
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/chart2/inc/ChartModel.hxx b/chart2/inc/ChartModel.hxx
index e1bba2124dbe..2040c12b7513 100644
--- a/chart2/inc/ChartModel.hxx
+++ b/chart2/inc/ChartModel.hxx
@@ -71,6 +71,7 @@ namespace chart
 {
 class Diagram;
 class ChartTypeManager;
+class InternalDataProvider;
 class NameContainer;
 class PageBackground;
 
@@ -150,7 +151,7 @@ private:
     /** is only valid if m_xDataProvider is set. If m_xDataProvider is set to 
an
         external data provider this reference must be set to 0
     */
-    css::uno::Reference< css::chart2::data::XDataProvider >   
m_xInternalDataProvider;
+    rtl::Reference< InternalDataProvider > m_xInternalDataProvider;
 
     css::uno::Reference< css::util::XNumberFormatsSupplier >
                                 m_xOwnNumberFormatsSupplier;
diff --git a/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx 
b/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx
index 32bee8d42c50..3b0a56818e77 100644
--- a/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx
+++ b/chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx
@@ -21,6 +21,7 @@
 #include <DiagramHelper.hxx>
 #include <DataSourceHelper.hxx>
 #include <ChartModelHelper.hxx>
+#include <InternalDataProvider.hxx>
 #include <ControllerLockGuard.hxx>
 #include "Chart2ModelContact.hxx"
 #include <cppuhelper/supportsservice.hxx>
@@ -589,8 +590,9 @@ void ChartDataWrapper::initDataAccess()
     else
     {
         //create a separate "internal data provider" that is not connected to 
the model
-        m_xDataAccess.set( ChartModelHelper::createInternalDataProvider(
-            xChartDoc, false /*bConnectToModel*/ ), uno::UNO_QUERY_THROW );
+        auto xInternal = ChartModelHelper::createInternalDataProvider(
+            xChartDoc, false /*bConnectToModel*/ );
+        m_xDataAccess.set( static_cast<cppu::OWeakObject*>(xInternal.get()), 
uno::UNO_QUERY_THROW );
     }
 }
 
diff --git a/chart2/source/inc/ChartModelHelper.hxx 
b/chart2/source/inc/ChartModelHelper.hxx
index 5a17e2971d05..024c366ea265 100644
--- a/chart2/source/inc/ChartModelHelper.hxx
+++ b/chart2/source/inc/ChartModelHelper.hxx
@@ -39,6 +39,7 @@ namespace chart
 {
 class BaseCoordinateSystem;
 class Diagram;
+class InternalDataProvider;
 
 class OOO_DLLPUBLIC_CHARTTOOLS ChartModelHelper
 {
@@ -46,7 +47,7 @@ public:
     static css::uno::Reference< css::chart2::data::XRangeHighlighter > 
createRangeHighlighter(
             const css::uno::Reference< css::view::XSelectionSupplier >& 
xSelectionSupplier );
 
-    static css::uno::Reference< css::chart2::data::XDataProvider > 
createInternalDataProvider(
+    static rtl::Reference< InternalDataProvider > createInternalDataProvider(
             const css::uno::Reference< css::chart2::XChartDocument >& 
xChartDoc, bool bConnectToModel );
 
     static rtl::Reference< Diagram >
diff --git a/chart2/source/inc/UncachedDataSequence.hxx 
b/chart2/source/inc/UncachedDataSequence.hxx
index cf96920efda2..e3a51f55727a 100644
--- a/chart2/source/inc/UncachedDataSequence.hxx
+++ b/chart2/source/inc/UncachedDataSequence.hxx
@@ -24,6 +24,7 @@
 #include <comphelper/broadcasthelper.hxx>
 #include <comphelper/propertycontainer.hxx>
 #include <comphelper/proparrhlp.hxx>
+#include <rtl/ref.hxx>
 
 // interfaces and types
 #include <com/sun/star/lang/XServiceInfo.hpp>
@@ -40,6 +41,7 @@ namespace com::sun::star::chart2 { class 
XInternalDataProvider; }
 
 namespace chart
 {
+class InternalDataProvider;
 
 namespace impl
 {
@@ -76,10 +78,10 @@ public:
         lifetime is at least as long as the one of this object.
      */
     UncachedDataSequence(
-        const css::uno::Reference< css::chart2::XInternalDataProvider > & 
xIntDataProv,
+        const rtl::Reference< InternalDataProvider > & xIntDataProv,
         const OUString & rRangeRepresentation );
     UncachedDataSequence(
-        const css::uno::Reference< css::chart2::XInternalDataProvider > & 
xIntDataProv,
+        const rtl::Reference< InternalDataProvider > & xIntDataProv,
         const OUString & rRangeRepresentation,
         const OUString & rRole );
     UncachedDataSequence( const UncachedDataSequence & rSource );
@@ -160,10 +162,9 @@ private:
      */
     void registerProperties();
 
-    css::uno::Reference< css::chart2::XInternalDataProvider > m_xDataProvider;
-    OUString                 m_aSourceRepresentation;
-    css::uno::Reference< css::util::XModifyListener >
-        m_xModifyEventForwarder;
+    rtl::Reference< InternalDataProvider > m_xDataProvider;
+    OUString m_aSourceRepresentation;
+    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
 };
 
 }  // namespace chart
diff --git a/chart2/source/model/main/ChartModel.cxx 
b/chart2/source/model/main/ChartModel.cxx
index 00aee342a50d..66248107227c 100644
--- a/chart2/source/model/main/ChartModel.cxx
+++ b/chart2/source/model/main/ChartModel.cxx
@@ -24,6 +24,7 @@
 #include <ChartModelHelper.hxx>
 #include <DisposeHelper.hxx>
 #include <ControllerLockGuard.hxx>
+#include <InternalDataProvider.hxx>
 #include <ObjectIdentifier.hxx>
 #include "PageBackground.hxx"
 #include <CloneHelper.hxx>
@@ -695,24 +696,20 @@ Reference< chart2::data::XDataSource > 
ChartModel::impl_createDefaultData()
     Reference< chart2::data::XDataSource > xDataSource;
     if( hasInternalDataProvider() )
     {
-        uno::Reference< lang::XInitialization > 
xIni(m_xInternalDataProvider,uno::UNO_QUERY);
-        if( xIni.is() )
+        //init internal dataprovider
         {
-            //init internal dataprovider
-            {
-                beans::NamedValue aParam( "CreateDefaultData" ,uno::Any(true) 
);
-                uno::Sequence< uno::Any > aArgs{ uno::Any(aParam) };
-                xIni->initialize(aArgs);
-            }
-            //create data
-            uno::Sequence<beans::PropertyValue> aArgs( 
comphelper::InitPropertySequence({
-                { "CellRangeRepresentation", uno::Any( OUString("all") ) },
-                { "HasCategories", uno::Any( true ) },
-                { "FirstCellAsLabel", uno::Any( true ) },
-                { "DataRowSource", uno::Any( 
css::chart::ChartDataRowSource_COLUMNS ) }
-                }));
-            xDataSource = m_xInternalDataProvider->createDataSource( aArgs );
+            beans::NamedValue aParam( "CreateDefaultData" ,uno::Any(true) );
+            uno::Sequence< uno::Any > aArgs{ uno::Any(aParam) };
+            m_xInternalDataProvider->initialize(aArgs);
         }
+        //create data
+        uno::Sequence<beans::PropertyValue> aArgs( 
comphelper::InitPropertySequence({
+            { "CellRangeRepresentation", uno::Any( OUString("all") ) },
+            { "HasCategories", uno::Any( true ) },
+            { "FirstCellAsLabel", uno::Any( true ) },
+            { "DataRowSource", uno::Any( 
css::chart::ChartDataRowSource_COLUMNS ) }
+            }));
+        xDataSource = m_xInternalDataProvider->createDataSource( aArgs );
     }
     return xDataSource;
 }
diff --git a/chart2/source/tools/ChartModelHelper.cxx 
b/chart2/source/tools/ChartModelHelper.cxx
index fc442b8030e3..0114849536df 100644
--- a/chart2/source/tools/ChartModelHelper.cxx
+++ b/chart2/source/tools/ChartModelHelper.cxx
@@ -48,7 +48,7 @@ uno::Reference< chart2::data::XRangeHighlighter > 
ChartModelHelper::createRangeH
     return new RangeHighlighter( xSelectionSupplier );
 }
 
-uno::Reference< chart2::data::XDataProvider > 
ChartModelHelper::createInternalDataProvider(
+rtl::Reference< InternalDataProvider > 
ChartModelHelper::createInternalDataProvider(
     const uno::Reference< css::chart2::XChartDocument >& xChartDoc, bool 
bConnectToModel )
 {
     bool bDefaultDataInColumns(true);
diff --git a/chart2/source/tools/UncachedDataSequence.cxx 
b/chart2/source/tools/UncachedDataSequence.cxx
index 343cf5092346..fa069a631870 100644
--- a/chart2/source/tools/UncachedDataSequence.cxx
+++ b/chart2/source/tools/UncachedDataSequence.cxx
@@ -20,6 +20,7 @@
 #include <UncachedDataSequence.hxx>
 #include <CommonFunctors.hxx>
 #include <ModifyListenerHelper.hxx>
+#include <InternalDataProvider.hxx>
 
 #include <cppuhelper/supportsservice.hxx>
 #include <algorithm>
@@ -55,7 +56,7 @@ namespace chart
 {
 
 UncachedDataSequence::UncachedDataSequence(
-    const Reference< chart2::XInternalDataProvider > & xIntDataProv,
+    const rtl::Reference< InternalDataProvider > & xIntDataProv,
     const OUString & rRangeRepresentation )
         : OPropertyContainer( GetBroadcastHelper()),
           UncachedDataSequence_Base( GetMutex()),
@@ -68,7 +69,7 @@ UncachedDataSequence::UncachedDataSequence(
 }
 
 UncachedDataSequence::UncachedDataSequence(
-    const Reference< chart2::XInternalDataProvider > & xIntDataProv,
+    const rtl::Reference< InternalDataProvider > & xIntDataProv,
     const OUString & rRangeRepresentation,
     const OUString & rRole )
         : OPropertyContainer( GetBroadcastHelper()),

Reply via email to