From ada05b8874aa2c5161550dbc87d79b47f40f0df8 Mon Sep 17 00:00:00 2001 From: Attila Szűcs Date: Thu, 13 Jun 2024 21:33:13 +0200 Subject: tdf#161607 Chart: import-export LeaderLines data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implemented Importexport of some leaderLines data (color and width of the lines) from/to OOXML. It now supports only the solidFill color. Used properties: "LineColor" and "LineWidth" Change-Id: Ib33392d0404e1186328176fd93322e02b4006f3c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168974 Reviewed-by: Caolán McNamara Tested-by: Jenkins Tested-by: Caolán McNamara --- oox/source/export/chartexport.cxx | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'oox/source/export') diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index b1db415aeef2..c63c8497daf1 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -4102,6 +4102,40 @@ void ChartExport::exportDataLabels( xPropSet->getPropertyValue(u"ShowCustomLeaderLines"_ustr) >>= bShowLeaderLines; pFS->singleElement(FSNS(XML_c, XML_showLeaderLines), XML_val, ToPsz10(bShowLeaderLines)); + // LeaderLine color, and width + util::Color aLineColor = -1; + xPropSet->getPropertyValue(u"LineColor"_ustr) >>= aLineColor; + // Line width + sal_Int32 nLineWidth = -1; + xPropSet->getPropertyValue(u"LineWidth"_ustr) >>= nLineWidth; + + if (aLineColor > 0 || nLineWidth > 0) + { + pFS->startElement(FSNS(XML_c, XML_leaderLines)); + pFS->startElement(FSNS(XML_c, XML_spPr)); + + if (nLineWidth > 0) + pFS->startElement(FSNS(XML_a, XML_ln), XML_w, + OString::number(convertHmmToEmu(nLineWidth))); + else + pFS->startElement(FSNS(XML_a, XML_ln)); + + if (aLineColor != -1) + { + pFS->startElement(FSNS(XML_a, XML_solidFill)); + + OString aStr = I32SHEX(aLineColor); + pFS->singleElement(FSNS(XML_a, XML_srgbClr), XML_val, aStr); + + pFS->endElement(FSNS(XML_a, XML_solidFill)); + } + + pFS->endElement(FSNS(XML_a, XML_ln)); + pFS->endElement(FSNS(XML_c, XML_spPr)); + pFS->endElement(FSNS(XML_c, XML_leaderLines)); + } + + // Export leader line if( eChartType != chart::TYPEID_PIE ) { -- cgit