chart2/qa/extras/chart2export3.cxx | 27 +++++++++++++++++++++++++++ chart2/qa/extras/data/ods/tdf148142.ods |binary xmloff/source/chart/SchXMLAxisContext.cxx | 1 + 3 files changed, 28 insertions(+)
New commits: commit 9d7d35718f32fd757f6ce994e6aab0c6f3494b3c Author: Tünde Tóth <toth.tu...@nisz.hu> AuthorDate: Wed May 17 13:49:29 2023 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Mon May 22 13:01:50 2023 +0200 tdf#148142 chart: fix export of modified On/Between tick marks Reset the MajorOrigin property after import to avoid of the bad export of the modified document, which reset the original On tick marks/Between tick marks value. Follow-up to commit 40d83914d43f60a196dfabddea0b52e2046b333a "tdf#127792 implement UNO chart attribute MajorOrigin". Change-Id: I0e3915b7d1b601abd40fbd1ba9d01fc05a8fb7c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151885 Tested-by: László Németh <nem...@numbertext.org> Reviewed-by: László Németh <nem...@numbertext.org> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152009 Tested-by: Jenkins diff --git a/chart2/qa/extras/chart2export3.cxx b/chart2/qa/extras/chart2export3.cxx index dd081f8e5b9b..243ea6e234ba 100644 --- a/chart2/qa/extras/chart2export3.cxx +++ b/chart2/qa/extras/chart2export3.cxx @@ -74,6 +74,7 @@ public: void testMultipleAxisXLSX(); void testSecondaryAxisXLSX(); void testBarChartSecondaryAxisXLSX(); + void testTdf148142(); CPPUNIT_TEST_SUITE(Chart2ExportTest3); CPPUNIT_TEST(testTdf108107); @@ -120,6 +121,7 @@ public: CPPUNIT_TEST(testMultipleAxisXLSX); CPPUNIT_TEST(testSecondaryAxisXLSX); CPPUNIT_TEST(testBarChartSecondaryAxisXLSX); + CPPUNIT_TEST(testTdf148142); CPPUNIT_TEST_SUITE_END(); }; @@ -773,6 +775,31 @@ void Chart2ExportTest3::testBarChartSecondaryAxisXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx[2]/c:axId", "val", YValueIdOf2Barchart); } +void Chart2ExportTest3::testTdf148142() +{ + // The document contains a line chart with "Between tick marks" X axis position. + loadFromURL(u"ods/tdf148142.ods"); + Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); + CPPUNIT_ASSERT(xChartDoc.is()); + Reference<chart2::XAxis> xAxis = getAxisFromDoc(xChartDoc, 0, 0, 0); + CPPUNIT_ASSERT(xAxis.is()); + chart2::ScaleData aScaleData = xAxis->getScaleData(); + CPPUNIT_ASSERT(aScaleData.ShiftedCategoryPosition); + + // Set the X axis position to "On tick marks". + aScaleData.ShiftedCategoryPosition = false; + xAxis->setScaleData(aScaleData); + + // Check the X axis position after export. + saveAndReload("calc8"); + Reference<chart2::XChartDocument> xChartDoc2 = getChartDocFromSheet(0, mxComponent); + CPPUNIT_ASSERT(xChartDoc2.is()); + Reference<chart2::XAxis> xAxis2 = getAxisFromDoc(xChartDoc2, 0, 0, 0); + CPPUNIT_ASSERT(xAxis2.is()); + chart2::ScaleData aScaleData2 = xAxis2->getScaleData(); + CPPUNIT_ASSERT(!aScaleData2.ShiftedCategoryPosition); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest3); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/ods/tdf148142.ods b/chart2/qa/extras/data/ods/tdf148142.ods new file mode 100644 index 000000000000..9b736a06d19a Binary files /dev/null and b/chart2/qa/extras/data/ods/tdf148142.ods differ diff --git a/xmloff/source/chart/SchXMLAxisContext.cxx b/xmloff/source/chart/SchXMLAxisContext.cxx index ad8b187f88e2..ae55da90f8b5 100644 --- a/xmloff/source/chart/SchXMLAxisContext.cxx +++ b/xmloff/source/chart/SchXMLAxisContext.cxx @@ -547,6 +547,7 @@ void SchXMLAxisContext::CreateAxis() { aScaleData.ShiftedCategoryPosition = rtl::math::approxEqual(fMajorOrigin, 0.5); xAxis->setScaleData(aScaleData); + m_xAxisProps->setPropertyValue("MajorOrigin", uno::Any()); } }