summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorPaul Trojahn <paul.trojahn@gmail.com>2017-08-17 20:04:27 +0200
committerJan Holesovsky <kendy@collabora.com>2017-09-06 15:47:12 +0200
commit9c0387ef602d84d0079828f0ad4b53ada7ab1d8a (patch)
tree69c75bb2c4b7b8d80bbc629be6b3ed9f5d7c9de0 /sd
parentcc47ba8a8ba72acce94ef9c612afd9f16e3e9e86 (diff)
tdf#111798 Fix deformed export of flipped custom shapes to pptx
Shapes were deformed because flipping wasn't considered when removing the rotation. Also WriteShapeTransformation needs information about flipping to convert the angle correctly. Change-Id: I7d485e93c00e02b9ec6c73ad6ae2876e5bc6360a Reviewed-on: https://gerrit.libreoffice.org/41462 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/41996 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
Diffstat (limited to 'sd')
-rw-r--r--sd/qa/unit/data/odp/tdf111798.odpbin0 -> 11183 bytes
-rw-r--r--sd/qa/unit/export-tests-ooxml2.cxx59
2 files changed, 59 insertions, 0 deletions
diff --git a/sd/qa/unit/data/odp/tdf111798.odp b/sd/qa/unit/data/odp/tdf111798.odp
new file mode 100644
index 000000000000..f00c0bec7fd1
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf111798.odp
Binary files differ
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx
index 817cad398a13..3150687c04cb 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -104,6 +104,7 @@ public:
void testTdf92076();
void testTdf59046();
void testTdf105739();
+ void testTdf111798();
void testTdf111518();
CPPUNIT_TEST_SUITE(SdOOXMLExportTest2);
@@ -132,6 +133,7 @@ public:
CPPUNIT_TEST(testTdf92076);
CPPUNIT_TEST(testTdf59046);
CPPUNIT_TEST(testTdf105739);
+ CPPUNIT_TEST(testTdf111798);
CPPUNIT_TEST(testTdf111518);
CPPUNIT_TEST_SUITE_END();
@@ -792,6 +794,63 @@ void SdOOXMLExportTest2::testTdf105739()
xShell->DoClose();
}
+void SdOOXMLExportTest2::testTdf111798()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/odp/tdf111798.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+ xmlDocPtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+
+ const OUString data[][29] =
+ {
+ {
+ "2700000", "2458080", "2414880", "1439640", "1440000",
+ "moveTo", "0", "3000",
+ "lnTo[1]", "3000", "3000",
+ "lnTo[2]", "3000", "4000",
+ "lnTo[3]", "4000", "2000",
+ "lnTo[4]", "3000", "0",
+ "lnTo[5]", "3000", "1000",
+ "lnTo[6]", "0", "1000",
+ "lnTo[7]", "0", "3000"
+ },
+ {
+ "2700000", "6778080", "2414880", "1439640", "1440000",
+ "moveTo", "3000", "0",
+ "lnTo[1]", "3000", "3000",
+ "lnTo[2]", "4000", "3000",
+ "lnTo[3]", "2000", "4000",
+ "lnTo[4]", "0", "3000",
+ "lnTo[5]", "1000", "3000",
+ "lnTo[6]", "1000", "0",
+ "lnTo[7]", "3000", "0"
+ }
+ };
+
+ for (size_t nShapeIndex = 0; nShapeIndex < SAL_N_ELEMENTS(data); nShapeIndex++)
+ {
+ size_t nDataIndex = 0;
+
+ const OString sSpPr = "/p:sld/p:cSld/p:spTree/p:sp[" + OString::number(nShapeIndex + 1) + "]/p:spPr";
+ const OString sXfrm = sSpPr + "/a:xfrm";
+ assertXPath(pXmlDoc, sXfrm, "rot", data[nShapeIndex][nDataIndex++]);
+ const OString sOff = sXfrm + "/a:off";
+ assertXPath(pXmlDoc, sOff, "x", data[nShapeIndex][nDataIndex++]);
+ assertXPath(pXmlDoc, sOff, "y", data[nShapeIndex][nDataIndex++]);
+ const OString sExt = sXfrm + "/a:ext";
+ assertXPath(pXmlDoc, sExt, "cx", data[nShapeIndex][nDataIndex++]);
+ assertXPath(pXmlDoc, sExt, "cy", data[nShapeIndex][nDataIndex++]);
+
+ while (nDataIndex < SAL_N_ELEMENTS(data[nShapeIndex]))
+ {
+ const OString sPt = sSpPr + "/a:custGeom/a:pathLst/a:path/a:" + data[nShapeIndex][nDataIndex++].toUtf8() + "/a:pt";
+ assertXPath(pXmlDoc, sPt, "x", data[nShapeIndex][nDataIndex++]);
+ assertXPath(pXmlDoc, sPt, "y", data[nShapeIndex][nDataIndex++]);
+ }
+ }
+}
+
void SdOOXMLExportTest2::testTdf111518()
{
sd::DrawDocShellRef xShell = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf111518.pptx"), PPTX);