From a0ebba3d8855fee0bcec04a10137ae3a4f9f0e77 Mon Sep 17 00:00:00 2001 From: tagezi Date: Tue, 21 Nov 2017 15:54:38 +0200 Subject: tdf#39593 deduplicate code in ExplicitValueProvider Change-Id: I0525761b0d1359b3e0f249cef02e1818af95156b Reviewed-on: https://gerrit.libreoffice.org/45037 Tested-by: Jenkins Reviewed-by: Mike Kaganski --- .../chartapiwrapper/Chart2ModelContact.cxx | 8 +- .../source/inc/chartview/ExplicitValueProvider.hxx | 10 +-- chart2/source/view/main/ChartView.cxx | 85 ++++------------------ 3 files changed, 20 insertions(+), 83 deletions(-) (limited to 'chart2') diff --git a/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx b/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx index ffc60ec31ced..9c904996ebee 100644 --- a/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx +++ b/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx @@ -175,8 +175,8 @@ awt::Size Chart2ModelContact::GetPageSize() const awt::Rectangle Chart2ModelContact::SubstractAxisTitleSizes( const awt::Rectangle& rPositionRect ) { - awt::Rectangle aRect = ExplicitValueProvider::substractAxisTitleSizes( - *mpModel, getChartView(), rPositionRect ); + awt::Rectangle aRect = ExplicitValueProvider::AddSubtractAxisTitleSizes( + *mpModel, getChartView(), rPositionRect, true ); return aRect; } @@ -185,8 +185,8 @@ awt::Rectangle Chart2ModelContact::GetDiagramRectangleIncludingTitle() const awt::Rectangle aRect( GetDiagramRectangleIncludingAxes() ); //add axis title sizes to the diagram size - aRect = ExplicitValueProvider::addAxisTitleSizes( - *mpModel, getChartView(), aRect ); + aRect = ExplicitValueProvider::AddSubtractAxisTitleSizes( + *mpModel, getChartView(), aRect, false ); return aRect; } diff --git a/chart2/source/inc/chartview/ExplicitValueProvider.hxx b/chart2/source/inc/chartview/ExplicitValueProvider.hxx index 05d50c6a2e82..afe0507d67d2 100644 --- a/chart2/source/inc/chartview/ExplicitValueProvider.hxx +++ b/chart2/source/inc/chartview/ExplicitValueProvider.hxx @@ -66,16 +66,10 @@ public: static ExplicitValueProvider* getExplicitValueProvider( const css::uno::Reference< css::uno::XInterface >& xChartView ); static css::awt::Rectangle - addAxisTitleSizes( + AddSubtractAxisTitleSizes( ChartModel& rModel , const css::uno::Reference< css::uno::XInterface >& xChartView - , const css::awt::Rectangle& rExcludingPositionAndSize ); - - static css::awt::Rectangle - substractAxisTitleSizes( - ChartModel& rModel - , const css::uno::Reference< css::uno::XInterface >& xChartView - , const css::awt::Rectangle& rPositionAndSizeIncludingTitles ); + , const css::awt::Rectangle& rPositionAndSize, bool bSubtract ); static sal_Int32 getExplicitNumberFormatKeyForAxis( const css::uno::Reference< css::chart2::XAxis >& xAxis diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx index 49f1670e9f37..97a51c55c961 100644 --- a/chart2/source/view/main/ChartView.cxx +++ b/chart2/source/view/main/ChartView.cxx @@ -2089,12 +2089,12 @@ sal_Int32 ExplicitValueProvider::getExplicitPercentageNumberFormatKeyForDataLabe return nFormat; } -awt::Rectangle ExplicitValueProvider::addAxisTitleSizes( +awt::Rectangle ExplicitValueProvider::AddSubtractAxisTitleSizes( ChartModel& rModel , const Reference< uno::XInterface >& xChartView - , const awt::Rectangle& rExcludingPositionAndSize ) + , const awt::Rectangle& rPositionAndSize, bool bSubtract ) { - awt::Rectangle aRet(rExcludingPositionAndSize); + awt::Rectangle aRet(rPositionAndSize); //add axis title sizes to the diagram size uno::Reference< chart2::XTitle > xTitle_Height( TitleHelper::getTitle( TitleHelper::TITLE_AT_STANDARD_X_AXIS_POSITION, rModel ) ); @@ -2146,78 +2146,21 @@ awt::Rectangle ExplicitValueProvider::addAxisTitleSizes( if( nSecondTitleSpaceWidth ) nSecondTitleSpaceWidth+=lcl_getDiagramTitleSpace(); } - - aRet.X -= nTitleSpaceWidth; - aRet.Y -= nSecondTitleSpaceHeight; - aRet.Width += nTitleSpaceWidth + nSecondTitleSpaceWidth; - aRet.Height += nTitleSpaceHeight + nSecondTitleSpaceHeight; - } - } - return aRet; -} - -awt::Rectangle ExplicitValueProvider::substractAxisTitleSizes( - ChartModel& rModel - , const Reference< uno::XInterface >& xChartView - , const awt::Rectangle& rPositionAndSizeIncludingTitles ) -{ - awt::Rectangle aRet(rPositionAndSizeIncludingTitles); - - //add axis title sizes to the diagram size - uno::Reference< chart2::XTitle > xTitle_Height( TitleHelper::getTitle( TitleHelper::TITLE_AT_STANDARD_X_AXIS_POSITION, rModel ) ); - uno::Reference< chart2::XTitle > xTitle_Width( TitleHelper::getTitle( TitleHelper::TITLE_AT_STANDARD_Y_AXIS_POSITION, rModel ) ); - uno::Reference< chart2::XTitle > xSecondTitle_Height( TitleHelper::getTitle( TitleHelper::SECONDARY_X_AXIS_TITLE, rModel ) ); - uno::Reference< chart2::XTitle > xSecondTitle_Width( TitleHelper::getTitle( TitleHelper::SECONDARY_Y_AXIS_TITLE, rModel ) ); - if( xTitle_Height.is() || xTitle_Width.is() || xSecondTitle_Height.is() || xSecondTitle_Width.is() ) - { - ExplicitValueProvider* pExplicitValueProvider = ExplicitValueProvider::getExplicitValueProvider(xChartView); - if( pExplicitValueProvider ) - { - //detect whether x axis points into x direction or not - if( lcl_getPropertySwapXAndYAxis( rModel.getFirstDiagram() ) ) + if( bSubtract ) { - std::swap( xTitle_Height, xTitle_Width ); - std::swap( xSecondTitle_Height, xSecondTitle_Width ); + aRet.X += nTitleSpaceWidth; + aRet.Y += nSecondTitleSpaceHeight; + aRet.Width -= (nTitleSpaceWidth + nSecondTitleSpaceWidth); + aRet.Height -= (nTitleSpaceHeight + nSecondTitleSpaceHeight); } - - sal_Int32 nTitleSpaceWidth = 0; - sal_Int32 nTitleSpaceHeight = 0; - sal_Int32 nSecondTitleSpaceWidth = 0; - sal_Int32 nSecondTitleSpaceHeight = 0; - - if( xTitle_Height.is() ) - { - OUString aCID_X( ObjectIdentifier::createClassifiedIdentifierForObject( xTitle_Height, rModel ) ); - nTitleSpaceHeight = pExplicitValueProvider->getRectangleOfObject( aCID_X, true ).Height; - if( nTitleSpaceHeight ) - nTitleSpaceHeight+=lcl_getDiagramTitleSpace(); - } - if( xTitle_Width.is() ) - { - OUString aCID_Y( ObjectIdentifier::createClassifiedIdentifierForObject( xTitle_Width, rModel ) ); - nTitleSpaceWidth = pExplicitValueProvider->getRectangleOfObject( aCID_Y, true ).Width; - if(nTitleSpaceWidth) - nTitleSpaceWidth+=lcl_getDiagramTitleSpace(); - } - if( xSecondTitle_Height.is() ) - { - OUString aCID_X( ObjectIdentifier::createClassifiedIdentifierForObject( xSecondTitle_Height, rModel ) ); - nSecondTitleSpaceHeight = pExplicitValueProvider->getRectangleOfObject( aCID_X, true ).Height; - if( nSecondTitleSpaceHeight ) - nSecondTitleSpaceHeight+=lcl_getDiagramTitleSpace(); - } - if( xSecondTitle_Width.is() ) + else { - OUString aCID_Y( ObjectIdentifier::createClassifiedIdentifierForObject( xSecondTitle_Width, rModel ) ); - nSecondTitleSpaceWidth += pExplicitValueProvider->getRectangleOfObject( aCID_Y, true ).Width; - if( nSecondTitleSpaceWidth ) - nSecondTitleSpaceWidth+=lcl_getDiagramTitleSpace(); - } - aRet.X += nTitleSpaceWidth; - aRet.Y += nSecondTitleSpaceHeight; - aRet.Width -= (nTitleSpaceWidth + nSecondTitleSpaceWidth); - aRet.Height -= (nTitleSpaceHeight + nSecondTitleSpaceHeight); + aRet.X -= nTitleSpaceWidth; + aRet.Y -= nSecondTitleSpaceHeight; + aRet.Width += nTitleSpaceWidth + nSecondTitleSpaceWidth; + aRet.Height += nTitleSpaceHeight + nSecondTitleSpaceHeight; + } } } return aRet; -- cgit