From 86e4d68e62c6291ef386b5fcf0f8912989f8e661 Mon Sep 17 00:00:00 2001 From: Balazs Varga Date: Tue, 1 Oct 2019 15:37:17 +0200 Subject: tdf#127907 tdf#126724 Chart DOCX import: fix axis title position MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Custom position of axis title reset to default when the document is opened in LibreOffice. Also fix tdf#126724 which was a regression from commit: 48480d4f19d2fb92ca4ae0527eec4753cdc439c0 (make tools::Rectangle::getBottom return 0 when empty) Note: The y coordinate of Y axis title position is still wrong because of another older bug. Change-Id: I449ad3b2252e05ab38d6752512d822c355ff8606 Reviewed-on: https://gerrit.libreoffice.org/79966 Reviewed-by: László Németh Tested-by: László Németh --- chart2/qa/extras/chart2import.cxx | 36 +++++++++++++++++++++ .../qa/extras/data/docx/testAxisTitlePosition.docx | Bin 0 -> 26274 bytes 2 files changed, 36 insertions(+) create mode 100644 chart2/qa/extras/data/docx/testAxisTitlePosition.docx (limited to 'chart2') diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index c0850820acc3..34477f69d6ac 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -108,6 +109,7 @@ public: void testAxisTitleDefaultRotationXLSX(); void testSecondaryAxisTitleDefaultRotationXLSX(); void testAxisTitleRotationXLSX(); + void testAxisTitlePositionDOCX(); void testCombinedChartAttachedAxisXLSX(); void testTdf90510(); // Pie chart label placement settings(XLS) @@ -200,6 +202,7 @@ public: CPPUNIT_TEST(testAxisTitleDefaultRotationXLSX); CPPUNIT_TEST(testSecondaryAxisTitleDefaultRotationXLSX); CPPUNIT_TEST(testAxisTitleRotationXLSX); + CPPUNIT_TEST(testAxisTitlePositionDOCX); CPPUNIT_TEST(testCombinedChartAttachedAxisXLSX); CPPUNIT_TEST(testTdf90510); CPPUNIT_TEST(testTdf109858); @@ -1505,6 +1508,39 @@ void Chart2ImportTest::testAxisTitleRotationXLSX() } +void Chart2ImportTest::testAxisTitlePositionDOCX() +{ + load("/chart2/qa/extras/data/docx/", "testAxisTitlePosition.docx"); + uno::Reference< chart::XDiagram > mxDiagram; + uno::Reference< drawing::XShape > xAxisTitle; + uno::Reference< chart::XChartDocument > xChartDoc = getChartDocFromWriter(0); + CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is()); + mxDiagram.set(xChartDoc->getDiagram()); + CPPUNIT_ASSERT(mxDiagram.is()); + // test X Axis title position + uno::Reference< chart::XAxisXSupplier > xAxisXSupp(mxDiagram, uno::UNO_QUERY); + CPPUNIT_ASSERT(xAxisXSupp.is()); + + xAxisTitle = xAxisXSupp->getXAxisTitle(); + CPPUNIT_ASSERT(xAxisTitle.is()); + + awt::Point aPos = xAxisTitle->getPosition(); + CPPUNIT_ASSERT_EQUAL(sal_Int32(10640), static_cast(aPos.X)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(7157), static_cast(aPos.Y)); + + // test Y Axis title position + uno::Reference< chart::XAxisYSupplier > xAxisYSupp(mxDiagram, uno::UNO_QUERY); + CPPUNIT_ASSERT(xAxisYSupp.is()); + + xAxisTitle = xAxisYSupp->getYAxisTitle(); + CPPUNIT_ASSERT(xAxisTitle.is()); + + aPos = xAxisTitle->getPosition(); + CPPUNIT_ASSERT_EQUAL(sal_Int32(387), static_cast(aPos.X)); + // y coordinate is still wrong because of another older bug! + /*CPPUNIT_ASSERT_EQUAL(sal_Int32(1535), static_cast(aPos.Y));*/ +} + void Chart2ImportTest::testCombinedChartAttachedAxisXLSX() { load("/chart2/qa/extras/data/xlsx/", "testCombinedChartAxis.xlsx"); diff --git a/chart2/qa/extras/data/docx/testAxisTitlePosition.docx b/chart2/qa/extras/data/docx/testAxisTitlePosition.docx new file mode 100644 index 000000000000..6abd37eec5a0 Binary files /dev/null and b/chart2/qa/extras/data/docx/testAxisTitlePosition.docx differ -- cgit