summaryrefslogtreecommitdiff
path: root/chart2
diff options
context:
space:
mode:
authorTamás Zolnai <tamas.zolnai@collabora.com>2017-03-11 17:36:15 +0100
committerTamás Zolnai <tamas.zolnai@collabora.com>2017-03-11 17:36:15 +0100
commit5322a6c01be4d24f3830e4677ff6fd38598c8b9f (patch)
treecffd034f1c61adb2538469441bf64633db664dca /chart2
parent440008aac0bbd7d466b837ba9046fcf277d35056 (diff)
tdf#106217: Wrong size and position of a shape inside chart
Same code which was added to the method DrawingFragment::onEndElement() in d178d7bef193565a7d6aacbc37a58dfc4bd7b316 A shape's size and position inside a chart object are primarily defined by <cdr:from> and <cdr:to> tags in drawing.xml, but in the same file we also have an <a:xfrm> tag which is used for the same thing (defining size and postion) in general. Testing with MSO it seems it ignores what values are set to <a:xfrm> and uses only the <cdr:from> and <cdr:to> values. The test document showing this problem must be created an earlier version of MSO, becuase <a:xfrm> is set to some random values. Editing the chart and saving it with MSO 2013 the <a:xfrm> values are set consistently with <cdr:from> and <cdr:to> pair. Reviewed-on: https://gerrit.libreoffice.org/35069 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> (cherry picked from commit aa204f1c09a760d6753c408376ab7307fb13ad91) Change-Id: Icbaff78e5a6fcea36678c3b3755c97f57976b626
Diffstat (limited to 'chart2')
-rw-r--r--chart2/qa/extras/chart2import.cxx25
-rwxr-xr-xchart2/qa/extras/data/pptx/tdf106217.pptxbin0 -> 47976 bytes
2 files changed, 25 insertions, 0 deletions
diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx
index b508f3e123dd..1d19a5e4e8d8 100644
--- a/chart2/qa/extras/chart2import.cxx
+++ b/chart2/qa/extras/chart2import.cxx
@@ -22,6 +22,7 @@
#include <com/sun/star/chart/XTwoAxisXSupplier.hpp>
#include <com/sun/star/chart/MissingValueTreatment.hpp>
#include <com/sun/star/chart2/TickmarkStyle.hpp>
+#include <com/sun/star/container/XNamed.hpp>
#include <com/sun/star/util/Color.hpp>
@@ -61,6 +62,7 @@ public:
void testFdo54361();
void testFdo54361_1();
void testTdf86624(); // manually placed legends
+ void testTdf106217();
void testAutoBackgroundXLSX();
void testChartAreaStyleBackgroundXLSX();
void testAxisTextRotationXLSX();
@@ -121,6 +123,7 @@ public:
CPPUNIT_TEST(testFdo54361);
CPPUNIT_TEST(testFdo54361_1);
CPPUNIT_TEST(testTdf86624);
+ CPPUNIT_TEST(testTdf106217);
CPPUNIT_TEST(testAutoBackgroundXLSX);
CPPUNIT_TEST(testChartAreaStyleBackgroundXLSX);
CPPUNIT_TEST(testAxisTextRotationXLSX);
@@ -714,6 +717,28 @@ void Chart2ImportTest::testTdf86624()
CPPUNIT_ASSERT(aPos.Y > 4000); // real value for ms is above 7000
}
+void Chart2ImportTest::testTdf106217()
+{
+ load("/chart2/qa/extras/data/pptx/", "tdf106217.pptx");
+ uno::Reference< chart::XChartDocument > xChartDoc = getChartDocFromDrawImpress(0, 0);
+ CPPUNIT_ASSERT(xChartDoc.is());
+
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(xChartDoc, uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xDrawPage = xDrawPageSupplier->getDrawPage();
+ uno::Reference<drawing::XShape> xCircle(xDrawPage->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xCircle.is());
+
+ uno::Reference<container::XNamed> xNamedShape(xCircle, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(xNamedShape->getName(), OUString("Oval 1"));
+
+ awt::Point aPosition = xCircle->getPosition();
+ CPPUNIT_ASSERT_EQUAL(aPosition.X, sal_Int32(6870));
+ CPPUNIT_ASSERT_EQUAL(aPosition.Y, sal_Int32(7261));
+ awt::Size aSize = xCircle->getSize();
+ CPPUNIT_ASSERT_EQUAL(aSize.Width, sal_Int32(2701));
+ CPPUNIT_ASSERT_EQUAL(aSize.Height, sal_Int32(2700));
+}
+
void Chart2ImportTest::testTransparentBackground(OUString const & filename)
{
load("/chart2/qa/extras/data/xlsx/", filename);
diff --git a/chart2/qa/extras/data/pptx/tdf106217.pptx b/chart2/qa/extras/data/pptx/tdf106217.pptx
new file mode 100755
index 000000000000..64fb968b8a15
--- /dev/null
+++ b/chart2/qa/extras/data/pptx/tdf106217.pptx
Binary files differ