From e2f4e65a7b8024c00b049eebf0d87637efda7f24 Mon Sep 17 00:00:00 2001 From: Balazs Varga Date: Thu, 27 Aug 2020 11:21:48 +0200 Subject: [PATCH] tdf#134571 chart2, xmloff: add loext:custom-leader-lines MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit new ODF chart series style attribute for saving not default (switched off) state of data labels in custom positions. Note: import of the embedded chart of the DOCX unit test document uses also ODF format in the background, testing also this loext attribute, i.e. the chart of the unit test document doesn't contain custom leader lines. Change-Id: Ia6b76e8d7fe5b6b6204761f3bbc2309f1b631008 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101442 Tested-by: László Németh Reviewed-by: László Németh --- chart2/qa/extras/chart2export.cxx | 18 ++++++++++++++---- .../data/docx/MSO_Custom_Leader_Line.docx | Bin 0 -> 25883 bytes .../DataSeriesPointWrapper.cxx | 7 +++++++ include/xmloff/xmltoken.hxx | 1 + .../OpenDocument-schema-v1.3+libreoffice.rng | 9 +++++++++ xmloff/source/chart/PropertyMap.hxx | 1 + xmloff/source/core/xmltoken.cxx | 3 ++- xmloff/source/token/tokens.txt | 1 + 8 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 chart2/qa/extras/data/docx/MSO_Custom_Leader_Line.docx diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 4be864c69ce4..6384ac17f0bc 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -2374,10 +2374,19 @@ void Chart2ExportTest::testCustomDataLabelMultipleSeries() void Chart2ExportTest::testLeaderLines() { load("/chart2/qa/extras/data/xlsx/", "testTdf90749.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); - CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser[1]/c:dLbls/c:extLst/c:ext/c15:showLeaderLines", "val", "1"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser[2]/c:dLbls/c:extLst/c:ext/c15:showLeaderLines", "val", "0"); + { + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser[1]/c:dLbls/c:extLst/c:ext/c15:showLeaderLines", "val", "1"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser[2]/c:dLbls/c:extLst/c:ext/c15:showLeaderLines", "val", "0"); + } + load("/chart2/qa/extras/data/docx/", "MSO_Custom_Leader_Line.docx"); + { + xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1", "Office Open XML Text"); + CPPUNIT_ASSERT(pXmlDoc); + // tdf#134571: Check the leader line is switch off. + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:extLst/c:ext/c15:showLeaderLines", "val", "0"); + } } void Chart2ExportTest::testNumberFormatExportPPTX() @@ -2882,6 +2891,7 @@ void Chart2ExportTest::testTdf123647() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart", 1); } + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/MSO_Custom_Leader_Line.docx b/chart2/qa/extras/data/docx/MSO_Custom_Leader_Line.docx new file mode 100644 index 0000000000000000000000000000000000000000..c158a0d76513c7aa7586180008edc7fe39e8c2fa GIT binary patch literal 25883 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 literal 0 HcmV?d00001 diff --git a/chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx b/chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx index a6d45dddaa47..6701c1061b01 100644 --- a/chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx +++ b/chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx @@ -79,6 +79,7 @@ enum PROP_SERIES_DATAPOINT_LABEL_PLACEMENT, //other series properties PROP_SERIES_ATTACHED_AXIS, + PROP_SERIES_SHOW_CUSTOM_LEADERLINES, PROP_SERIES_DATAPOINT_TEXT_ROTATION, PROP_SERIES_DATAPOINT_LABEL_BORDER_STYLE, PROP_SERIES_DATAPOINT_LABEL_BORDER_WIDTH, @@ -211,6 +212,12 @@ void lcl_AddPropertiesToVector_SeriesOnly( cppu::UnoType::get(), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT ); + + rOutProperties.emplace_back( "ShowCustomLeaderLines", + PROP_SERIES_SHOW_CUSTOM_LEADERLINES, + cppu::UnoType::get(), + beans::PropertyAttribute::BOUND + | beans::PropertyAttribute::MAYBEDEFAULT ); } uno::Sequence< Property > lcl_GetPropertySequence( DataSeriesPointWrapper::eType _eType ) diff --git a/include/xmloff/xmltoken.hxx b/include/xmloff/xmltoken.hxx index 4e0385914cf3..1b7a932f9399 100644 --- a/include/xmloff/xmltoken.hxx +++ b/include/xmloff/xmltoken.hxx @@ -538,6 +538,7 @@ namespace xmloff::token { XML_CUSTOM_LABEL_FIELD, XML_CUSTOM_LABEL_POS_X, XML_CUSTOM_LABEL_POS_Y, + XML_CUSTOM_LEADERLINES, XML_CUT, XML_CUT_OFFS, XML_CUT_OFFS2, diff --git a/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng b/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng index 5141f9e0fbe4..486471a317d5 100644 --- a/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng +++ b/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng @@ -2463,4 +2463,13 @@ xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1. + + + + + + + + + diff --git a/xmloff/source/chart/PropertyMap.hxx b/xmloff/source/chart/PropertyMap.hxx index 77340f740155..d98fa98e8912 100644 --- a/xmloff/source/chart/PropertyMap.hxx +++ b/xmloff/source/chart/PropertyMap.hxx @@ -252,6 +252,7 @@ const XMLPropertyMapEntry aXMLChartPropMap[] = MAP_ENTRY_ODF12( "LabelPlacement", CHART, XML_LABEL_POSITION, XML_SCH_TYPE_LABEL_PLACEMENT_TYPE ), MAP_ENTRY( "SegmentOffset", CHART, XML_PIE_OFFSET, XML_TYPE_NUMBER ), MAP_SPECIAL_ODF12( "PercentageNumberFormat", STYLE, XML_PERCENTAGE_DATA_STYLE_NAME, XML_TYPE_NUMBER, XML_SCH_CONTEXT_SPECIAL_NUMBER_FORMAT ), + MAP_ENTRY_ODF_EXT( "ShowCustomLeaderLines", LO_EXT, XML_CUSTOM_LEADERLINES, XML_TYPE_BOOL ), // text properties for titles MAP_SPECIAL( "TextRotation", STYLE, XML_ROTATION_ANGLE, XML_TYPE_NUMBER, XML_SCH_CONTEXT_SPECIAL_TEXT_ROTATION ), // convert 1/100th degrees to degrees diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx index b00d8f25985e..d78de79842aa 100644 --- a/xmloff/source/core/xmltoken.cxx +++ b/xmloff/source/core/xmltoken.cxx @@ -540,9 +540,10 @@ namespace xmloff::token { TOKEN( "custom-iconset", XML_CUSTOM_ICONSET ), TOKEN( "custom-iconset-index", XML_CUSTOM_ICONSET_INDEX ), TOKEN( "custom-iconset-name", XML_CUSTOM_ICONSET_NAME ), - TOKEN( "custom-label-field", XML_CUSTOM_LABEL_FIELD ), + TOKEN( "custom-label-field", XML_CUSTOM_LABEL_FIELD ), TOKEN( "custom-label-pos-x", XML_CUSTOM_LABEL_POS_X ), TOKEN( "custom-label-pos-y", XML_CUSTOM_LABEL_POS_Y ), + TOKEN( "custom-leader-lines", XML_CUSTOM_LEADERLINES ), TOKEN( "cut", XML_CUT ), TOKEN( "cut-offs", XML_CUT_OFFS ), TOKEN( "cut_offs", XML_CUT_OFFS2 ), diff --git a/xmloff/source/token/tokens.txt b/xmloff/source/token/tokens.txt index 259dd4ce9eac..762879a26c27 100644 --- a/xmloff/source/token/tokens.txt +++ b/xmloff/source/token/tokens.txt @@ -458,6 +458,7 @@ custom-iconset-name custom-label-field custom-label-pos-x custom-label-pos-y +custom-leader-lines cut cut-offs cut_offs