From e6591c6e940cc694aa68c97e287e59572f690d74 Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Fri, 7 Dec 2012 21:14:50 -0500 Subject: bnc#791952: Use "center" label placement for "Best fit" in pie charts. It works better this way for Excel interoperability. In Excel, Best fit is slightly different than the center placement, but the two are pretty close in pie charts. Change-Id: I7f04a1babb04fd488d8cf90df247c294fa9d7b67 --- chart2/source/view/charttypes/PieChart.cxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'chart2') diff --git a/chart2/source/view/charttypes/PieChart.cxx b/chart2/source/view/charttypes/PieChart.cxx index fff4e9872ad1..e8fc6892d89d 100644 --- a/chart2/source/view/charttypes/PieChart.cxx +++ b/chart2/source/view/charttypes/PieChart.cxx @@ -449,9 +449,15 @@ void PieChart::createShapes() } sal_Int32 nLabelPlacement = pSeries->getLabelPlacement( nPointIndex, m_xChartTypeModel, m_nDimension, m_pPosHelper->isSwapXAndY() ); + + // AVOID_OVERLAP is in fact "Best fit" in the UI. bool bMovementAllowed = ( nLabelPlacement == ::com::sun::star::chart::DataLabelPlacement::AVOID_OVERLAP ); if( bMovementAllowed ) - nLabelPlacement = ::com::sun::star::chart::DataLabelPlacement::OUTSIDE; + // Use center for "Best fit" for now. In the future we + // may want to implement a real best fit algorithm. + // But center is good enough, and close to what Excel + // does. + nLabelPlacement = ::com::sun::star::chart::DataLabelPlacement::CENTER; LabelAlignment eAlignment(LABEL_ALIGN_CENTER); sal_Int32 nScreenValueOffsetInRadiusDirection = 0 ; -- cgit