related tdf#51671, store new "hide legend" feature also in ODF

Change-Id: Ibf55f02eccdcadb2d42f5aff8d72bff20ada3b3a
Reviewed-on: https://gerrit.libreoffice.org/64792
Tested-by: Jenkins
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
This commit is contained in:
Markus Mohrhard
2018-12-07 23:28:28 +01:00
parent 897d731442
commit 7869b3d6e4
7 changed files with 40 additions and 14 deletions

View File

@@ -969,6 +969,7 @@ namespace xmloff { namespace token {
XML_HIDDEN_PARAGRAPH, XML_HIDDEN_PARAGRAPH,
XML_HIDDEN_TEXT, XML_HIDDEN_TEXT,
XML_HIDE, XML_HIDE,
XML_HIDE_LEGEND,
XML_HIDE_SHAPE, XML_HIDE_SHAPE,
XML_HIDE_TEXT, XML_HIDE_TEXT,
XML_HIGHLIGHTED_RANGE, XML_HIGHLIGHTED_RANGE,

View File

@@ -136,7 +136,8 @@ enum SchXMLSeriesAttrMap
XML_TOK_SERIES_LABEL_STRING, XML_TOK_SERIES_LABEL_STRING,
XML_TOK_SERIES_ATTACHED_AXIS, XML_TOK_SERIES_ATTACHED_AXIS,
XML_TOK_SERIES_STYLE_NAME, XML_TOK_SERIES_STYLE_NAME,
XML_TOK_SERIES_CHART_CLASS XML_TOK_SERIES_CHART_CLASS,
XML_TOK_SERIES_HIDE_LEGEND
}; };
enum SchXMLRegEquationAttrMap enum SchXMLRegEquationAttrMap

View File

