diff options
author | Balazs Varga <balazs.varga991@gmail.com> | 2020-02-14 14:06:04 +0100 |
---|---|---|
committer | Xisco Faulí <xiscofauli@libreoffice.org> | 2020-02-26 16:25:23 +0100 |
commit | 4f73c78efe18071748f99b6ace43e1e0fe52c34c (patch) | |
tree | 60a5534c32fc8a670c28d3e708b0db2db8836ec8 | |
parent | 2a7ad4fafd0fcbe6650681b309664336975a084d (diff) |
tdf#130657 OOXML chart import: fix charts without CrossBetween
by using default values for ShiftedCategoryPosition.
Regression from commit 111c260ab2883b7906f1a66e222dbf4dc3c58c4f
(tdf#127777 OOXML chart export: fix "CrossBetween" for not imported charts)
Change-Id: Idd48a8343e7d6609b487daf7182e9716f2f5e01f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88709
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit 8163f4ad81487ae187d00d3ce86214e520cb8b69)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89517
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
-rw-r--r-- | chart2/qa/extras/chart2import.cxx | 17 | ||||
-rw-r--r-- | chart2/qa/extras/data/xlsx/tdf130657.xlsx | bin | 0 -> 7468 bytes | |||
-rw-r--r-- | oox/source/drawingml/chart/axisconverter.cxx | 4 |
3 files changed, 20 insertions, 1 deletions
diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 7b8aaed20371..5f91d39890ea 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -140,6 +140,7 @@ public: void testTdf128432(); void testTdf128627(); void testTdf128634(); + void testTdf130657(); void testDeletedDataLabel(); void testDataPointInheritedColorDOCX(); void testExternalStrRefsXLSX(); @@ -241,6 +242,7 @@ public: CPPUNIT_TEST(testTdf128432); CPPUNIT_TEST(testTdf128627); CPPUNIT_TEST(testTdf128634); + CPPUNIT_TEST(testTdf130657); CPPUNIT_TEST(testDeletedDataLabel); CPPUNIT_TEST(testDataPointInheritedColorDOCX); CPPUNIT_TEST(testExternalStrRefsXLSX); @@ -2121,6 +2123,21 @@ void Chart2ImportTest::testTdf128634() CPPUNIT_ASSERT(aScaleData.ShiftedCategoryPosition); } +void Chart2ImportTest::testTdf130657() +{ + load("/chart2/qa/extras/data/xlsx/", "tdf130657.xlsx"); + // Test ShiftedCategoryPosition for charts which is not contain a "crossbetween" OOXML tag. + 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/tdf130657.xlsx b/chart2/qa/extras/data/xlsx/tdf130657.xlsx Binary files differnew file mode 100644 index 000000000000..036da200ab9b --- /dev/null +++ b/chart2/qa/extras/data/xlsx/tdf130657.xlsx diff --git a/oox/source/drawingml/chart/axisconverter.cxx b/oox/source/drawingml/chart/axisconverter.cxx index 5f64586ffbb0..86764b241e52 100644 --- a/oox/source/drawingml/chart/axisconverter.cxx +++ b/oox/source/drawingml/chart/axisconverter.cxx @@ -219,8 +219,10 @@ void AxisConverter::convertFromModel( aScaleData.ShiftedCategoryPosition = true; else if( rTypeInfo.meTypeId == TYPEID_RADARLINE || rTypeInfo.meTypeId == TYPEID_RADARAREA ) aScaleData.ShiftedCategoryPosition = false; - else + else if( pCrossingAxis->mnCrossBetween != -1 ) /*because of backwards compatibility*/ aScaleData.ShiftedCategoryPosition = pCrossingAxis->mnCrossBetween == XML_between; + else if( rTypeInfo.meTypeCategory == TYPECATEGORY_BAR || rTypeInfo.meTypeId == TYPEID_LINE || rTypeInfo.meTypeId == TYPEID_STOCK ) + aScaleData.ShiftedCategoryPosition = true; } else { |