[Libreoffice-commits] core.git: chart2/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Mon Nov 26 08:48:04 UTC 2018


 chart2/source/view/charttypes/PieChart.cxx |   13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

New commits:
commit 3339c730f8c9a6088a2e8b335185f1bf0b232216
Author:     Tamas Bunth <tamas.bunth at collabora.co.uk>
AuthorDate: Mon Nov 26 07:19:41 2018 +0100
Commit:     Tamás Bunth <btomi96 at gmail.com>
CommitDate: Mon Nov 26 09:47:43 2018 +0100

    Put text label outside of the pie if..
    
    performLabelBestFitInnerPlacement fails.
    
    Change-Id: Ic84e8b42e02da2023b22a9406c44d462170c5305
    Reviewed-on: https://gerrit.libreoffice.org/64015
    Tested-by: Jenkins
    Reviewed-by: Tamás Bunth <btomi96 at gmail.com>

diff --git a/chart2/source/view/charttypes/PieChart.cxx b/chart2/source/view/charttypes/PieChart.cxx
index 7f03317b5daa..35e789b52f8f 100644
--- a/chart2/source/view/charttypes/PieChart.cxx
+++ b/chart2/source/view/charttypes/PieChart.cxx
@@ -1575,7 +1575,18 @@ void PieChart::performLabelBestFit(ShapeParam& rShapeParam, PieLabelInfo const &
 
     if( !performLabelBestFitInnerPlacement(rShapeParam, rPieLabelInfo) )
     {
-        // TODO
+        // If it does not fit inside, let's put it outside
+        PolarLabelPositionHelper aPolarPosHelper(m_pPosHelper.get(),m_nDimension,m_xLogicTarget,m_pShapeFactory);
+        auto eAlignment = LABEL_ALIGN_CENTER;
+        awt::Point aScreenPosition2D(
+        aPolarPosHelper.getLabelScreenPositionAndAlignmentForUnitCircleValues(eAlignment, css::chart::DataLabelPlacement::OUTSIDE
+        , rShapeParam.mfUnitCircleStartAngleDegree, rShapeParam.mfUnitCircleWidthAngleDegree
+        , rShapeParam.mfUnitCircleInnerRadius, rShapeParam.mfUnitCircleOuterRadius, rShapeParam.mfLogicZ+0.5, 0 ));
+        basegfx::B2IVector aTranslationVector = rPieLabelInfo.aFirstPosition - rPieLabelInfo.aOrigin;
+        aTranslationVector.setLength(150);
+        aScreenPosition2D.X += aTranslationVector.getX();
+        aScreenPosition2D.Y += aTranslationVector.getY();
+        rPieLabelInfo.xLabelGroupShape->setPosition(aScreenPosition2D);
     }
 }
 


More information about the Libreoffice-commits mailing list