@@ -2669,6 +2669,19 @@ void SchXMLExportHelper_Impl::exportSeries(
// #i75297# allow empty series, export empty range to have all ranges on import // #i75297# allow empty series, export empty range to have all ranges on import
mrExport.AddAttribute( XML_NAMESPACE_CHART, XML_VALUES_CELL_RANGE_ADDRESS, OUString()); mrExport.AddAttribute( XML_NAMESPACE_CHART, XML_VALUES_CELL_RANGE_ADDRESS, OUString());
const SvtSaveOptions::ODFDefaultVersion nCurrentODFVersion( SvtSaveOptions().GetODFDefaultVersion() );
if( nCurrentODFVersion >= SvtSaveOptions::ODFVER_012 )
{
if (xPropSet.is())
{
Any aAny = xPropSet->getPropertyValue("ShowLegendEntry");
if (!aAny.get<bool>())
{
mrExport.AddAttribute(XML_NAMESPACE_LO_EXT, XML_HIDE_LEGEND, OUString::boolean(true));
}
}
}
if (xLabelSeq.is()) if (xLabelSeq.is())
{ {
// Check if the label is direct string value rather than a reference. // Check if the label is direct string value rather than a reference.

View File

@@ -319,10 +319,11 @@ const SvXMLTokenMap& SchXMLImportHelper::GetSeriesAttrTokenMap()
{ {
{ XML_NAMESPACE_CHART, XML_VALUES_CELL_RANGE_ADDRESS, XML_TOK_SERIES_CELL_RANGE }, { XML_NAMESPACE_CHART, XML_VALUES_CELL_RANGE_ADDRESS, XML_TOK_SERIES_CELL_RANGE },
{ XML_NAMESPACE_CHART, XML_LABEL_CELL_ADDRESS, XML_TOK_SERIES_LABEL_ADDRESS }, { XML_NAMESPACE_CHART, XML_LABEL_CELL_ADDRESS, XML_TOK_SERIES_LABEL_ADDRESS },
{ XML_NAMESPACE_LO_EXT, XML_LABEL_STRING, XML_TOK_SERIES_LABEL_STRING }, { XML_NAMESPACE_LO_EXT, XML_LABEL_STRING, XML_TOK_SERIES_LABEL_STRING },
{ XML_NAMESPACE_CHART, XML_ATTACHED_AXIS, XML_TOK_SERIES_ATTACHED_AXIS }, { XML_NAMESPACE_CHART, XML_ATTACHED_AXIS, XML_TOK_SERIES_ATTACHED_AXIS },
{ XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_SERIES_STYLE_NAME }, { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_SERIES_STYLE_NAME },
{ XML_NAMESPACE_CHART, XML_CLASS, XML_TOK_SERIES_CHART_CLASS }, { XML_NAMESPACE_CHART, XML_CLASS, XML_TOK_SERIES_CHART_CLASS },
{ XML_NAMESPACE_LO_EXT, XML_HIDE_LEGEND, XML_TOK_SERIES_HIDE_LEGEND },
XML_TOKEN_MAP_END XML_TOKEN_MAP_END
}; };

View File

@@ -297,6 +297,7 @@ void SchXMLSeries2Context::StartElement( const uno::Reference< xml::sax::XAttrib
bool bHasRange = false; bool bHasRange = false;
OUString aSeriesLabelRange; OUString aSeriesLabelRange;
OUString aSeriesLabelString; OUString aSeriesLabelString;
bool bHideLegend = false;
for( sal_Int16 i = 0; i < nAttrCount; i++ ) for( sal_Int16 i = 0; i < nAttrCount; i++ )
{ {
@@ -346,6 +347,9 @@ void SchXMLSeries2Context::StartElement( const uno::Reference< xml::sax::XAttrib
maSeriesChartTypeName = aClassName; maSeriesChartTypeName = aClassName;
} }
break; break;
case XML_TOK_SERIES_HIDE_LEGEND:
bHideLegend = aValue.toBoolean();
break;
} }
} }
@@ -390,21 +394,25 @@ void SchXMLSeries2Context::StartElement( const uno::Reference< xml::sax::XAttrib
SchXMLImportHelper::GetNewDataSeries( mxNewDoc, nCoordinateSystemIndex, maSeriesChartTypeName, ! mrGlobalChartTypeUsedBySeries )); SchXMLImportHelper::GetNewDataSeries( mxNewDoc, nCoordinateSystemIndex, maSeriesChartTypeName, ! mrGlobalChartTypeUsedBySeries ));
Reference< chart2::data::XLabeledDataSequence > xLabeledSeq( SchXMLTools::GetNewLabeledDataSequence(), uno::UNO_QUERY_THROW ); Reference< chart2::data::XLabeledDataSequence > xLabeledSeq( SchXMLTools::GetNewLabeledDataSequence(), uno::UNO_QUERY_THROW );
if( bIsCandleStick ) Reference< beans::XPropertySet > xSeriesProp( m_xSeries, uno::UNO_QUERY );
if (xSeriesProp.is())
{ {
// set default color for range-line to black (before applying styles) if (bHideLegend)
Reference< beans::XPropertySet > xSeriesProp( m_xSeries, uno::UNO_QUERY ); xSeriesProp->setPropertyValue("ShowLegendEntry", uno::makeAny(false));
if( xSeriesProp.is())
if( bIsCandleStick )
{
// set default color for range-line to black (before applying styles)
xSeriesProp->setPropertyValue("Color", xSeriesProp->setPropertyValue("Color",
uno::makeAny( sal_Int32( 0x000000 ))); // black uno::makeAny( sal_Int32( 0x000000 ))); // black
} }
else if ( maSeriesChartTypeName == "com.sun.star.chart2.PieChartType" ) else if ( maSeriesChartTypeName == "com.sun.star.chart2.PieChartType" )
{ {
//@todo: this property should be saved //@todo: this property should be saved
Reference< beans::XPropertySet > xSeriesProp( m_xSeries, uno::UNO_QUERY );
if( xSeriesProp.is())
xSeriesProp->setPropertyValue("VaryColorsByPoint", xSeriesProp->setPropertyValue("VaryColorsByPoint",
uno::makeAny( true )); uno::makeAny( true ));
}
} }
Reference<chart2::data::XDataProvider> xDataProvider(mxNewDoc->getDataProvider()); Reference<chart2::data::XDataProvider> xDataProvider(mxNewDoc->getDataProvider());

View File

@@ -969,6 +969,7 @@ namespace xmloff { namespace token {
TOKEN( "hidden-paragraph", XML_HIDDEN_PARAGRAPH ), TOKEN( "hidden-paragraph", XML_HIDDEN_PARAGRAPH ),
TOKEN( "hidden-text", XML_HIDDEN_TEXT ), TOKEN( "hidden-text", XML_HIDDEN_TEXT ),
TOKEN( "hide", XML_HIDE ), TOKEN( "hide", XML_HIDE ),
TOKEN( "hide-legend", XML_HIDE_LEGEND ),
TOKEN( "hide-shape", XML_HIDE_SHAPE ), TOKEN( "hide-shape", XML_HIDE_SHAPE ),
TOKEN( "hide-text", XML_HIDE_TEXT ), TOKEN( "hide-text", XML_HIDE_TEXT ),
TOKEN( "highlighted-range", XML_HIGHLIGHTED_RANGE ), TOKEN( "highlighted-range", XML_HIGHLIGHTED_RANGE ),

View File

@@ -892,6 +892,7 @@ hidden-and-protected
hidden-paragraph hidden-paragraph
hidden-text hidden-text
hide hide
hide-legend
hide-shape hide-shape
hide-text hide-text
highlighted-range highlighted-range