tdf#103988 OOXML export: fix bubble chart MSO interoperability
Write <c:bubble3D val="0"/> into each <CT_BubbleSer> OOXML element
to allow file opening in MSO without removing the (previously
"corrupted") bubble chart.
Change-Id: Idf31a0d3d8f98a3be4c9a3b29e65d4d4c582be53
Reviewed-on: https://gerrit.libreoffice.org/78259
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit 5b97e75589523b3769ec87e27854e2c841d0d79f)
Reviewed-on: https://gerrit.libreoffice.org/78378
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index 03d7f48..c6aaf0e 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -1546,7 +1546,9 @@ void Chart2ExportTest::testBubble3DXLSX()
load("/chart2/qa/extras/data/xlsx/", "bubble_chart_simple.xlsx");
xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML");
CPPUNIT_ASSERT(pXmlDoc);
assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:bubbleChart/c:bubble3D", "val", "0");
assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:bubbleChart/c:ser[1]/c:bubble3D", "val", "0");
assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:bubbleChart/c:ser[2]/c:bubble3D", "val", "0");
assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:bubbleChart/c:ser[3]/c:bubble3D", "val", "0");
}
void Chart2ExportTest::testNoMarkerXLSX()
diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 8b41e21..4f2e9c6 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -1476,8 +1476,6 @@ void ChartExport::exportBubbleChart( const Reference< chart2::XChartType >& xCha
bool bPrimaryAxes = true;
exportAllSeries(xChartType, bPrimaryAxes);
pFS->singleElement(FSNS(XML_c, XML_bubble3D), XML_val, "0");
exportAxesId(bPrimaryAxes);
pFS->endElement( FSNS( XML_c, XML_bubbleChart ) );
@@ -2029,6 +2027,10 @@ void ChartExport::exportSeries( const Reference<chart2::XChartType>& xChartType,
|| eChartType == chart::TYPEID_LINE )
exportSmooth();
// tdf103988: "corrupted" files with Bubble chart opening in MSO
if( eChartType == chart::TYPEID_BUBBLE )
pFS->singleElement(FSNS(XML_c, XML_bubble3D), XML_val, "0");
pFS->endElement( FSNS( XML_c, XML_ser ) );
}
}