summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chart2/qa/extras/chart2export.cxx2
-rw-r--r--chart2/source/model/main/DataSeriesProperties.cxx7
-rw-r--r--chart2/source/model/main/DataSeriesProperties.hxx3
-rw-r--r--chart2/source/view/charttypes/VSeriesPlotter.cxx3
-rw-r--r--offapi/com/sun/star/chart2/DataSeries.idl7
-rw-r--r--oox/source/drawingml/chart/seriescontext.cxx6
-rw-r--r--oox/source/drawingml/chart/seriesconverter.cxx2
-rw-r--r--oox/source/export/chartexport.cxx6
-rw-r--r--oox/source/token/properties.txt2
9 files changed, 30 insertions, 8 deletions
diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index f9b2651a922c..754768880054 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -2373,7 +2373,7 @@ void Chart2ExportTest::testLeaderLines()
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", "1");
+ assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser[2]/c:dLbls/c:extLst/c:ext/c15:showLeaderLines", "val", "0");
}
void Chart2ExportTest::testNumberFormatExportPPTX()
diff --git a/chart2/source/model/main/DataSeriesProperties.cxx b/chart2/source/model/main/DataSeriesProperties.cxx
index 5d0cb777e151..d85d264753c1 100644
--- a/chart2/source/model/main/DataSeriesProperties.cxx
+++ b/chart2/source/model/main/DataSeriesProperties.cxx
@@ -69,6 +69,12 @@ void DataSeriesProperties::AddPropertiesToVector(
beans::PropertyAttribute::BOUND
| beans::PropertyAttribute::MAYBEVOID );
+ rOutProperties.emplace_back( "ShowCustomLeaderLines",
+ PROP_DATASERIES_SHOW_CUSTOM_LEADERLINES,
+ cppu::UnoType<sal_Bool>::get(),
+ beans::PropertyAttribute::BOUND
+ | beans::PropertyAttribute::MAYBEDEFAULT );
+
// add properties of service DataPointProperties
DataPointProperties::AddPropertiesToVector( rOutProperties );
}
@@ -80,6 +86,7 @@ void DataSeriesProperties::AddDefaultsToMap(
PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATASERIES_VARY_COLORS_BY_POINT, false );
PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_DATASERIES_ATTACHED_AXIS_INDEX, 0 );
PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATASERIES_SHOW_LEGEND_ENTRY, true );
+ PropertyHelper::setPropertyValueDefault( rOutMap, PROP_DATASERIES_SHOW_CUSTOM_LEADERLINES, true );
// PROP_DATASERIES_ATTRIBUTED_DATA_POINTS has no default
diff --git a/chart2/source/model/main/DataSeriesProperties.hxx b/chart2/source/model/main/DataSeriesProperties.hxx
index e20602baf45f..6bc058201466 100644
--- a/chart2/source/model/main/DataSeriesProperties.hxx
+++ b/chart2/source/model/main/DataSeriesProperties.hxx
@@ -35,7 +35,8 @@ namespace chart::DataSeriesProperties
PROP_DATASERIES_VARY_COLORS_BY_POINT,
PROP_DATASERIES_ATTACHED_AXIS_INDEX,
PROP_DATASERIES_SHOW_LEGEND_ENTRY,
- PROP_DATASERIES_DELETED_LEGEND_ENTRIES
+ PROP_DATASERIES_DELETED_LEGEND_ENTRIES,
+ PROP_DATASERIES_SHOW_CUSTOM_LEADERLINES
};
void AddPropertiesToVector(
diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx
index 14b322e8f587..8f7dcbb59a1d 100644
--- a/chart2/source/view/charttypes/VSeriesPlotter.cxx
+++ b/chart2/source/view/charttypes/VSeriesPlotter.cxx
@@ -702,7 +702,8 @@ uno::Reference< drawing::XShape > VSeriesPlotter::createDataLabel( const uno::Re
if( aRelPos.X != -1 )
{
xTextShape->setPosition(aRelPos);
- if( !m_xChartTypeModel->getChartType().equalsIgnoreAsciiCase(CHART2_SERVICE_NAME_CHARTTYPE_PIE) )
+ if( !m_xChartTypeModel->getChartType().equalsIgnoreAsciiCase(CHART2_SERVICE_NAME_CHARTTYPE_PIE) &&
+ rDataSeries.getPropertiesOfSeries()->getPropertyValue( "ShowCustomLeaderLines" ).get<sal_Bool>())
{
sal_Int32 nX1 = rScreenPosition2D.X;
sal_Int32 nY1 = rScreenPosition2D.Y;
diff --git a/offapi/com/sun/star/chart2/DataSeries.idl b/offapi/com/sun/star/chart2/DataSeries.idl
index ffcf8daeb7f0..11d4f529007c 100644
--- a/offapi/com/sun/star/chart2/DataSeries.idl
+++ b/offapi/com/sun/star/chart2/DataSeries.idl
@@ -187,6 +187,13 @@ service DataSeries
@since LibreOffice 7.0
*/
[optional, property] sequence<long> DeletedLegendEntries;
+
+ /** This property describes whether the data point and the data label
+ are connected with a leader line.
+
+ @since LibreOffice 7.1
+ */
+ [optional, property] boolean ShowCustomLeaderLines;
};
} ; // chart2
diff --git a/oox/source/drawingml/chart/seriescontext.cxx b/oox/source/drawingml/chart/seriescontext.cxx
index 912b7252e02b..3f92818c5544 100644
--- a/oox/source/drawingml/chart/seriescontext.cxx
+++ b/oox/source/drawingml/chart/seriescontext.cxx
@@ -139,8 +139,12 @@ ContextHandlerRef DataLabelsContext::onCreateContext( sal_Int32 nElement, const
case C_TOKEN( leaderLines ):
return new ShapePrWrapperContext( *this, mrModel.mxLeaderLines.create() );
case C_TOKEN( showLeaderLines ):
- mrModel.mbShowLeaderLines = rAttribs.getBool( XML_val, !bMSO2007Doc );
+ case C15_TOKEN( showLeaderLines ):
+ mrModel.mbShowLeaderLines = rAttribs.getBool( XML_val, true );
return nullptr;
+ case C_TOKEN( extLst ):
+ case C_TOKEN( ext ):
+ return new DataLabelsContext( *this, mrModel );
}
return lclDataLabelSharedCreateContext( *this, nElement, rAttribs, mrModel, bMSO2007Doc );
}
diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx
index 6e75fc89beab..b80ea05ae481 100644
--- a/oox/source/drawingml/chart/seriesconverter.cxx
+++ b/oox/source/drawingml/chart/seriesconverter.cxx
@@ -419,7 +419,7 @@ void DataLabelsConverter::convertFromModel( const Reference< XDataSeries >& rxDa
}
// import leaderline of data labels
if( !mrModel.mbShowLeaderLines )
- aPropSet.setProperty( PROP_ShowLeaderLines, false );
+ aPropSet.setProperty( PROP_ShowCustomLeaderLines, false );
// data point label settings
for (auto const& pointLabel : mrModel.maPointLabels)
diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index db4af798c867..ab8458d44b04 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -3600,14 +3600,16 @@ void ChartExport::exportDataLabels(
// Baseline label properties for all labels.
writeLabelProperties(pFS, this, xPropSet, aParam);
- pFS->singleElement(FSNS(XML_c, XML_showLeaderLines), XML_val, "0");
+ bool bShowLeaderLines = false;
+ xPropSet->getPropertyValue("ShowCustomLeaderLines") >>= bShowLeaderLines;
+ pFS->singleElement(FSNS(XML_c, XML_showLeaderLines), XML_val, ToPsz10(bShowLeaderLines));
// Export leader line
if( eChartType != chart::TYPEID_PIE )
{
pFS->startElement(FSNS(XML_c, XML_extLst));
pFS->startElement(FSNS(XML_c, XML_ext), XML_uri, "{CE6537A1-D6FC-4f65-9D91-7224C49458BB}", FSNS(XML_xmlns, XML_c15), GetFB()->getNamespaceURL(OOX_NS(c15)));
- pFS->singleElement(FSNS(XML_c15, XML_showLeaderLines), XML_val, "1");
+ pFS->singleElement(FSNS(XML_c15, XML_showLeaderLines), XML_val, ToPsz10(bShowLeaderLines));
pFS->endElement(FSNS(XML_c, XML_ext));
pFS->endElement(FSNS(XML_c, XML_extLst));
}
diff --git a/oox/source/token/properties.txt b/oox/source/token/properties.txt
index fe8d75520077..46200bf221ff 100644
--- a/oox/source/token/properties.txt
+++ b/oox/source/token/properties.txt
@@ -463,6 +463,7 @@ Show
ShowBorder
ShowCharts
ShowCorrelationCoefficient
+ShowCustomLeaderLines
ShowDetail
ShowDrawing
ShowEmpty
@@ -474,7 +475,6 @@ ShowFormulas
ShowGrid
ShowHighLow
ShowInputMessage
-ShowLeaderLines
ShowLegendEntry
ShowList
ShowNegativeError