tdf#134571 chart2, xmloff: add loext:custom-leader-lines

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 <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
This commit is contained in:
Balazs Varga
2020-08-27 11:21:48 +02:00
committed by László Németh
parent 5fca6fefc9
commit e2f4e65a7b
8 changed files with 35 additions and 5 deletions

View File

@@ -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();

Binary file not shown.

View File

@@ -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 )

View File

@@ -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,

View File

@@ -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>

View File

@@ -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

View File

@@ -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 ),

View File

@@ -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