chart2/source/controller/main/ControllerCommandDispatch.cxx | 5 - chart2/source/inc/RegressionCurveHelper.hxx | 27 +----- chart2/source/tools/RegressionCurveHelper.cxx | 50 ++++-------- 3 files changed, 27 insertions(+), 55 deletions(-)
New commits: commit 8734d375be70a991d3e44b5a26191360d4d32a3c Author: Noel Grandin <noelgran...@gmail.com> AuthorDate: Sat Apr 12 22:28:38 2025 +0200 Commit: Noel Grandin <noelgran...@gmail.com> CommitDate: Sun Apr 13 17:12:10 2025 +0200 use more concrete UNO in chart2 Change-Id: I3bd1202fc54d474f135d5d541ecca62b06e80d1b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184120 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/chart2/source/controller/main/ControllerCommandDispatch.cxx b/chart2/source/controller/main/ControllerCommandDispatch.cxx index c732fae2c49a..8945d168f19e 100644 --- a/chart2/source/controller/main/ControllerCommandDispatch.cxx +++ b/chart2/source/controller/main/ControllerCommandDispatch.cxx @@ -33,6 +33,7 @@ #include <DataSeriesHelper.hxx> #include <StatisticsHelper.hxx> #include <ReferenceSizeProvider.hxx> +#include <RegressionCurveModel.hxx> #include "ShapeController.hxx" #include <vcl/svapp.hxx> @@ -275,8 +276,8 @@ void ControllerState::update( { bMayFormatTrendline = true; bMayDeleteTrendline = true; - uno::Reference< chart2::XRegressionCurve > xRegCurve( - ObjectIdentifier::getObjectPropertySet( aSelObjCID, xModel ), uno::UNO_QUERY ); + rtl::Reference< RegressionCurveModel > xRegCurve( + dynamic_cast<RegressionCurveModel*>(ObjectIdentifier::getObjectPropertySet( aSelObjCID, xModel ).get()) ); // Trendline Equation bMayFormatTrendlineEquation = bMayDeleteTrendlineEquation = RegressionCurveHelper::hasEquation( xRegCurve ); diff --git a/chart2/source/inc/RegressionCurveHelper.hxx b/chart2/source/inc/RegressionCurveHelper.hxx index 2a0e8d311c9f..a730b91d900d 100644 --- a/chart2/source/inc/RegressionCurveHelper.hxx +++ b/chart2/source/inc/RegressionCurveHelper.hxx @@ -142,7 +142,7 @@ namespace chart::RegressionCurveHelper createRegressionCurveCalculatorByServiceName( std::u16string_view aServiceName ); /** recalculates the regression parameters according to the data given in - the data source. + the data series. A sequence having the role "values-x" will be used as x-values for the calculation if found. Otherwise a sequence (1, 2, 3, ...) of category @@ -152,19 +152,6 @@ namespace chart::RegressionCurveHelper The first sequence having the role "values-y" will be used as y-values for the recalculateRegression() method of the regression curve. - @param bUseXValuesIfAvailable - If false, the sequence (1, 2, 3, ...) will always be used, even if - there is a data-sequence with role "values-x" - */ - void initializeCurveCalculator( - const rtl::Reference<RegressionCurveCalculator>& xOutCurveCalculator, - const css::uno::Reference<css::chart2::data::XDataSource>& xSource, - bool bUseXValuesIfAvailable ); - - /** Same method as above, but uses the given XModel to determine the - parameter bUseXValuesIfAvailable in the above function. It is also - necessary that the data::XDataSource is an XDataSeries, thus this parameter - also changed. */ void initializeCurveCalculator( const rtl::Reference<RegressionCurveCalculator>& xOutCurveCalculator, @@ -172,16 +159,16 @@ namespace chart::RegressionCurveHelper const rtl::Reference<::chart::ChartModel>& xModel ); OUString getUINameForRegressionCurve( - const css::uno::Reference<css::chart2::XRegressionCurve>& xCurve ); + const rtl::Reference<RegressionCurveModel>& xCurve ); OUString getRegressionCurveName( - const css::uno::Reference<css::chart2::XRegressionCurve>& xCurve ); + const rtl::Reference<RegressionCurveModel>& xCurve ); OUString getRegressionCurveGenericName( - const css::uno::Reference<css::chart2::XRegressionCurve>& xCurve ); + const rtl::Reference<RegressionCurveModel>& xCurve ); OUString getRegressionCurveSpecificName( - const css::uno::Reference<css::chart2::XRegressionCurve>& xCurve ); + const rtl::Reference<RegressionCurveModel>& xCurve ); void resetEquationPosition( const css::uno::Reference<css::chart2::XRegressionCurve>& xCurve ); @@ -191,8 +178,8 @@ namespace chart::RegressionCurveHelper const rtl::Reference<::chart::DataSeries>& xContainer, const rtl::Reference<::chart::RegressionCurveModel>& xCurve ); - bool hasEquation(const css::uno::Reference<css::chart2::XRegressionCurve>& xCurve ); - bool MayHaveCorrelationCoefficient(const css::uno::Reference<css::chart2::XRegressionCurve>& xCurve ); + bool hasEquation(const rtl::Reference<RegressionCurveModel>& xCurve ); + bool MayHaveCorrelationCoefficient(const rtl::Reference<RegressionCurveModel>& xCurve ); } // namespace chart diff --git a/chart2/source/tools/RegressionCurveHelper.cxx b/chart2/source/tools/RegressionCurveHelper.cxx index a5a9a57ddc4b..b471b3cac510 100644 --- a/chart2/source/tools/RegressionCurveHelper.cxx +++ b/chart2/source/tools/RegressionCurveHelper.cxx @@ -171,17 +171,22 @@ rtl::Reference< RegressionCurveCalculator > RegressionCurveHelper::createRegress void RegressionCurveHelper::initializeCurveCalculator( const rtl::Reference< RegressionCurveCalculator > & xOutCurveCalculator, - const Reference< data::XDataSource > & xSource, - bool bUseXValuesIfAvailable /* = true */ ) + const rtl::Reference< ::chart::DataSeries > & xSeries, + const rtl::Reference<::chart::ChartModel> & xModel ) { + sal_Int32 nAxisType = ChartTypeHelper::getAxisType( + xModel->getChartTypeOfSeries( xSeries ), 0 ); // x-axis + + bool bUseXValuesIfAvailable = (nAxisType == AxisType::REALNUMBER); + if( ! (xOutCurveCalculator.is() && - xSource.is() )) + xSeries.is() )) return; Sequence< double > aXValues, aYValues; bool bXValuesFound = false, bYValuesFound = false; - Sequence< Reference< data::XLabeledDataSequence > > aDataSeqs( xSource->getDataSequences()); + Sequence< Reference< data::XLabeledDataSequence > > aDataSeqs( xSeries->getDataSequences()); sal_Int32 i = 0; for( i=0; ! (bXValuesFound && bYValuesFound) && i<aDataSeqs.getLength(); @@ -230,19 +235,6 @@ void RegressionCurveHelper::initializeCurveCalculator( xOutCurveCalculator->recalculateRegression( aXValues, aYValues ); } -void RegressionCurveHelper::initializeCurveCalculator( - const rtl::Reference< RegressionCurveCalculator > & xOutCurveCalculator, - const rtl::Reference< ::chart::DataSeries > & xSeries, - const rtl::Reference<::chart::ChartModel> & xModel ) -{ - sal_Int32 nAxisType = ChartTypeHelper::getAxisType( - xModel->getChartTypeOfSeries( xSeries ), 0 ); // x-axis - - initializeCurveCalculator( xOutCurveCalculator, - xSeries, - (nAxisType == AxisType::REALNUMBER) ); -} - bool RegressionCurveHelper::hasMeanValueLine( const uno::Reference< XRegressionCurveContainer > & xRegCnt ) { @@ -757,7 +749,7 @@ SvxChartRegress RegressionCurveHelper::getFirstRegressTypeNotMeanValueLine( return eResult; } -OUString RegressionCurveHelper::getUINameForRegressionCurve( const Reference< XRegressionCurve >& xRegressionCurve ) +OUString RegressionCurveHelper::getUINameForRegressionCurve( const rtl::Reference< RegressionCurveModel >& xRegressionCurve ) { OUString aResult = getRegressionCurveSpecificName(xRegressionCurve); if (aResult.isEmpty()) @@ -771,17 +763,13 @@ OUString RegressionCurveHelper::getUINameForRegressionCurve( const Reference< XR return aResult; } -OUString RegressionCurveHelper::getRegressionCurveGenericName(const Reference< XRegressionCurve >& xRegressionCurve) +OUString RegressionCurveHelper::getRegressionCurveGenericName(const rtl::Reference< RegressionCurveModel >& xRegressionCurve) { OUString aResult; if(!xRegressionCurve.is()) return aResult; - Reference< lang::XServiceName > xServiceName( xRegressionCurve, uno::UNO_QUERY ); - if(!xServiceName.is()) - return aResult; - - OUString aServiceName(xServiceName->getServiceName()); + OUString aServiceName(xRegressionCurve->getServiceName()); if( aServiceName == "com.sun.star.chart2.MeanValueRegressionCurve" ) { @@ -814,23 +802,19 @@ OUString RegressionCurveHelper::getRegressionCurveGenericName(const Reference< X return aResult; } -OUString RegressionCurveHelper::getRegressionCurveSpecificName(const Reference< XRegressionCurve >& xRegressionCurve) +OUString RegressionCurveHelper::getRegressionCurveSpecificName(const rtl::Reference< RegressionCurveModel >& xRegressionCurve) { OUString aResult; if(!xRegressionCurve.is()) return aResult; - Reference<XPropertySet> xProperties( xRegressionCurve, uno::UNO_QUERY ); - if(!xProperties.is()) - return aResult; - - xProperties->getPropertyValue(u"CurveName"_ustr) >>= aResult; + xRegressionCurve->getPropertyValue(u"CurveName"_ustr) >>= aResult; return aResult; } -OUString RegressionCurveHelper::getRegressionCurveName( const Reference< XRegressionCurve >& xRegressionCurve ) +OUString RegressionCurveHelper::getRegressionCurveName( const rtl::Reference< RegressionCurveModel >& xRegressionCurve ) { OUString aResult = getRegressionCurveSpecificName(xRegressionCurve); if (aResult.isEmpty()) @@ -875,7 +859,7 @@ sal_Int32 RegressionCurveHelper::getRegressionCurveIndex( return -1; } -bool RegressionCurveHelper::hasEquation( const Reference< chart2::XRegressionCurve > & xCurve ) +bool RegressionCurveHelper::hasEquation( const rtl::Reference< RegressionCurveModel > & xCurve ) { bool bHasEquation = false; if( xCurve.is()) @@ -893,7 +877,7 @@ bool RegressionCurveHelper::hasEquation( const Reference< chart2::XRegressionCur return bHasEquation; } -bool RegressionCurveHelper::MayHaveCorrelationCoefficient( const Reference< chart2::XRegressionCurve > & xCurve ) +bool RegressionCurveHelper::MayHaveCorrelationCoefficient( const rtl::Reference< RegressionCurveModel > & xCurve ) { bool bMayHaveCorrelationCoefficient = true; if( xCurve.is())