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());
     }
 }
 

Reply via email to