chart2/source/inc/InternalDataProvider.hxx   |    3 ++-
 chart2/source/tools/InternalDataProvider.cxx |   16 ++++++----------
 2 files changed, 8 insertions(+), 11 deletions(-)

New commits:
commit 642e98613ad4479f7601ea8cec78754546f563d1
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Thu Jan 27 18:19:44 2022 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Fri Jan 28 20:56:19 2022 +0100

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

diff --git a/chart2/source/inc/InternalDataProvider.hxx 
b/chart2/source/inc/InternalDataProvider.hxx
index 0fa2bdf8b855..a5032efcdab8 100644
--- a/chart2/source/inc/InternalDataProvider.hxx
+++ b/chart2/source/inc/InternalDataProvider.hxx
@@ -37,6 +37,7 @@ namespace com::sun::star::chart2 { class XChartDocument; }
 
 namespace chart
 {
+class ChartModel;
 class UncachedDataSequence;
 
 namespace impl
@@ -72,7 +73,7 @@ public:
     // #i120559# allow handing over a default for data orientation
     // (DataInColumns) that will be used when no data is available
     explicit InternalDataProvider(
-        const css::uno::Reference< css::chart2::XChartDocument > & xChartDoc,
+        const rtl::Reference< ::chart::ChartModel > & xChartDoc,
         bool bConnectToModel,
         bool bDefaultDataInColumns );
     explicit InternalDataProvider( const InternalDataProvider & rOther );
diff --git a/chart2/source/tools/InternalDataProvider.cxx 
b/chart2/source/tools/InternalDataProvider.cxx
index 7a2fdb3aed84..696611e80fa3 100644
--- a/chart2/source/tools/InternalDataProvider.cxx
+++ b/chart2/source/tools/InternalDataProvider.cxx
@@ -309,22 +309,18 @@ InternalDataProvider::InternalDataProvider()
 {}
 
 InternalDataProvider::InternalDataProvider(
-    const Reference< chart2::XChartDocument > & xChartDoc,
+    const rtl::Reference< ChartModel > & xModel,
     bool bConnectToModel,
     bool bDefaultDataInColumns)
 :   m_bDataInColumns( bDefaultDataInColumns )
 {
-    if (!xChartDoc.is())
+    if (!xModel.is())
         return;
     try
     {
-        auto pModel = dynamic_cast<ChartModel*>(xChartDoc.get());
-        assert(pModel);
-        rtl::Reference< Diagram > xDiagram( ChartModelHelper::findDiagram( 
pModel ) );
+        rtl::Reference< Diagram > xDiagram( ChartModelHelper::findDiagram( 
xModel ) );
         if( xDiagram.is())
         {
-            Reference< frame::XModel > xChartModel = xChartDoc;
-
             //data in columns?
             {
                 OUString aRangeString;
@@ -333,7 +329,7 @@ InternalDataProvider::InternalDataProvider(
                 uno::Sequence< sal_Int32 > aSequenceMapping;
                 const bool bSomethingDetected(
                     DataSourceHelper::detectRangeSegmentation(
-                        pModel, aRangeString, aSequenceMapping, 
m_bDataInColumns, bFirstCellAsLabel, bHasCategories ));
+                        xModel, aRangeString, aSequenceMapping, 
m_bDataInColumns, bFirstCellAsLabel, bHasCategories ));
 
                 // #i120559# if no data was available, restore default
                 if(!bSomethingDetected && m_bDataInColumns != 
bDefaultDataInColumns)
@@ -346,7 +342,7 @@ InternalDataProvider::InternalDataProvider(
             {
                 vector< vector< uno::Any > > aNewCategories;//inner count is 
level
                 {
-                    ExplicitCategoriesProvider 
aExplicitCategoriesProvider(ChartModelHelper::getFirstCoordinateSystem(pModel), 
*pModel);
+                    ExplicitCategoriesProvider 
aExplicitCategoriesProvider(ChartModelHelper::getFirstCoordinateSystem(xModel), 
*xModel);
 
                     const Sequence< Reference< 
chart2::data::XLabeledDataSequence> >& rSplitCategoriesList( 
aExplicitCategoriesProvider.getSplitCategoriesList() );
                     sal_Int32 nLevelCount = rSplitCategoriesList.getLength();
@@ -390,7 +386,7 @@ InternalDataProvider::InternalDataProvider(
             }
 
             // data series
-            std::vector< Reference< chart2::XDataSeries > > aSeriesVector( 
ChartModelHelper::getDataSeries( pModel ));
+            std::vector< Reference< chart2::XDataSeries > > aSeriesVector( 
ChartModelHelper::getDataSeries( xModel ));
             lcl_internalizeSeries ftor( m_aInternalData, *this, 
bConnectToModel, m_bDataInColumns );
             for( const auto& rxScreen : aSeriesVector )
                 ftor( rxScreen );

Reply via email to