chart2/qa/extras/chart2export.cxx | 15 +++++++++++++++ chart2/qa/extras/data/docx/tdf121744.docx |binary include/oox/export/chartexport.hxx | 2 +- oox/source/export/chartexport.cxx | 26 ++++++++++++++++++-------- 4 files changed, 34 insertions(+), 9 deletions(-)
New commits: commit 25e391fb6273c444bac8314213d49089403a7f04 Author: Jozsef Szakacs <z...@citromail.hu> AuthorDate: Wed Nov 28 09:13:03 2018 +0100 Commit: Aron Budea <aron.bu...@collabora.com> CommitDate: Mon Mar 11 12:11:06 2019 +0100 tdf#121744 XLSX Export Combinated Chart (Column and Line) Each of the Column and Line Chart creates it's own x and y Axes. So now the LineChart Exporter Method uses the same Axes as the BarChart. Thanks for the help: - Balazs Varga - Adam Kovacs Reviewed-on: https://gerrit.libreoffice.org/64146 Tested-by: Jenkins Reviewed-by: László Németh <nem...@numbertext.org> Reviewed-on: https://gerrit.libreoffice.org/65449 (cherry picked from commit d58d92d72b00f45c56a3b0fe55ca9fd837d244a9) Change-Id: Ie763cf831c2ce63ef204d1fdcbff634e7ca8fad5 diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 60166b8deb4a..d08dd31a8e19 100755 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -121,6 +121,7 @@ public: void testCustomDataLabelMultipleSeries(); void testTdf119029(); void testTdf122031(); + void testTdf121744(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(testErrorBarXLSX); @@ -204,6 +205,7 @@ public: CPPUNIT_TEST(testCustomDataLabelMultipleSeries); CPPUNIT_TEST(testTdf119029); CPPUNIT_TEST(testTdf122031); + CPPUNIT_TEST(testTdf121744); CPPUNIT_TEST_SUITE_END(); protected: @@ -1939,6 +1941,19 @@ void Chart2ExportTest::testTdf122031() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[3]/c:numFmt", "formatCode", "0.000%"); } +void Chart2ExportTest::testTdf121744() +{ + load("/chart2/qa/extras/data/docx/", "tdf121744.docx"); + xmlDocPtr pXmlDoc = parseExport("word/charts/chart","Office Open XML Text"); + CPPUNIT_ASSERT(pXmlDoc); + + OUString XValueId = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[1]", "val"); + OUString YValueId = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[2]", "val"); + + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[1]", "val", XValueId ); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[2]", "val", YValueId ); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/tdf121744.docx b/chart2/qa/extras/data/docx/tdf121744.docx new file mode 100644 index 000000000000..b5ff10098c6a Binary files /dev/null and b/chart2/qa/extras/data/docx/tdf121744.docx differ diff --git a/include/oox/export/chartexport.hxx b/include/oox/export/chartexport.hxx index 56fbcf935c74..93621f11b919 100644 --- a/include/oox/export/chartexport.hxx +++ b/include/oox/export/chartexport.hxx @@ -197,7 +197,7 @@ private: sal_Int32 nAxisType, const char* sAxisPos, const AxisIdPair& rAxisIdPair ); - void exportAxesId(bool bPrimaryAxes); + void exportAxesId(bool bPrimaryAxes, bool bCheckCombinedAxes = false); void exportView3D(); bool isDeep3dChart(); diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 37c267dcbcd3..aa7d8a543d7e 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -1619,7 +1619,7 @@ void ChartExport::exportLineChart( const Reference< chart2::XChartType >& xChart FSEND ); } - exportAxesId(bPrimaryAxes); + exportAxesId(bPrimaryAxes, true); pFS->endElement( FSNS( XML_c, nTypeId ) ); } @@ -3333,14 +3333,24 @@ void ChartExport::exportDataPoints( } } -void ChartExport::exportAxesId(bool bPrimaryAxes) +void ChartExport::exportAxesId(bool bPrimaryAxes, bool bCheckCombinedAxes) { - sal_Int32 nAxisIdx = lcl_generateRandomValue(); - sal_Int32 nAxisIdy = lcl_generateRandomValue(); - AxesType eXAxis = bPrimaryAxes ? AXIS_PRIMARY_X : AXIS_SECONDARY_X; - AxesType eYAxis = bPrimaryAxes ? AXIS_PRIMARY_Y : AXIS_SECONDARY_Y; - maAxes.emplace_back( eXAxis, nAxisIdx, nAxisIdy ); - maAxes.emplace_back( eYAxis, nAxisIdy, nAxisIdx ); + sal_Int32 nAxisIdx, nAxisIdy; + // tdf#114181 keep axes of combined charts + if ( bCheckCombinedAxes && bPrimaryAxes && maAxes.size() == 2 ) + { + nAxisIdx = maAxes[0].nAxisId; + nAxisIdy = maAxes[1].nAxisId; + } + else + { + nAxisIdx = lcl_generateRandomValue(); + nAxisIdy = lcl_generateRandomValue(); + AxesType eXAxis = bPrimaryAxes ? AXIS_PRIMARY_X : AXIS_SECONDARY_X; + AxesType eYAxis = bPrimaryAxes ? AXIS_PRIMARY_Y : AXIS_SECONDARY_Y; + maAxes.emplace_back( eXAxis, nAxisIdx, nAxisIdy ); + maAxes.emplace_back( eYAxis, nAxisIdy, nAxisIdx ); + } FSHelperPtr pFS = GetFS(); pFS->singleElement( FSNS( XML_c, XML_axId ), XML_val, I32S( nAxisIdx ), _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits