summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBalazs Varga <balazs.varga991@gmail.com>2020-02-14 14:06:04 +0100
committerXisco Faulí <xiscofauli@libreoffice.org>2020-02-26 16:25:23 +0100
commit4f73c78efe18071748f99b6ace43e1e0fe52c34c (patch)
tree60a5534c32fc8a670c28d3e708b0db2db8836ec8
parent2a7ad4fafd0fcbe6650681b309664336975a084d (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.cxx17
-rw-r--r--chart2/qa/extras/data/xlsx/tdf130657.xlsxbin0 -> 7468 bytes
-rw-r--r--oox/source/drawingml/chart/axisconverter.cxx4
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
new file mode 100644
index 000000000000..036da200ab9b
--- /dev/null
+++ b/chart2/qa/extras/data/xlsx/tdf130657.xlsx
Binary files differ
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
{