[Libreoffice-commits] core.git: include/xmloff xmloff/inc xmloff/source
Tamas Bunth (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jan 1 16:36:22 UTC 2020
include/xmloff/xmltoken.hxx | 1
xmloff/inc/SchXMLImport.hxx | 1
xmloff/source/chart/SchXMLExport.cxx | 55 ++++++++------
xmloff/source/chart/SchXMLImport.cxx | 1
xmloff/source/chart/SchXMLPlotAreaContext.cxx | 100 ++++++++++++++++++++++----
xmloff/source/chart/SchXMLPlotAreaContext.hxx | 47 +++++++++++-
xmloff/source/chart/SchXMLSeries2Context.cxx | 18 ++--
xmloff/source/chart/transporttypes.hxx | 7 +
xmloff/source/core/xmltoken.cxx | 1
xmloff/source/token/tokens.txt | 1
10 files changed, 186 insertions(+), 46 deletions(-)
New commits:
commit 7d2c7e7af04d9604d86d2d605ef95b9abb10966c
Author: Tamas Bunth <tamas.bunth at collabora.co.uk>
AuthorDate: Wed Dec 18 13:08:11 2019 +0100
Commit: Tamás Bunth <btomi96 at gmail.com>
CommitDate: Wed Jan 1 17:35:50 2020 +0100
tdf#123206 Store custom label as chart:data-label
Use the chart:data-label element instead of using the
loext:custom-label-field attribute.
chart:data-label stores can be a child of chart:data-point and it may
contain a text:o element for holding one or more paragraphs of custom
label text.
This commit aims to export and import chart:data-label with paragraphs
put into different text:span elements. These span elements may hold a
text:style-name attribute in order to achieve formatted text.
This structure is already in the ODF format.
Change-Id: I0bea7ce1a16af9c47b33555e18545bdaae7e95ca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85659
Tested-by: Jenkins
Reviewed-by: Tamás Bunth <btomi96 at gmail.com>
diff --git a/include/xmloff/xmltoken.hxx b/include/xmloff/xmltoken.hxx
index 02bd9702d980..1175958548ff 100644
--- a/include/xmloff/xmltoken.hxx
+++ b/include/xmloff/xmltoken.hxx
@@ -551,6 +551,7 @@ namespace xmloff { namespace token {
XML_DATA_BAR,
XML_DATA_BAR_ENTRY,
XML_DATA_CELL_RANGE_ADDRESS,
+ XML_DATA_LABEL,
XML_DATA_LABEL_NUMBER,
XML_DATA_LABEL_SYMBOL,
XML_DATA_LABEL_TEXT,
diff --git a/xmloff/inc/SchXMLImport.hxx b/xmloff/inc/SchXMLImport.hxx
index 51aec6dc5c46..2a1080bf1eec 100644
--- a/xmloff/inc/SchXMLImport.hxx
+++ b/xmloff/inc/SchXMLImport.hxx
@@ -73,6 +73,7 @@ enum SchXMLPlotAreaElemTokenMap
enum SchXMLSeriesElemTokenMap
{
XML_TOK_SERIES_DATA_POINT,
+ XML_TOK_SERIES_DATA_LABEL,
XML_TOK_SERIES_DOMAIN,
XML_TOK_SERIES_MEAN_VALUE_LINE,
XML_TOK_SERIES_REGRESSION_CURVE,
diff --git a/xmloff/source/chart/SchXMLExport.cxx b/xmloff/source/chart/SchXMLExport.cxx
index 25ec8022bf70..b3d18c7c758c 100644
--- a/xmloff/source/chart/SchXMLExport.cxx
+++ b/xmloff/source/chart/SchXMLExport.cxx
@@ -113,11 +113,13 @@ using ::std::vector;
namespace
{
+ using CustomLabelSeq = Sequence<Reference<chart2::XDataPointCustomLabelField>>;
+
struct SchXMLDataPointStruct
{
OUString maStyleName;
sal_Int32 mnRepeat;
- OUString msCustomLabelText;
+ CustomLabelSeq mCustomLabelText;
SchXMLDataPointStruct() : mnRepeat( 1 ) {}
};
@@ -225,6 +227,8 @@ public:
const css::uno::Reference< css::chart2::XDiagram > & xDiagram,
bool bExportContent );
+ void exportCustomLabel(const CustomLabelSeq & xCustomLabel);
+
void exportRegressionCurve(
const css::uno::Reference<css::chart2::XDataSeries>& xSeries,
const css::awt::Size& rPageSize,
@@ -273,31 +277,26 @@ public:
namespace
{
-OUString lcl_getCustomLabelField(sal_Int32 nDataPointIndex,
+CustomLabelSeq lcl_getCustomLabelField(sal_Int32 nDataPointIndex,
const uno::Reference< chart2::XDataSeries >& rSeries)
{
if( !rSeries.is() )
- return OUString{};
+ return CustomLabelSeq();
const SvtSaveOptions::ODFDefaultVersion nCurrentODFVersion( SvtSaveOptions().GetODFDefaultVersion() );
if( nCurrentODFVersion <= SvtSaveOptions::ODFVER_012 )//do not export to ODF 1.2 or older
- return OUString{};
+ return CustomLabelSeq();
- // export custom label text
if(Reference<beans::XPropertySet> xLabels = rSeries->getDataPointByIndex(nDataPointIndex); xLabels.is())
{
if(Any aAny = xLabels->getPropertyValue("CustomLabelFields"); aAny.hasValue())
{
Sequence<uno::Reference<chart2::XDataPointCustomLabelField>> aCustomLabels;
aAny >>= aCustomLabels;
- OUString sLabel;
- // TODO export formatted string instead of simple characters
- for(auto& aLabel : aCustomLabels)
- sLabel += aLabel->getString();
- return sLabel;
+ return aCustomLabels;
}
}
- return OUString{};
+ return CustomLabelSeq();
}
class lcl_MatchesRole
@@ -3261,7 +3260,7 @@ void SchXMLExportHelper_Impl::exportDataPoints(
SchXMLDataPointStruct aPoint;
aPoint.maStyleName = maAutoStyleNameQueue.front();
if(bExportNumFmt)
- aPoint.msCustomLabelText = lcl_getCustomLabelField(nElement, xSeries);
+ aPoint.mCustomLabelText = lcl_getCustomLabelField(nElement, xSeries);
maAutoStyleNameQueue.pop();
aDataPointVector.push_back( aPoint );
}
@@ -3289,7 +3288,7 @@ void SchXMLExportHelper_Impl::exportDataPoints(
{
SchXMLDataPointStruct aPoint;
aPoint.mnRepeat = nCurrIndex - nLastIndex - 1;
- aPoint.msCustomLabelText = lcl_getCustomLabelField(nCurrIndex, xSeries);
+ aPoint.mCustomLabelText = lcl_getCustomLabelField(nCurrIndex, xSeries);
aDataPointVector.push_back( aPoint );
}
@@ -3322,7 +3321,7 @@ void SchXMLExportHelper_Impl::exportDataPoints(
SAL_WARN_IF( maAutoStyleNameQueue.empty(), "xmloff.chart", "Autostyle queue empty!" );
SchXMLDataPointStruct aPoint;
aPoint.maStyleName = maAutoStyleNameQueue.front();
- aPoint.msCustomLabelText = lcl_getCustomLabelField(nCurrIndex, xSeries);
+ aPoint.mCustomLabelText = lcl_getCustomLabelField(nCurrIndex, xSeries);
maAutoStyleNameQueue.pop();
aDataPointVector.push_back( aPoint );
@@ -3338,7 +3337,7 @@ void SchXMLExportHelper_Impl::exportDataPoints(
// if we get here the property states are empty
SchXMLDataPointStruct aPoint;
- aPoint.msCustomLabelText = lcl_getCustomLabelField(nCurrIndex, xSeries);
+ aPoint.mCustomLabelText = lcl_getCustomLabelField(nCurrIndex, xSeries);
aDataPointVector.push_back( aPoint );
nLastIndex = nCurrIndex;
@@ -3368,13 +3367,10 @@ void SchXMLExportHelper_Impl::exportDataPoints(
{
aPoint = rPoint;
- if( aPoint.maStyleName == aLastPoint.maStyleName && aPoint.msCustomLabelText.isEmpty() )
+ if( aPoint.maStyleName == aLastPoint.maStyleName && aLastPoint.mCustomLabelText.getLength() < 1 )
aPoint.mnRepeat += aLastPoint.mnRepeat;
else if( aLastPoint.mnRepeat > 0 )
{
- // export custom label text
- if(!aLastPoint.msCustomLabelText.isEmpty())
- mrExport.AddAttribute( XML_NAMESPACE_LO_EXT, XML_CUSTOM_LABEL_FIELD, aLastPoint.msCustomLabelText);
// write last element
if( !aLastPoint.maStyleName.isEmpty() )
mrExport.AddAttribute( XML_NAMESPACE_CHART, XML_STYLE_NAME, aLastPoint.maStyleName );
@@ -3384,16 +3380,13 @@ void SchXMLExportHelper_Impl::exportDataPoints(
OUString::number( ( aLastPoint.mnRepeat ) ));
SvXMLElementExport aPointElem( mrExport, XML_NAMESPACE_CHART, XML_DATA_POINT, true, true );
+ exportCustomLabel(aLastPoint.mCustomLabelText);
}
aLastPoint = aPoint;
}
// write last element if it hasn't been written in last iteration
if( aPoint.maStyleName == aLastPoint.maStyleName )
{
- // export custom label text
- if(!aLastPoint.msCustomLabelText.isEmpty())
- mrExport.AddAttribute( XML_NAMESPACE_LO_EXT, XML_CUSTOM_LABEL_FIELD, aLastPoint.msCustomLabelText);
-
if( !aLastPoint.maStyleName.isEmpty() )
mrExport.AddAttribute( XML_NAMESPACE_CHART, XML_STYLE_NAME, aLastPoint.maStyleName );
@@ -3402,6 +3395,22 @@ void SchXMLExportHelper_Impl::exportDataPoints(
OUString::number( ( aLastPoint.mnRepeat ) ));
SvXMLElementExport aPointElem( mrExport, XML_NAMESPACE_CHART, XML_DATA_POINT, true, true );
+ exportCustomLabel(aLastPoint.mCustomLabelText);
+ }
+}
+
+void SchXMLExportHelper_Impl::exportCustomLabel( const CustomLabelSeq & xCustomLabel )
+{
+ if( xCustomLabel.getLength() < 1 )
+ return; // nothing to export
+
+ SvXMLElementExport aLabelElem( mrExport, XML_NAMESPACE_CHART, XML_DATA_LABEL, true, true);
+ SvXMLElementExport aPara( mrExport, XML_NAMESPACE_TEXT, XML_P, true, false );
+ for( const Reference<chart2::XDataPointCustomLabelField>& label : xCustomLabel )
+ {
+ // TODO add style
+ SvXMLElementExport aSpan( mrExport, XML_NAMESPACE_TEXT, XML_SPAN, true, false);
+ mrExport.GetDocHandler()->characters(label->getString());
}
}
diff --git a/xmloff/source/chart/SchXMLImport.cxx b/xmloff/source/chart/SchXMLImport.cxx
index 322a97e4331f..d0cd1f99c33e 100644
--- a/xmloff/source/chart/SchXMLImport.cxx
+++ b/xmloff/source/chart/SchXMLImport.cxx
@@ -221,6 +221,7 @@ const SvXMLTokenMap& SchXMLImportHelper::GetSeriesElemTokenMap()
{ XML_NAMESPACE_CHART, XML_REGRESSION_CURVE, XML_TOK_SERIES_REGRESSION_CURVE },
{ XML_NAMESPACE_CHART, XML_ERROR_INDICATOR, XML_TOK_SERIES_ERROR_INDICATOR },
{ XML_NAMESPACE_LO_EXT, XML_PROPERTY_MAPPING, XML_TOK_SERIES_PROPERTY_MAPPING },
+ { XML_NAMESPACE_CHART, XML_DATA_LABEL, XML_TOK_SERIES_DATA_LABEL },
XML_TOKEN_MAP_END
};
diff --git a/xmloff/source/chart/SchXMLPlotAreaContext.cxx b/xmloff/source/chart/SchXMLPlotAreaContext.cxx
index 33bb1e043893..9767efd933dc 100644
--- a/xmloff/source/chart/SchXMLPlotAreaContext.cxx
+++ b/xmloff/source/chart/SchXMLPlotAreaContext.cxx
@@ -587,17 +587,87 @@ void SchXMLPlotAreaContext::EndElement()
SchXMLAxisContext::CorrectAxisPositions( uno::Reference< chart2::XChartDocument >( mrImportHelper.GetChartDocument(), uno::UNO_QUERY ), maChartTypeServiceName, GetImport().GetODFVersion(), m_bAxisPositionAttributeImported );
}
-SchXMLDataPointContext::SchXMLDataPointContext( SvXMLImport& rImport, const OUString& rLocalName,
+SchXMLDataLabelSpanContext::SchXMLDataLabelSpanContext( SvXMLImport& rImport, const OUString& rLocalName, ::std::vector<OUString>& rLabels):
+ SvXMLImportContext( rImport, XML_NAMESPACE_TEXT, rLocalName),
+ mrLabels(rLabels)
+{
+}
+
+void SchXMLDataLabelSpanContext::Characters(const OUString& sChars)
+{
+ mrLabels.push_back(sChars);
+}
+
+SchXMLDataLabelParaContext::SchXMLDataLabelParaContext( SvXMLImport& rImport, const OUString& rLocalName, ::std::vector<OUString>& rLabels):
+ SvXMLImportContext( rImport, XML_NAMESPACE_TEXT, rLocalName),
+ mrLabels(rLabels)
+{
+}
+
+SvXMLImportContextRef SchXMLDataLabelParaContext::CreateChildContext(
+ sal_uInt16 nPrefix,
+ const OUString& rLocalName,
+ const uno::Reference< xml::sax::XAttributeList >& /*xAttrList*/ )
+{
+ SvXMLImportContextRef xContext;
+ if ( IsXMLToken( rLocalName, XML_SPAN ) && nPrefix == XML_NAMESPACE_TEXT )
+ xContext = new SchXMLDataLabelSpanContext(GetImport(), rLocalName, mrLabels);
+ return xContext;
+}
+
+SchXMLDataLabelContext::SchXMLDataLabelContext( SvXMLImport& rImport, const OUString& rLocalName, ::std::vector<OUString>& rLabels):
+ SvXMLImportContext( rImport, XML_NAMESPACE_CHART, rLocalName),
+ mrLabels(rLabels)
+{
+}
+
+SvXMLImportContextRef SchXMLDataLabelContext::CreateChildContext(
+ sal_uInt16 nPrefix,
+ const OUString& rLocalName,
+ const uno::Reference< xml::sax::XAttributeList >& xAttrList )
+{
+ SvXMLImportContextRef xContext;
+ if ( IsXMLToken( rLocalName, XML_P ) && nPrefix == XML_NAMESPACE_TEXT )
+ xContext = new SchXMLDataLabelParaContext(GetImport(), rLocalName, mrLabels);
+
+ if (!xContext)
+ xContext = SvXMLImportContext::CreateChildContext( nPrefix, rLocalName, xAttrList );
+
+ return xContext;
+}
+
+
+SchXMLDataPointContext::SchXMLDataPointContext( SchXMLImportHelper& rImportHelper,
+ SvXMLImport& rImport, const OUString& rLocalName,
::std::vector< DataRowPointStyle >& rStyleVector,
const css::uno::Reference< css::chart2::XDataSeries >& xSeries,
sal_Int32& rIndex,
bool bSymbolSizeForSeriesIsMissingInFile ) :
SvXMLImportContext( rImport, XML_NAMESPACE_CHART, rLocalName ),
+ mrImportHelper( rImportHelper ),
mrStyleVector( rStyleVector ),
- m_xSeries( xSeries ),
mrIndex( rIndex ),
- mbSymbolSizeForSeriesIsMissingInFile( bSymbolSizeForSeriesIsMissingInFile )
+ mDataPoint(DataRowPointStyle::DATA_POINT, xSeries, rIndex, 1, OUString{})
+{
+ mDataPoint.mbSymbolSizeForSeriesIsMissingInFile = bSymbolSizeForSeriesIsMissingInFile;
+}
+
+SvXMLImportContextRef SchXMLDataPointContext::CreateChildContext(
+ sal_uInt16 nPrefix,
+ const OUString& rLocalName,
+ const uno::Reference< xml::sax::XAttributeList >& /*xAttrList*/ )
{
+ SvXMLImportContext* pContext = nullptr;
+ const SvXMLTokenMap& rTokenMap = mrImportHelper.GetSeriesElemTokenMap();
+
+ switch( rTokenMap.Get( nPrefix, rLocalName ))
+ {
+ case XML_TOK_SERIES_DATA_LABEL:
+ mbHasLabelParagraph = true;
+ pContext = new SchXMLDataLabelContext( GetImport(), rLocalName, mDataPoint.mCustomLabels);
+ break;
+ }
+ return pContext;
}
SchXMLDataPointContext::~SchXMLDataPointContext()
@@ -620,29 +690,35 @@ void SchXMLDataPointContext::StartElement( const uno::Reference< xml::sax::XAttr
if( nPrefix == XML_NAMESPACE_CHART )
{
if( IsXMLToken( aLocalName, XML_STYLE_NAME ) )
+ {
sAutoStyleName = xAttrList->getValueByIndex( i );
+ mDataPoint.msStyleName = sAutoStyleName;
+ }
else if( IsXMLToken( aLocalName, XML_REPEATED ) )
+ {
nRepeat = xAttrList->getValueByIndex( i ).toInt32();
+ mDataPoint.m_nPointRepeat = nRepeat;
+ }
}
else if( nPrefix == XML_NAMESPACE_LO_EXT)
{
- if( IsXMLToken( aLocalName, XML_CUSTOM_LABEL_FIELD))
+ if( IsXMLToken( aLocalName, XML_CUSTOM_LABEL_FIELD) && !mbHasLabelParagraph)
{
sCustomLabelField = xAttrList->getValueByIndex( i );
+ mDataPoint.mCustomLabels.push_back(sCustomLabelField);
}
}
}
- if( !sAutoStyleName.isEmpty())
+ mrIndex += nRepeat;
+}
+
+void SchXMLDataPointContext::EndElement()
+{
+ if( !mDataPoint.msStyleName.isEmpty() || mDataPoint.mCustomLabels.size() > 0)
{
- DataRowPointStyle aStyle(
- DataRowPointStyle::DATA_POINT,
- m_xSeries, mrIndex, nRepeat, sAutoStyleName );
- aStyle.mbSymbolSizeForSeriesIsMissingInFile = mbSymbolSizeForSeriesIsMissingInFile;
- aStyle.msCustomLabelField = sCustomLabelField;
- mrStyleVector.push_back( aStyle );
+ mrStyleVector.push_back( mDataPoint );
}
- mrIndex += nRepeat;
}
SchXMLPositionAttributesHelper::SchXMLPositionAttributesHelper( SvXMLImport& rImporter )
diff --git a/xmloff/source/chart/SchXMLPlotAreaContext.hxx b/xmloff/source/chart/SchXMLPlotAreaContext.hxx
index 53fbd4986052..748aca4069e4 100644
--- a/xmloff/source/chart/SchXMLPlotAreaContext.hxx
+++ b/xmloff/source/chart/SchXMLPlotAreaContext.hxx
@@ -137,16 +137,51 @@ private:
css::awt::Size const maChartSize;
};
+class SchXMLDataLabelSpanContext: public SvXMLImportContext
+{
+private:
+ ::std::vector<OUString>& mrLabels;
+public:
+ SchXMLDataLabelSpanContext( SvXMLImport& rImport, const OUString& rLocalName, ::std::vector<OUString>& rLabels);
+ virtual void Characters( const OUString& rChars ) override;
+};
+
+class SchXMLDataLabelParaContext: public SvXMLImportContext
+{
+private:
+ ::std::vector<OUString>& mrLabels;
+public:
+ SchXMLDataLabelParaContext( SvXMLImport& rImport, const OUString& rLocalName, ::std::vector<OUString>& rLabels);
+ virtual SvXMLImportContextRef CreateChildContext(
+ sal_uInt16 nPrefix,
+ const OUString& rLocalName,
+ const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
+};
+
+class SchXMLDataLabelContext: public SvXMLImportContext
+{
+private:
+ ::std::vector<OUString>& mrLabels;
+public:
+ SchXMLDataLabelContext( SvXMLImport& rImport, const OUString& rLocalName, ::std::vector<OUString>& rLabels);
+ virtual SvXMLImportContextRef CreateChildContext(
+ sal_uInt16 nPrefix,
+ const OUString& rLocalName,
+ const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
+};
+
class SchXMLDataPointContext : public SvXMLImportContext
{
private:
+ SchXMLImportHelper& mrImportHelper;
::std::vector< DataRowPointStyle >& mrStyleVector;
- css::uno::Reference< css::chart2::XDataSeries > m_xSeries;
+ bool mbHasLabelParagraph = false;
sal_Int32& mrIndex;
- bool const mbSymbolSizeForSeriesIsMissingInFile;
+ DataRowPointStyle mDataPoint;
public:
- SchXMLDataPointContext( SvXMLImport& rImport, const OUString& rLocalName,
+ SchXMLDataPointContext( SchXMLImportHelper& rImportHelper,
+ SvXMLImport& rImport, const OUString& rLocalName,
::std::vector< DataRowPointStyle >& rStyleVector,
const css::uno::Reference< css::chart2::XDataSeries >& xSeries,
sal_Int32& rIndex,
@@ -154,6 +189,12 @@ public:
virtual ~SchXMLDataPointContext() override;
virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
+
+ virtual SvXMLImportContextRef CreateChildContext(
+ sal_uInt16 nPrefix,
+ const OUString& rLocalName,
+ const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
+ virtual void EndElement() override;
};
class SchXMLCoordinateRegionContext : public SvXMLImportContext
diff --git a/xmloff/source/chart/SchXMLSeries2Context.cxx b/xmloff/source/chart/SchXMLSeries2Context.cxx
index 66c473dfe47b..86c67f8834fa 100644
--- a/xmloff/source/chart/SchXMLSeries2Context.cxx
+++ b/xmloff/source/chart/SchXMLSeries2Context.cxx
@@ -688,7 +688,7 @@ SvXMLImportContextRef SchXMLSeries2Context::CreateChildContext(
break;
case XML_TOK_SERIES_DATA_POINT:
- pContext = new SchXMLDataPointContext( GetImport(), rLocalName,
+ pContext = new SchXMLDataPointContext( mrImportHelper, GetImport(), rLocalName,
mrStyleVector, m_xSeries, mnDataPointIndex, mbSymbolSizeIsMissingInFile );
break;
case XML_TOK_SERIES_PROPERTY_MAPPING:
@@ -1090,14 +1090,18 @@ void SchXMLSeries2Context::setStylesToDataPoints( SeriesDefaultsAndStyles& rSeri
lcl_resetSymbolSizeForPointsIfNecessary( xPointProp, rImport, pPropStyleContext, pStylesCtxt );
}
- if(!seriesStyle.msCustomLabelField.isEmpty())
+ // Custom labels might be passed as property
+ if(auto nLabelCount = seriesStyle.mCustomLabels.size(); nLabelCount > 0)
{
- Sequence< Reference<chart2::XDataPointCustomLabelField>> xLabels(1);
+ Sequence< Reference<chart2::XDataPointCustomLabelField>> xLabels(nLabelCount);
Reference< uno::XComponentContext > xContext( comphelper::getProcessComponentContext() );
- Reference< chart2::XDataPointCustomLabelField > xCustomLabel = chart2::DataPointCustomLabelField::create(xContext);
- xLabels[0] = xCustomLabel;
- xCustomLabel->setString(seriesStyle.msCustomLabelField);
- xCustomLabel->setFieldType(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT);
+ for( auto j = 0; j< xLabels.getLength(); ++j )
+ {
+ Reference< chart2::XDataPointCustomLabelField > xCustomLabel = chart2::DataPointCustomLabelField::create(xContext);
+ xLabels[j] = xCustomLabel;
+ xCustomLabel->setString(seriesStyle.mCustomLabels[j]);
+ xCustomLabel->setFieldType(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT);
+ }
xPointProp->setPropertyValue("CustomLabelFields", uno::Any(xLabels));
}
}
diff --git a/xmloff/source/chart/transporttypes.hxx b/xmloff/source/chart/transporttypes.hxx
index 6481cfb1c004..04fbe70ecdd0 100644
--- a/xmloff/source/chart/transporttypes.hxx
+++ b/xmloff/source/chart/transporttypes.hxx
@@ -145,6 +145,10 @@ struct RegressionStyle
{}
};
+struct CustomLabelField {
+ std::vector<OUString> sRuns;
+};
+
struct DataRowPointStyle
{
enum StyleType
@@ -167,8 +171,9 @@ struct DataRowPointStyle
sal_Int32 m_nPointIndex;
sal_Int32 m_nPointRepeat;
OUString msStyleName;
+ ::std::vector<OUString> mCustomLabels;
OUString msSeriesStyleNameForDonuts;
- OUString msCustomLabelField;
+
sal_Int32 mnAttachedAxis;
bool mbSymbolSizeForSeriesIsMissingInFile;
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
index 62ddf00a081d..6efad44b6206 100644
--- a/xmloff/source/core/xmltoken.cxx
+++ b/xmloff/source/core/xmltoken.cxx
@@ -552,6 +552,7 @@ namespace xmloff { namespace token {
TOKEN( "data-bar", XML_DATA_BAR ),
TOKEN( "data-bar-entry", XML_DATA_BAR_ENTRY ),
TOKEN( "data-cell-range-address", XML_DATA_CELL_RANGE_ADDRESS ),
+ TOKEN( "data-label", XML_DATA_LABEL ),
TOKEN( "data-label-number", XML_DATA_LABEL_NUMBER ),
TOKEN( "data-label-symbol", XML_DATA_LABEL_SYMBOL ),
TOKEN( "data-label-text", XML_DATA_LABEL_TEXT ),
diff --git a/xmloff/source/token/tokens.txt b/xmloff/source/token/tokens.txt
index 539cdb53a778..921ff2b63b5a 100644
--- a/xmloff/source/token/tokens.txt
+++ b/xmloff/source/token/tokens.txt
@@ -475,6 +475,7 @@ data
data-bar
data-bar-entry
data-cell-range-address
+data-label
data-label-number
data-label-symbol
data-label-text
More information about the Libreoffice-commits
mailing list