diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-03-22 08:50:15 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-03-22 17:15:25 +0000 |
commit | f02ec0d8489404966596cb0e949bf969e8e66fa2 (patch) | |
tree | d9baacfb83588d61a313b6608a271634d13e4d84 /chart2 | |
parent | f4cde4406217dd61e8d803eb38e6f5fac84a1f6d (diff) |
move hasUnhiddenData inside chart2::DataSeries
Change-Id: Id8a4daf046f2306a52948c7ed434854b25ee7936
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149283
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'chart2')
-rw-r--r-- | chart2/source/inc/DataSeries.hxx | 2 | ||||
-rw-r--r-- | chart2/source/inc/DataSeriesHelper.hxx | 3 | ||||
-rw-r--r-- | chart2/source/model/main/DataSeries.cxx | 35 | ||||
-rw-r--r-- | chart2/source/tools/DataSeriesHelper.cxx | 36 | ||||
-rw-r--r-- | chart2/source/view/main/SeriesPlotterContainer.cxx | 2 |
5 files changed, 38 insertions, 40 deletions
diff --git a/chart2/source/inc/DataSeries.hxx b/chart2/source/inc/DataSeries.hxx index 9e84ac99ab51..86405c19ac8e 100644 --- a/chart2/source/inc/DataSeries.hxx +++ b/chart2/source/inc/DataSeries.hxx @@ -149,6 +149,8 @@ public: */ OUString getLabelForRole( const OUString & rLabelSequenceRole ); + bool hasUnhiddenData(); + private: // late initialization to call after copy-constructing diff --git a/chart2/source/inc/DataSeriesHelper.hxx b/chart2/source/inc/DataSeriesHelper.hxx index c3eb20af90d6..474c49bb8277 100644 --- a/chart2/source/inc/DataSeriesHelper.hxx +++ b/chart2/source/inc/DataSeriesHelper.hxx @@ -160,9 +160,6 @@ OOO_DLLPUBLIC_CHARTTOOLS bool hasAttributedDataPointDifferentValue( const OUString& rPropertyName, const css::uno::Any& rPropertyValue ); -OOO_DLLPUBLIC_CHARTTOOLS bool hasUnhiddenData( const rtl::Reference< - ::chart::DataSeries >& xSeries ); - OOO_DLLPUBLIC_CHARTTOOLS sal_Int32 translateIndexFromHiddenToFullSequence( sal_Int32 nClippedIndex, const css::uno::Reference< css::chart2::data::XDataSequence >& xDataSequence, bool bTranslate ); diff --git a/chart2/source/model/main/DataSeries.cxx b/chart2/source/model/main/DataSeries.cxx index 79f51fa8ab2e..8313054f2df2 100644 --- a/chart2/source/model/main/DataSeries.cxx +++ b/chart2/source/model/main/DataSeries.cxx @@ -685,6 +685,41 @@ OUString DataSeries::getLabelForRole( const OUString & rLabelSequenceRole ) return aResult; } +static bool lcl_SequenceHasUnhiddenData( const uno::Reference< chart2::data::XDataSequence >& xDataSequence ) +{ + uno::Reference< beans::XPropertySet > xProp( xDataSequence, uno::UNO_QUERY ); + if( xProp.is() ) + { + uno::Sequence< sal_Int32 > aHiddenValues; + try + { + xProp->getPropertyValue( "HiddenValues" ) >>= aHiddenValues; + if( !aHiddenValues.hasElements() ) + return true; + } + catch( const uno::Exception& ) + { + return true; + } + } + return xDataSequence->getData().hasElements(); +} + +bool DataSeries::hasUnhiddenData() +{ + MutexGuard aGuard( m_aMutex ); + + for(uno::Reference< chart2::data::XLabeledDataSequence > const & rDataSequence : m_aDataSequences) + { + if( !rDataSequence.is() ) + continue; + if( lcl_SequenceHasUnhiddenData( rDataSequence->getValues() ) ) + return true; + } + return false; +} + + } // namespace chart extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * diff --git a/chart2/source/tools/DataSeriesHelper.cxx b/chart2/source/tools/DataSeriesHelper.cxx index 07883a1646bf..9935aa0e5fd3 100644 --- a/chart2/source/tools/DataSeriesHelper.cxx +++ b/chart2/source/tools/DataSeriesHelper.cxx @@ -526,42 +526,6 @@ bool hasAttributedDataPointDifferentValue( const Reference< chart2::XDataSeries namespace { -bool lcl_SequenceHasUnhiddenData( const uno::Reference< chart2::data::XDataSequence >& xDataSequence ) -{ - if( !xDataSequence.is() ) - return false; - uno::Reference< beans::XPropertySet > xProp( xDataSequence, uno::UNO_QUERY ); - if( xProp.is() ) - { - uno::Sequence< sal_Int32 > aHiddenValues; - try - { - xProp->getPropertyValue( "HiddenValues" ) >>= aHiddenValues; - if( !aHiddenValues.hasElements() ) - return true; - } - catch( const uno::Exception& ) - { - return true; - } - } - return xDataSequence->getData().hasElements(); -} - -} - -bool hasUnhiddenData( const rtl::Reference< DataSeries >& xSeries ) -{ - uno::Sequence< uno::Reference< chart2::data::XLabeledDataSequence > > aDataSequences = xSeries->getDataSequences(); - - for(sal_Int32 nN = aDataSequences.getLength();nN--;) - { - if( !aDataSequences[nN].is() ) - continue; - if( lcl_SequenceHasUnhiddenData( aDataSequences[nN]->getValues() ) ) - return true; - } - return false; } sal_Int32 translateIndexFromHiddenToFullSequence( sal_Int32 nIndex, const Reference< chart2::data::XDataSequence >& xDataSequence, bool bTranslate ) diff --git a/chart2/source/view/main/SeriesPlotterContainer.cxx b/chart2/source/view/main/SeriesPlotterContainer.cxx index b965812b6528..30b2ba8edcb5 100644 --- a/chart2/source/view/main/SeriesPlotterContainer.cxx +++ b/chart2/source/view/main/SeriesPlotterContainer.cxx @@ -253,7 +253,7 @@ void SeriesPlotterContainer::initializeCooSysAndSeriesPlotter(ChartModel& rChart for (std::size_t nS = 0; nS < aSeriesList.size(); ++nS) { rtl::Reference<DataSeries> const& xDataSeries = aSeriesList[nS]; - if (!bIncludeHiddenCells && !DataSeriesHelper::hasUnhiddenData(xDataSeries)) + if (!bIncludeHiddenCells && !xDataSeries->hasUnhiddenData()) continue; std::unique_ptr<VDataSeries> pSeries(new VDataSeries(xDataSeries)); |