diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2022-01-23 16:17:20 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-01-23 20:19:56 +0100 |
commit | b274c175a2f57cc414ccff127a2199692fc3b3b4 (patch) | |
tree | 998bd87610928659c0cb5037b21eb1a5f7a772f5 | |
parent | 218acb48df79101392c2cc3a030ddb5dcee878c7 (diff) |
use more concrete types in chart2, Diagram
Change-Id: I78b0e12e469ff17974b6ba176336d1a5f39afce5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128827
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
18 files changed, 58 insertions, 75 deletions
diff --git a/chart2/source/inc/ChartTypeTemplate.hxx b/chart2/source/inc/ChartTypeTemplate.hxx index 665b2709984c..2bcd1f256515 100644 --- a/chart2/source/inc/ChartTypeTemplate.hxx +++ b/chart2/source/inc/ChartTypeTemplate.hxx @@ -93,14 +93,13 @@ public: OOO_DLLPUBLIC_CHARTTOOLS void changeDiagram( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram ); + const rtl::Reference< ::chart::Diagram >& xDiagram ); void changeDiagramData( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, const css::uno::Reference< css::chart2::data::XDataSource >& xDataSource, const css::uno::Sequence< css::beans::PropertyValue >& aArguments ); virtual bool matchesTemplate( - const css::uno::Reference< - css::chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ); virtual rtl::Reference< ::chart::ChartType > getChartTypeForNewSeries( const std::vector< diff --git a/chart2/source/model/main/ChartModel_Persistence.cxx b/chart2/source/model/main/ChartModel_Persistence.cxx index 7d891996d9b5..a9eb264292c3 100644 --- a/chart2/source/model/main/ChartModel_Persistence.cxx +++ b/chart2/source/model/main/ChartModel_Persistence.cxx @@ -728,7 +728,7 @@ void SAL_CALL ChartModel::modified( const lang::EventObject& rEvenObject) Reference<chart2::data::XDataSource> xDataSource(xDataProvider->createDataSource(aArguments)); rtl::Reference< ::chart::ChartTypeManager > xChartTypeManager = getTypeManager(); - Reference<chart2::XDiagram> xDiagram(getFirstDiagram()); + rtl::Reference<Diagram> xDiagram(getFirstChartDiagram()); DiagramHelper::tTemplateWithServiceName aTemplateAndService = DiagramHelper::getTemplateForDiagram(xDiagram, xChartTypeManager); aTemplateAndService.xChartTypeTemplate->changeDiagramData(xDiagram, xDataSource, aArguments); diff --git a/chart2/source/model/template/BarChartTypeTemplate.cxx b/chart2/source/model/template/BarChartTypeTemplate.cxx index 84d1f06a5cbe..266c07434319 100644 --- a/chart2/source/model/template/BarChartTypeTemplate.cxx +++ b/chart2/source/model/template/BarChartTypeTemplate.cxx @@ -19,6 +19,7 @@ #include "BarChartTypeTemplate.hxx" #include "ColumnChartType.hxx" +#include <Diagram.hxx> #include <DiagramHelper.hxx> #include <servicenames_charttypes.hxx> #include <DataSeriesHelper.hxx> @@ -165,7 +166,7 @@ bool BarChartTypeTemplate::isSwapXAndY() const // ____ ChartTypeTemplate ____ bool BarChartTypeTemplate::matchesTemplate( - const Reference< chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) { bool bResult = ChartTypeTemplate::matchesTemplate( xDiagram, bAdaptProperties ); diff --git a/chart2/source/model/template/BarChartTypeTemplate.hxx b/chart2/source/model/template/BarChartTypeTemplate.hxx index fc12eb94b685..4364743082fe 100644 --- a/chart2/source/model/template/BarChartTypeTemplate.hxx +++ b/chart2/source/model/template/BarChartTypeTemplate.hxx @@ -64,7 +64,7 @@ protected: // ____ ChartTypeTemplate ____ virtual bool matchesTemplate( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) override; virtual rtl::Reference< ::chart::ChartType > getChartTypeForNewSeries( const std::vector< diff --git a/chart2/source/model/template/ChartTypeTemplate.cxx b/chart2/source/model/template/ChartTypeTemplate.cxx index cabeedb76304..a2451a430b3d 100644 --- a/chart2/source/model/template/ChartTypeTemplate.cxx +++ b/chart2/source/model/template/ChartTypeTemplate.cxx @@ -27,6 +27,7 @@ #include <Diagram.hxx> #include <DiagramHelper.hxx> #include <AxisIndexDefines.hxx> +#include <BaseCoordinateSystem.hxx> #include <unonames.hxx> #include <com/sun/star/uno/XComponentContext.hpp> @@ -177,7 +178,7 @@ bool ChartTypeTemplate::supportsCategories() return true; } -void ChartTypeTemplate::changeDiagram( const uno::Reference< XDiagram >& xDiagram ) +void ChartTypeTemplate::changeDiagram( const rtl::Reference< Diagram >& xDiagram ) { if( ! xDiagram.is()) return; @@ -228,18 +229,9 @@ void ChartTypeTemplate::changeDiagram( const uno::Reference< XDiagram >& xDiagra std::vector< rtl::Reference< ChartType > > aOldChartTypesSeq = DiagramHelper::getChartTypesFromDiagram(xDiagram); - Reference< XCoordinateSystemContainer > xCoordSysCnt( xDiagram, uno::UNO_QUERY ); - OSL_ASSERT( xCoordSysCnt.is()); - if( xCoordSysCnt.is()) + for( rtl::Reference< BaseCoordinateSystem > const & coords : xDiagram->getBaseCoordinateSystems() ) { - const Sequence< Reference< XCoordinateSystem > > aCooSysSeq( - xCoordSysCnt->getCoordinateSystems()); - for( Reference< XCoordinateSystem > const & coords : aCooSysSeq ) - { - Reference< XChartTypeContainer > xContainer( coords, uno::UNO_QUERY ); - if( xContainer.is() ) - xContainer->setChartTypes( Sequence< Reference< XChartType > >() ); - } + coords->setChartTypes( Sequence< Reference< XChartType > >() ); } FillDiagram( xDiagram, aSeriesSeq, aData.Categories, aOldChartTypesSeq ); @@ -251,7 +243,7 @@ void ChartTypeTemplate::changeDiagram( const uno::Reference< XDiagram >& xDiagra } void ChartTypeTemplate::changeDiagramData( - const Reference< chart2::XDiagram >& xDiagram, + const rtl::Reference< Diagram >& xDiagram, const Reference< chart2::data::XDataSource >& xDataSource, const Sequence< beans::PropertyValue >& aArguments ) { @@ -301,7 +293,7 @@ void ChartTypeTemplate::changeDiagramData( } bool ChartTypeTemplate::matchesTemplate( - const Reference< chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool /* bAdaptProperties */ ) { bool bResult = false; @@ -311,13 +303,11 @@ bool ChartTypeTemplate::matchesTemplate( try { - Reference< XCoordinateSystemContainer > xCooSysCnt( - xDiagram, uno::UNO_QUERY_THROW ); - Sequence< Reference< XCoordinateSystem > > aCooSysSeq( - xCooSysCnt->getCoordinateSystems()); + const std::vector< rtl::Reference< BaseCoordinateSystem > > & aCooSysSeq( + xDiagram->getBaseCoordinateSystems()); // need to have at least one coordinate system - bResult = aCooSysSeq.hasElements(); + bResult = !aCooSysSeq.empty(); if( bResult ) { std::vector< rtl::Reference< ChartType > > aFormerlyUsedChartTypes; @@ -327,18 +317,14 @@ bool ChartTypeTemplate::matchesTemplate( const OUString aChartTypeToMatch = xOldCT->getChartType(); const sal_Int32 nDimensionToMatch = getDimension(); - for( sal_Int32 nCooSysIdx=0; bResult && (nCooSysIdx < aCooSysSeq.getLength()); ++nCooSysIdx ) + for( sal_Int32 nCooSysIdx=0; bResult && (nCooSysIdx < static_cast<sal_Int32>(aCooSysSeq.size())); ++nCooSysIdx ) { // match dimension bResult = bResult && (aCooSysSeq[nCooSysIdx]->getDimension() == nDimensionToMatch); - Reference< XChartTypeContainer > xCTCnt( aCooSysSeq[nCooSysIdx], uno::UNO_QUERY_THROW ); - Sequence< Reference< XChartType > > aChartTypeSeq( xCTCnt->getChartTypes()); - for( sal_Int32 nCTIdx=0; bResult && (nCTIdx < aChartTypeSeq.getLength()); ++nCTIdx ) + std::vector< rtl::Reference< ChartType > > aChartTypeSeq( aCooSysSeq[nCooSysIdx]->getChartTypes2()); + for( sal_Int32 nCTIdx=0; bResult && (nCTIdx < static_cast<sal_Int32>(aChartTypeSeq.size())); ++nCTIdx ) { - if (!aChartTypeSeq[nCTIdx].is()) - return false; - // match chart type bResult = bResult && aChartTypeSeq[nCTIdx]->getChartType() == aChartTypeToMatch; bool bFound=false; diff --git a/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx b/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx index 181012dfa63b..26ba46b7afa9 100644 --- a/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx +++ b/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx @@ -21,6 +21,8 @@ #include "ColumnChartType.hxx" #include "LineChartType.hxx" #include <CommonConverters.hxx> +#include <BaseCoordinateSystem.hxx> +#include <Diagram.hxx> #include <DiagramHelper.hxx> #include <DataSeriesHelper.hxx> #include <servicenames_charttypes.hxx> @@ -271,7 +273,7 @@ StackMode ColumnLineChartTypeTemplate::getStackMode( sal_Int32 nChartTypeIndex ) // ____ XChartTypeTemplate ____ bool ColumnLineChartTypeTemplate::matchesTemplate( - const uno::Reference< XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) { bool bResult = false; @@ -281,35 +283,27 @@ bool ColumnLineChartTypeTemplate::matchesTemplate( try { - Reference< chart2::XChartType > xColumnChartType; - Reference< XCoordinateSystem > xColumnChartCooSys; - Reference< chart2::XChartType > xLineChartType; + rtl::Reference< ChartType > xColumnChartType; + rtl::Reference< BaseCoordinateSystem > xColumnChartCooSys; + rtl::Reference< ChartType > xLineChartType; sal_Int32 nNumberOfChartTypes = 0; - Reference< XCoordinateSystemContainer > xCooSysCnt( - xDiagram, uno::UNO_QUERY_THROW ); - const Sequence< Reference< XCoordinateSystem > > aCooSysSeq( - xCooSysCnt->getCoordinateSystems()); - for( Reference< XCoordinateSystem > const & coords : aCooSysSeq ) + for( rtl::Reference< BaseCoordinateSystem > const & coords : xDiagram->getBaseCoordinateSystems() ) { - Reference< XChartTypeContainer > xCTCnt( coords, uno::UNO_QUERY_THROW ); - const Sequence< Reference< XChartType > > aChartTypeSeq( xCTCnt->getChartTypes()); - for( Reference< XChartType > const & chartType : aChartTypeSeq ) + const std::vector< rtl::Reference< ChartType > > aChartTypeSeq( coords->getChartTypes2()); + for( rtl::Reference< ChartType > const & chartType : aChartTypeSeq ) { - if( chartType.is()) + ++nNumberOfChartTypes; + if( nNumberOfChartTypes > 2 ) + break; + OUString aCTService = chartType->getChartType(); + if( aCTService == CHART2_SERVICE_NAME_CHARTTYPE_COLUMN ) { - ++nNumberOfChartTypes; - if( nNumberOfChartTypes > 2 ) - break; - OUString aCTService = chartType->getChartType(); - if( aCTService == CHART2_SERVICE_NAME_CHARTTYPE_COLUMN ) - { - xColumnChartType.set( chartType ); - xColumnChartCooSys.set( coords ); - } - else if( aCTService == CHART2_SERVICE_NAME_CHARTTYPE_LINE ) - xLineChartType.set( chartType ); + xColumnChartType = chartType; + xColumnChartCooSys = coords; } + else if( aCTService == CHART2_SERVICE_NAME_CHARTTYPE_LINE ) + xLineChartType = chartType; } if( nNumberOfChartTypes > 2 ) break; @@ -334,10 +328,9 @@ bool ColumnLineChartTypeTemplate::matchesTemplate( if( bResult && bAdaptProperties ) { - Reference< XDataSeriesContainer > xSeriesContainer( xLineChartType, uno::UNO_QUERY ); - if( xSeriesContainer.is() ) + if( xLineChartType.is() ) { - sal_Int32 nNumberOfLines = xSeriesContainer->getDataSeries().getLength(); + sal_Int32 nNumberOfLines = xLineChartType->getDataSeries().getLength(); setFastPropertyValue_NoBroadcast( PROP_COL_LINE_NUMBER_OF_LINES, uno::Any( nNumberOfLines )); } } diff --git a/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx b/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx index 42705776cce4..a8854a779d9d 100644 --- a/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx +++ b/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx @@ -57,7 +57,7 @@ protected: // ____ XChartTypeTemplate ____ virtual bool matchesTemplate( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) override; virtual rtl::Reference< ::chart::ChartType > getChartTypeForNewSeries( const std::vector< diff --git a/chart2/source/model/template/LineChartTypeTemplate.cxx b/chart2/source/model/template/LineChartTypeTemplate.cxx index be8a81ad17bb..9629ab9e471b 100644 --- a/chart2/source/model/template/LineChartTypeTemplate.cxx +++ b/chart2/source/model/template/LineChartTypeTemplate.cxx @@ -19,6 +19,7 @@ #include "LineChartTypeTemplate.hxx" #include "LineChartType.hxx" +#include <Diagram.hxx> #include <DiagramHelper.hxx> #include <servicenames_charttypes.hxx> #include <DataSeriesHelper.hxx> @@ -201,7 +202,7 @@ StackMode LineChartTypeTemplate::getStackMode( sal_Int32 /* nChartTypeIndex */ ) // ____ ChartTypeTemplate ____ bool LineChartTypeTemplate::matchesTemplate( - const uno::Reference< chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) { bool bResult = ChartTypeTemplate::matchesTemplate( xDiagram, bAdaptProperties ); diff --git a/chart2/source/model/template/LineChartTypeTemplate.hxx b/chart2/source/model/template/LineChartTypeTemplate.hxx index 976c878328a3..55d0a23c0fb3 100644 --- a/chart2/source/model/template/LineChartTypeTemplate.hxx +++ b/chart2/source/model/template/LineChartTypeTemplate.hxx @@ -58,7 +58,7 @@ protected: // ____ XChartTypeTemplate ____ virtual bool matchesTemplate( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) override; virtual rtl::Reference< ::chart::ChartType > getChartTypeForNewSeries( const std::vector< diff --git a/chart2/source/model/template/NetChartTypeTemplate.cxx b/chart2/source/model/template/NetChartTypeTemplate.cxx index 4cfffb66b838..222456629783 100644 --- a/chart2/source/model/template/NetChartTypeTemplate.cxx +++ b/chart2/source/model/template/NetChartTypeTemplate.cxx @@ -20,6 +20,7 @@ #include "NetChartTypeTemplate.hxx" #include "FilledNetChartType.hxx" #include "NetChartType.hxx" +#include <Diagram.hxx> #include <DiagramHelper.hxx> #include <servicenames_charttypes.hxx> #include <DataSeriesHelper.hxx> @@ -87,7 +88,7 @@ void NetChartTypeTemplate::applyStyle( // ____ ChartTypeTemplate ____ bool NetChartTypeTemplate::matchesTemplate( - const Reference< chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) { bool bResult = ChartTypeTemplate::matchesTemplate( xDiagram, bAdaptProperties ); diff --git a/chart2/source/model/template/NetChartTypeTemplate.hxx b/chart2/source/model/template/NetChartTypeTemplate.hxx index 7643cd7d5efe..6b57e3fe0890 100644 --- a/chart2/source/model/template/NetChartTypeTemplate.hxx +++ b/chart2/source/model/template/NetChartTypeTemplate.hxx @@ -40,7 +40,7 @@ public: protected: // ____ ChartTypeTemplate ____ virtual bool matchesTemplate( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) override; virtual rtl::Reference< ::chart::ChartType > getChartTypeForNewSeries( const std::vector< diff --git a/chart2/source/model/template/PieChartTypeTemplate.cxx b/chart2/source/model/template/PieChartTypeTemplate.cxx index 49f92d14dfc3..320d41f9227a 100644 --- a/chart2/source/model/template/PieChartTypeTemplate.cxx +++ b/chart2/source/model/template/PieChartTypeTemplate.cxx @@ -21,6 +21,7 @@ #include "PieChartType.hxx" #include <CommonConverters.hxx> #include <ChartType.hxx> +#include <Diagram.hxx> #include <DiagramHelper.hxx> #include <servicenames_charttypes.hxx> #include <DataSeriesHelper.hxx> @@ -317,7 +318,7 @@ void PieChartTypeTemplate::createChartTypes( // ____ XChartTypeTemplate ____ bool PieChartTypeTemplate::matchesTemplate( - const uno::Reference< chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) { bool bResult = ChartTypeTemplate::matchesTemplate( xDiagram, bAdaptProperties ); diff --git a/chart2/source/model/template/PieChartTypeTemplate.hxx b/chart2/source/model/template/PieChartTypeTemplate.hxx index 62d28c293a45..307b0ee23f1d 100644 --- a/chart2/source/model/template/PieChartTypeTemplate.hxx +++ b/chart2/source/model/template/PieChartTypeTemplate.hxx @@ -58,7 +58,7 @@ protected: // ____ XChartTypeTemplate ____ virtual bool matchesTemplate( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) override; virtual rtl::Reference< ::chart::ChartType > getChartTypeForNewSeries( const std::vector< diff --git a/chart2/source/model/template/ScatterChartTypeTemplate.cxx b/chart2/source/model/template/ScatterChartTypeTemplate.cxx index c2b2d4e68035..b6ebf646e7e4 100644 --- a/chart2/source/model/template/ScatterChartTypeTemplate.cxx +++ b/chart2/source/model/template/ScatterChartTypeTemplate.cxx @@ -21,6 +21,7 @@ #include "ScatterChartType.hxx" #include "XYDataInterpreter.hxx" #include <ChartType.hxx> +#include <Diagram.hxx> #include <DiagramHelper.hxx> #include <servicenames_charttypes.hxx> #include <DataSeriesHelper.hxx> @@ -230,7 +231,7 @@ bool ScatterChartTypeTemplate::supportsCategories() } bool ScatterChartTypeTemplate::matchesTemplate( - const Reference< chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) { bool bResult = ChartTypeTemplate::matchesTemplate( xDiagram, bAdaptProperties ); diff --git a/chart2/source/model/template/ScatterChartTypeTemplate.hxx b/chart2/source/model/template/ScatterChartTypeTemplate.hxx index 7f9decd0341d..e72bd007d771 100644 --- a/chart2/source/model/template/ScatterChartTypeTemplate.hxx +++ b/chart2/source/model/template/ScatterChartTypeTemplate.hxx @@ -57,7 +57,7 @@ protected: // ____ XChartTypeTemplate ____ virtual bool supportsCategories() override; virtual bool matchesTemplate( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) override; virtual rtl::Reference< ::chart::ChartType > getChartTypeForNewSeries( const std::vector< diff --git a/chart2/source/model/template/StockChartTypeTemplate.cxx b/chart2/source/model/template/StockChartTypeTemplate.cxx index 43018fe8b657..afacb1c3b633 100644 --- a/chart2/source/model/template/StockChartTypeTemplate.cxx +++ b/chart2/source/model/template/StockChartTypeTemplate.cxx @@ -364,15 +364,13 @@ void StockChartTypeTemplate::createChartTypes( // ____ ChartTypeTemplate ____ bool StockChartTypeTemplate::matchesTemplate( - const uno::Reference< XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool /* bAdaptProperties */ ) { bool bResult = false; if( ! xDiagram.is()) return bResult; - Diagram* pDiagram = dynamic_cast<Diagram*>(xDiagram.get()); - assert(pDiagram); try { @@ -387,7 +385,7 @@ bool StockChartTypeTemplate::matchesTemplate( Reference< chart2::XChartType > xLineChartType; sal_Int32 nNumberOfChartTypes = 0; - for( rtl::Reference< BaseCoordinateSystem > const & coords : pDiagram->getBaseCoordinateSystems() ) + for( rtl::Reference< BaseCoordinateSystem > const & coords : xDiagram->getBaseCoordinateSystems() ) { const Sequence< Reference< XChartType > > aChartTypeSeq( coords->getChartTypes()); for( Reference< XChartType > const & chartType : aChartTypeSeq ) diff --git a/chart2/source/model/template/StockChartTypeTemplate.hxx b/chart2/source/model/template/StockChartTypeTemplate.hxx index 61a4017250dd..5ea72f65fb8d 100644 --- a/chart2/source/model/template/StockChartTypeTemplate.hxx +++ b/chart2/source/model/template/StockChartTypeTemplate.hxx @@ -71,7 +71,7 @@ protected: // ____ XChartTypeTemplate ____ virtual bool matchesTemplate( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, bool bAdaptProperties ) override; virtual rtl::Reference< ::chart::ChartType > getChartTypeForNewSeries( const std::vector< diff --git a/chart2/source/tools/DiagramHelper.cxx b/chart2/source/tools/DiagramHelper.cxx index b47fe41b0140..f7440c8ec1c0 100644 --- a/chart2/source/tools/DiagramHelper.cxx +++ b/chart2/source/tools/DiagramHelper.cxx @@ -85,6 +85,8 @@ DiagramHelper::tTemplateWithServiceName if( ! (xChartTypeManager.is() && xDiagram.is())) return aResult; + auto pDiagram = dynamic_cast<Diagram*>(xDiagram.get()); + assert(pDiagram); Sequence< OUString > aServiceNames( xChartTypeManager->getAvailableServiceNames()); const sal_Int32 nLength = aServiceNames.getLength(); @@ -98,7 +100,7 @@ DiagramHelper::tTemplateWithServiceName rtl::Reference< ::chart::ChartTypeTemplate > xTempl = xChartTypeManager->createTemplate( aServiceNames[ i ] ); - if (xTempl.is() && xTempl->matchesTemplate(xDiagram, true)) + if (xTempl.is() && xTempl->matchesTemplate(pDiagram, true)) { aResult.xChartTypeTemplate = xTempl; aResult.sServiceName = aServiceNames[ i ]; |