From f0dd1a5ebcb2bd4a04a5b5f4cf6f1d10d08f88a8 Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Mon, 24 Sep 2012 15:29:01 -0400 Subject: fdo#55297: Fix regression in chart complex category placements. This is effectively a revert of a769fd1ec076b61c1ce2f84da87283cc637dd5d5 and a1be31fd8bf830a4f5961e690bcffd050782e210 which unfortunately caused regression in complex category placements. This unfortunately re-introduces fdo#44832. We need to re-think how to fix that one without breaking the multi-level category feature. Change-Id: I1ed8364a46174ac6c29aa0b027a33f84bcca51fa Signed-off-by: Noel Power --- chart2/source/view/axes/VCartesianAxis.cxx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/chart2/source/view/axes/VCartesianAxis.cxx b/chart2/source/view/axes/VCartesianAxis.cxx index 9ffd92348a12..b75e12d823cc 100644 --- a/chart2/source/view/axes/VCartesianAxis.cxx +++ b/chart2/source/view/axes/VCartesianAxis.cxx @@ -473,11 +473,11 @@ void VCartesianAxis::createAllTickInfosFromComplexCategories( ::std::vector< ::s rAllTickInfos.clear(); sal_Int32 nLevel=0; sal_Int32 nLevelCount = m_aAxisProperties.m_pExplicitCategoriesProvider->getCategoryLevelCount(); - sal_Int32 nCatIndex = 0; for( ; nLevel aTickInfoVector; std::vector< ComplexCategory > aComplexCategories( m_aAxisProperties.m_pExplicitCategoriesProvider->getCategoriesByLevel( nLevel ) ); + sal_Int32 nCatIndex = 0; std::vector< ComplexCategory >::const_iterator aIt(aComplexCategories.begin()); std::vector< ComplexCategory >::const_iterator aEnd(aComplexCategories.end()); for(;aIt!=aEnd;++aIt) @@ -1328,13 +1328,18 @@ void VCartesianAxis::doStaggeringOfLabels( const AxisLabelProperties& rAxisLabel B2DVector aCummulatedLabelsDistance(0,0); for( sal_Int32 nTextLevel=0; nTextLevel apTickIter(createLabelTickIterator( nTextLevel )); - if(apTickIter) + boost::scoped_ptr apTickIter(createLabelTickIterator(nTextLevel)); + if (apTickIter) { double fRotationAngleDegree = m_aAxisLabelProperties.fRotationAngleDegree; + if( nTextLevel>0 ) + { + lcl_shiftLables( *apTickIter.get(), aCummulatedLabelsDistance ); + fRotationAngleDegree = 0.0; + } aCummulatedLabelsDistance += lcl_getLabelsDistance( *apTickIter.get() - , pTickFactory2D->getDistanceAxisTickToText( m_aAxisProperties ) - , fRotationAngleDegree ); + , pTickFactory2D->getDistanceAxisTickToText( m_aAxisProperties ) + , fRotationAngleDegree ); } } } -- cgit