diff options
author | Tamas Bunth <tamas.bunth@collabora.co.uk> | 2018-11-26 07:19:41 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2018-11-27 16:01:00 +0100 |
commit | 4fae59d27c29011b1bcd6e9db8c43e38dfe50c82 (patch) | |
tree | 9785c9776796fafa28333438bece9e3625eb0292 /chart2 | |
parent | 25de3eed927b9286b9a5333dc1703c0bb4c847e9 (diff) |
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@gmail.com>
(cherry picked from commit 3339c730f8c9a6088a2e8b335185f1bf0b232216)
Reviewed-on: https://gerrit.libreoffice.org/64033
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'chart2')
-rw-r--r-- | chart2/source/view/charttypes/PieChart.cxx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/chart2/source/view/charttypes/PieChart.cxx b/chart2/source/view/charttypes/PieChart.cxx index f3f1ef3e1cf9..3cc4dc3817ea 100644 --- a/chart2/source/view/charttypes/PieChart.cxx +++ b/chart2/source/view/charttypes/PieChart.cxx @@ -1590,7 +1590,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); } } |