Kaydet (Commit) a0ebba3d authored tarafından tagezi's avatar tagezi Kaydeden (comit) Mike Kaganski

tdf#39593 deduplicate code in ExplicitValueProvider

Change-Id: I0525761b0d1359b3e0f249cef02e1818af95156b
Reviewed-on: https://gerrit.libreoffice.org/45037Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMike Kaganski <mike.kaganski@collabora.com>
üst 921c8f50
......@@ -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;
}
......
......@@ -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
......
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment