summaryrefslogtreecommitdiff
path: root/chart2
diff options
context:
space:
mode:
authorBalazs Varga <balazs.varga991@gmail.com>2019-04-09 16:12:35 +0200
committerLászló Németh <nemeth@numbertext.org>2019-04-15 09:12:59 +0200
commit11473832b5717cb3222ce72baee885bc9e8e2386 (patch)
tree2285cd4abdf37f14b7c6f14fd2528607e96abefe /chart2
parente21bc3267776d89e26368b62963fc57dc792f743 (diff)
tdf#114181 XLSX combined chart: fix swapped primary and secondary axes etc.
In combined charts, now X category axis crosses the Y axis at the right place, all data series are attached to the right Y axis, and the Y major grid isn't lost. Note: Let's check which axis is attached to the first charttype (in case of combined chart, the first one is a column chart) and create that axis first. In OOXML standard, the first CT_valAx tag contains the axID of the primary axis and the second CT_valAx tag contains the axID of the secondary axis. Change-Id: Ib123f95ec41ef5dbbf0599efd7a646f4640a9b70 Reviewed-on: https://gerrit.libreoffice.org/70464 Reviewed-by: László Németh <nemeth@numbertext.org> Tested-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'chart2')
-rw-r--r--chart2/qa/extras/chart2import.cxx28
-rw-r--r--chart2/qa/extras/data/xlsx/testCombinedChartAxis.xlsxbin0 -> 20857 bytes
2 files changed, 28 insertions, 0 deletions
diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx
index 47d1ce481a77..475b5bbe2209 100644
--- a/chart2/qa/extras/chart2import.cxx
+++ b/chart2/qa/extras/chart2import.cxx
@@ -102,6 +102,7 @@ public:
void testAxisTitleDefaultRotationXLSX();
void testSecondaryAxisTitleDefaultRotationXLSX();
void testAxisTitleRotationXLSX();
+ void testCombinedChartAttachedAxisXLSX();
void testTdf90510(); // Pie chart label placement settings(XLS)
void testTdf109858(); // Pie chart label placement settings(XLSX)
@@ -182,6 +183,7 @@ public:
CPPUNIT_TEST(testAxisTitleDefaultRotationXLSX);
CPPUNIT_TEST(testSecondaryAxisTitleDefaultRotationXLSX);
CPPUNIT_TEST(testAxisTitleRotationXLSX);
+ CPPUNIT_TEST(testCombinedChartAttachedAxisXLSX);
CPPUNIT_TEST(testTdf90510);
CPPUNIT_TEST(testTdf109858);
CPPUNIT_TEST(testTdf111173);
@@ -1399,6 +1401,32 @@ void Chart2ImportTest::testAxisTitleRotationXLSX()
}
+void Chart2ImportTest::testCombinedChartAttachedAxisXLSX()
+{
+ load("/chart2/qa/extras/data/xlsx/", "testCombinedChartAxis.xlsx");
+ Reference< chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent);
+ // First series
+ Reference<chart2::XDataSeries> xSeries = getDataSeriesFromDoc(xChartDoc, 0);
+ CPPUNIT_ASSERT(xSeries.is());
+
+ Reference<beans::XPropertySet> xPropSet(xSeries, uno::UNO_QUERY_THROW);
+ sal_Int32 nAxisIndex = -1;
+ // First series (column chart) should be attached to secondary axis!
+ uno::Any aAny = xPropSet->getPropertyValue("AttachedAxisIndex");
+ CPPUNIT_ASSERT(aAny >>= nAxisIndex);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nAxisIndex);
+
+ // Second series
+ xSeries = getDataSeriesFromDoc(xChartDoc, 0, 1);
+ CPPUNIT_ASSERT(xSeries.is());
+
+ xPropSet.set(xSeries, uno::UNO_QUERY_THROW);
+ // Second series (line chart) should be attached to primary axis!
+ aAny = xPropSet->getPropertyValue("AttachedAxisIndex");
+ CPPUNIT_ASSERT(aAny >>= nAxisIndex);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nAxisIndex);
+}
+
void Chart2ImportTest::testInternalDataProvider() {
uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromImpress("/chart2/qa/extras/data/odp/", "chart.odp"), uno::UNO_QUERY_THROW);
const uno::Reference< chart2::data::XDataProvider >& rxDataProvider = xChartDoc->getDataProvider();
diff --git a/chart2/qa/extras/data/xlsx/testCombinedChartAxis.xlsx b/chart2/qa/extras/data/xlsx/testCombinedChartAxis.xlsx
new file mode 100644
index 000000000000..47f8246e23cd
--- /dev/null
+++ b/chart2/qa/extras/data/xlsx/testCombinedChartAxis.xlsx
Binary files differ