chart2/qa/extras/chart2import.cxx | 34 +++++++++++++++++++++++++++ chart2/qa/extras/data/xlsx/tdf128627.xlsx |binary chart2/qa/extras/data/xlsx/tdf128634.xlsx |binary oox/source/drawingml/chart/axisconverter.cxx | 9 ++++++- 4 files changed, 42 insertions(+), 1 deletion(-)
New commits: commit b5c14ba1987ba102ac98530e2e718100655e1042 Author: Balazs Varga <balazs.varga...@gmail.com> AuthorDate: Thu Nov 7 13:49:09 2019 +0100 Commit: László Németh <nem...@numbertext.org> CommitDate: Tue Nov 12 21:46:29 2019 +0100 tdf#128627 tdf#128634 Fix OOXML import of CrossBetween Set default 'midCat' value during the import, for Radar charts, because MSO created them with default 'midCat', but exported a 'between' value. Set default 'between' value during the import, for 3D Bar and Stock charts, because sometimes the OOXML file can contain a wrong CrossBetween value, but MSO import them with default values. tdf#128627 regression from commit: 830e539547c463b932ce643517f880789185032d (tdf#127393 OOXML chart import: fix X axis position setting "CrossBetween") tdf#128634 regression from commit: 111c260ab2883b7906f1a66e222dbf4dc3c58c4f (tdf#127777 OOXML chart export: fix "CrossBetween" for not imported charts) Change-Id: Ie9763197b79c3a661e66043da7b89b4f0f00ba33 Reviewed-on: https://gerrit.libreoffice.org/82211 Tested-by: Jenkins Reviewed-by: László Németh <nem...@numbertext.org> Tested-by: László Németh <nem...@numbertext.org> diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 134dec112caa..f04b42d2db6f 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -133,6 +133,8 @@ public: void testTdf124243(); void testTdf127393(); void testTdf128432(); + void testTdf128627(); + void testTdf128634(); void testDeletedDataLabel(); void testDataPointInheritedColorDOCX(); void testExternalStrRefsXLSX(); @@ -226,6 +228,8 @@ public: CPPUNIT_TEST(testTdf124243); CPPUNIT_TEST(testTdf127393); CPPUNIT_TEST(testTdf128432); + CPPUNIT_TEST(testTdf128627); + CPPUNIT_TEST(testTdf128634); CPPUNIT_TEST(testDeletedDataLabel); CPPUNIT_TEST(testDataPointInheritedColorDOCX); CPPUNIT_TEST(testExternalStrRefsXLSX); @@ -2012,6 +2016,36 @@ void Chart2ImportTest::testTdf128432() CPPUNIT_ASSERT(aScaleData.ShiftedCategoryPosition); } +void Chart2ImportTest::testTdf128627() +{ + load("/chart2/qa/extras/data/xlsx/", "tdf128627.xlsx"); + // Test ShiftedCategoryPosition for Radar Chart + uno::Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); + CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); + + Reference<chart2::XAxis> xAxis = getAxisFromDoc(xChartDoc, 0, 0, 0); + CPPUNIT_ASSERT(xAxis.is()); + + chart2::ScaleData aScaleData = xAxis->getScaleData(); + CPPUNIT_ASSERT(aScaleData.Categories.is()); + CPPUNIT_ASSERT(!aScaleData.ShiftedCategoryPosition); +} + +void Chart2ImportTest::testTdf128634() +{ + load("/chart2/qa/extras/data/xlsx/", "tdf128634.xlsx"); + // Test ShiftedCategoryPosition for 3D Charts + uno::Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); + CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); + + Reference<chart2::XAxis> xAxis = getAxisFromDoc(xChartDoc, 0, 0, 0); + CPPUNIT_ASSERT(xAxis.is()); + + chart2::ScaleData aScaleData = xAxis->getScaleData(); + CPPUNIT_ASSERT(aScaleData.Categories.is()); + CPPUNIT_ASSERT(aScaleData.ShiftedCategoryPosition); +} + namespace { void checkDataLabelProperties(const Reference<chart2::XDataSeries>& xDataSeries, sal_Int32 nDataPointIndex, bool bValueVisible) diff --git a/chart2/qa/extras/data/xlsx/tdf128627.xlsx b/chart2/qa/extras/data/xlsx/tdf128627.xlsx new file mode 100644 index 000000000000..419c1ad2f9be Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf128627.xlsx differ diff --git a/chart2/qa/extras/data/xlsx/tdf128634.xlsx b/chart2/qa/extras/data/xlsx/tdf128634.xlsx new file mode 100644 index 000000000000..91baa780cea2 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/tdf128634.xlsx differ diff --git a/oox/source/drawingml/chart/axisconverter.cxx b/oox/source/drawingml/chart/axisconverter.cxx index 9f2cc0f715dc..5f64586ffbb0 100644 --- a/oox/source/drawingml/chart/axisconverter.cxx +++ b/oox/source/drawingml/chart/axisconverter.cxx @@ -213,7 +213,14 @@ void AxisConverter::convertFromModel( aScaleData.AxisType = (bDateAxis && !mrModel.mbAuto) ? cssc2::AxisType::DATE : cssc2::AxisType::CATEGORY; aScaleData.AutoDateAxis = mrModel.mbAuto; aScaleData.Categories = rTypeGroups.front()->createCategorySequence(); - aScaleData.ShiftedCategoryPosition = pCrossingAxis->mnCrossBetween == XML_between; + /* set default ShiftedCategoryPosition values for some charttype, + because the XML can contain wrong CrossBetween value, if came from MSO */ + if( rTypeGroups.front()->is3dChart() && (rTypeInfo.meTypeId == TYPEID_BAR || rTypeInfo.meTypeId == TYPEID_HORBAR || rTypeInfo.meTypeId == TYPEID_STOCK) ) + aScaleData.ShiftedCategoryPosition = true; + else if( rTypeInfo.meTypeId == TYPEID_RADARLINE || rTypeInfo.meTypeId == TYPEID_RADARAREA ) + aScaleData.ShiftedCategoryPosition = false; + else + aScaleData.ShiftedCategoryPosition = pCrossingAxis->mnCrossBetween == XML_between; } else { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits