diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-02-10 11:24:07 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-02-10 11:42:58 +0100 |
commit | c1c9071dd5f578c5773abc00553d2099cad30ced (patch) | |
tree | d0904ec190c31ff58b0c6460b36ba844b5fb7645 /chart2 | |
parent | 967900354d36de50eff76e9622b0b4655d450f41 (diff) |
crashtesting ooo#ooo83229-2
this reverts part of
commit b314b5a0612c9dc7279039dae44a250d4d3ec6b1
use more concrete types in chart2, DataSeries
since writer uses it's own implementation of the XLabeledDataSequence
UNO interface
Change-Id: I52154dcee104ca17bfa63a3a8b11ef739cef147f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129772
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'chart2')
4 files changed, 13 insertions, 26 deletions
diff --git a/chart2/source/controller/dialogs/DataBrowserModel.cxx b/chart2/source/controller/dialogs/DataBrowserModel.cxx index a0beacaa4955..f364bc8b8317 100644 --- a/chart2/source/controller/dialogs/DataBrowserModel.cxx +++ b/chart2/source/controller/dialogs/DataBrowserModel.cxx @@ -770,11 +770,11 @@ void DataBrowserModel::updateFromModel() { ExplicitCategoriesProvider aExplicitCategoriesProvider( ChartModelHelper::getFirstCoordinateSystem(m_xChartDocument), *m_xChartDocument ); - const std::vector< rtl::Reference< LabeledDataSequence> >& rSplitCategoriesList = aExplicitCategoriesProvider.getSplitCategoriesList(); + const std::vector< Reference< chart2::data::XLabeledDataSequence> >& rSplitCategoriesList = aExplicitCategoriesProvider.getSplitCategoriesList(); sal_Int32 nLevelCount = rSplitCategoriesList.size(); for( sal_Int32 nL = 0; nL<nLevelCount; nL++ ) { - rtl::Reference< LabeledDataSequence > xCategories( rSplitCategoriesList[nL] ); + Reference< chart2::data::XLabeledDataSequence > xCategories( rSplitCategoriesList[nL] ); if( !xCategories.is() ) continue; diff --git a/chart2/source/inc/ExplicitCategoriesProvider.hxx b/chart2/source/inc/ExplicitCategoriesProvider.hxx index 56a637dbb91f..6b68f8d2dcc6 100644 --- a/chart2/source/inc/ExplicitCategoriesProvider.hxx +++ b/chart2/source/inc/ExplicitCategoriesProvider.hxx @@ -84,8 +84,8 @@ public: bool hasComplexCategories() const; sal_Int32 getCategoryLevelCount() const; - const std::vector< rtl::Reference< - ::chart::LabeledDataSequence> >& getSplitCategoriesList() const { return m_aSplitCategoriesList;} + const std::vector< css::uno::Reference< css::chart2::data::XLabeledDataSequence> >& + getSplitCategoriesList() const { return m_aSplitCategoriesList;} bool isDateAxis(); const std::vector< double >& getDateCategories(); @@ -97,12 +97,12 @@ private: bool volatile m_bDirty; unotools::WeakReference< ::chart::BaseCoordinateSystem > m_xCooSysModel; ChartModel& mrModel; - rtl::Reference< ::chart::LabeledDataSequence> m_xOriginalCategories; + css::uno::Reference< css::chart2::data::XLabeledDataSequence> m_xOriginalCategories; bool m_bIsExplicitCategoriesInited; css::uno::Sequence< OUString > m_aExplicitCategories; std::vector< std::vector< ComplexCategory > > m_aComplexCats; - std::vector< rtl::Reference< ::chart::LabeledDataSequence> > m_aSplitCategoriesList; + std::vector< css::uno::Reference< css::chart2::data::XLabeledDataSequence> > m_aSplitCategoriesList; bool m_bIsDateAxis; bool m_bIsAutoDate; diff --git a/chart2/source/tools/ExplicitCategoriesProvider.cxx b/chart2/source/tools/ExplicitCategoriesProvider.cxx index 4f2a4aa35787..c89c91544e23 100644 --- a/chart2/source/tools/ExplicitCategoriesProvider.cxx +++ b/chart2/source/tools/ExplicitCategoriesProvider.cxx @@ -49,17 +49,6 @@ using ::com::sun::star::uno::Reference; using ::com::sun::star::uno::Sequence; using std::vector; -static std::vector< rtl::Reference< LabeledDataSequence> > lcl_toLabeledDataSequence(const Sequence< Reference< data::XLabeledDataSequence> > & rSeq) -{ - std::vector<rtl::Reference< LabeledDataSequence>> aRes(rSeq.getLength()); - for (sal_Int32 i=0; i<rSeq.getLength(); ++i) - { - aRes[i] = dynamic_cast<LabeledDataSequence*>(rSeq[i].get()); - assert(aRes[i]); - } - return aRes; -} - ExplicitCategoriesProvider::ExplicitCategoriesProvider( const rtl::Reference< BaseCoordinateSystem >& xCooSysModel , ChartModel& rModel ) : m_bDirty(true) @@ -78,8 +67,7 @@ ExplicitCategoriesProvider::ExplicitCategoriesProvider( const rtl::Reference< Ba if( xAxis.is() ) { ScaleData aScale( xAxis->getScaleData() ); - m_xOriginalCategories = dynamic_cast<LabeledDataSequence*>(aScale.Categories.get()); - assert(m_xOriginalCategories || !aScale.Categories); + m_xOriginalCategories = aScale.Categories; m_bIsAutoDate = (aScale.AutoDateAxis && aScale.AxisType==chart2::AxisType::CATEGORY); m_bIsDateAxis = (aScale.AxisType == chart2::AxisType::DATE || m_bIsAutoDate); } @@ -128,9 +116,9 @@ ExplicitCategoriesProvider::ExplicitCategoriesProvider( const rtl::Reference< Ba aStringDummy, aSeqDummy, bSeriesUsesColumns, bDummy, bDummy ); } if( bSeriesUsesColumns ) - m_aSplitCategoriesList = lcl_toLabeledDataSequence(aColumns); + m_aSplitCategoriesList = comphelper::sequenceToContainer<std::vector<Reference<data::XLabeledDataSequence>>>(aColumns); else - m_aSplitCategoriesList = lcl_toLabeledDataSequence(aRows); + m_aSplitCategoriesList = comphelper::sequenceToContainer<std::vector<Reference<data::XLabeledDataSequence>>>(aRows); } } } @@ -237,8 +225,7 @@ class SplitCategoriesProvider_ForLabeledDataSequences : public SplitCategoriesPr public: explicit SplitCategoriesProvider_ForLabeledDataSequences( - const std::vector< - rtl::Reference< LabeledDataSequence> >& rSplitCategoriesList + const std::vector< Reference< data::XLabeledDataSequence> >& rSplitCategoriesList , ChartModel& rModel ) : m_rSplitCategoriesList( rSplitCategoriesList ) , mrModel( rModel ) @@ -248,7 +235,7 @@ public: virtual uno::Sequence< OUString > getStringsForLevel( sal_Int32 nIndex ) const override; private: - const std::vector< rtl::Reference< LabeledDataSequence> >& m_rSplitCategoriesList; + const std::vector< Reference< data::XLabeledDataSequence> >& m_rSplitCategoriesList; ChartModel& mrModel; }; diff --git a/chart2/source/tools/InternalDataProvider.cxx b/chart2/source/tools/InternalDataProvider.cxx index 9bab0b5ddd64..ffbfebe10522 100644 --- a/chart2/source/tools/InternalDataProvider.cxx +++ b/chart2/source/tools/InternalDataProvider.cxx @@ -339,11 +339,11 @@ InternalDataProvider::InternalDataProvider( { ExplicitCategoriesProvider aExplicitCategoriesProvider(ChartModelHelper::getFirstCoordinateSystem(xModel), *xModel); - const std::vector< rtl::Reference< LabeledDataSequence> >& rSplitCategoriesList( aExplicitCategoriesProvider.getSplitCategoriesList() ); + const std::vector< Reference< chart2::data::XLabeledDataSequence> >& rSplitCategoriesList( aExplicitCategoriesProvider.getSplitCategoriesList() ); sal_Int32 nLevelCount = rSplitCategoriesList.size(); for( sal_Int32 nL = 0; nL<nLevelCount; nL++ ) { - rtl::Reference< LabeledDataSequence > xLDS( rSplitCategoriesList[nL] ); + Reference< chart2::data::XLabeledDataSequence > xLDS( rSplitCategoriesList[nL] ); if( !xLDS.is() ) continue; Sequence< uno::Any > aDataSeq; |