summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chart2/qa/extras/chart2export.cxx18
-rw-r--r--chart2/qa/extras/data/docx/MSO_Custom_Leader_Line.docxbin0 -> 25883 bytes
-rw-r--r--chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx7
-rw-r--r--include/xmloff/xmltoken.hxx1
-rw-r--r--schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng9
-rw-r--r--xmloff/source/chart/PropertyMap.hxx1
-rw-r--r--xmloff/source/core/xmltoken.cxx3
-rw-r--r--xmloff/source/token/tokens.txt1
8 files changed, 35 insertions, 5 deletions
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 000000000000..c158a0d76513
--- /dev/null
+++ b/chart2/qa/extras/data/docx/MSO_Custom_Leader_Line.docx
Binary files differ
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<sal_Int32>::get(),
beans::PropertyAttribute::BOUND
| beans::PropertyAttribute::MAYBEDEFAULT );
+
+ rOutProperties.emplace_back( "ShowCustomLeaderLines",
+ PROP_SERIES_SHOW_CUSTOM_LEADERLINES,
+ cppu::UnoType<sal_Bool>::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.
</rng:optional>
</rng:define>
+ <!-- TODO no proposal -->
+ <rng:define name="style-chart-properties-attlist" combine="interleave">
+ <rng:optional>
+ <rng:attribute name="loext:custom-leader-lines">
+ <rng:ref name="boolean"/>
+ </rng:attribute>
+ </rng:optional>
+ </rng:define>
+
</rng:grammar>
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