diff options
author | Paul Trojahn <paul.trojahn@gmail.com> | 2017-08-17 20:04:27 +0200 |
---|---|---|
committer | Tamás Zolnai <tamas.zolnai@collabora.com> | 2017-08-24 16:25:33 +0200 |
commit | 73ee631e58f392415f23e98460ff4b2f3a763d37 (patch) | |
tree | c1ae241bb6a8de62a88ab02b48643eaed747338b /sd | |
parent | dffdc0b1995e2b24304ce0651ca886bbf9cf4f95 (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>
Diffstat (limited to 'sd')
-rw-r--r-- | sd/qa/unit/data/odp/tdf111798.odp | bin | 0 -> 11183 bytes | |||
-rw-r--r-- | sd/qa/unit/export-tests-ooxml2.cxx | 59 |
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 Binary files differnew file mode 100644 index 000000000000..f00c0bec7fd1 --- /dev/null +++ b/sd/qa/unit/data/odp/tdf111798.odp diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx index 8f41bc928427..bb66d8ebc2d1 100644 --- a/sd/qa/unit/export-tests-ooxml2.cxx +++ b/sd/qa/unit/export-tests-ooxml2.cxx @@ -99,6 +99,7 @@ public: void testTdf105739(); void testPageBitmapWithTransparency(); void testPptmContentType(); + void testTdf111798(); void testPptmVBAStream(); void testTdf111518(); void testTdf100387(); @@ -128,6 +129,7 @@ public: CPPUNIT_TEST(testTdf105739); CPPUNIT_TEST(testPageBitmapWithTransparency); CPPUNIT_TEST(testPptmContentType); + CPPUNIT_TEST(testTdf111798); CPPUNIT_TEST(testPptmVBAStream); CPPUNIT_TEST(testTdf111518); CPPUNIT_TEST(testTdf100387); @@ -828,6 +830,63 @@ void SdOOXMLExportTest2::testPptmContentType() xDocShRef->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::testPptmVBAStream() { ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptm/macro.pptm"), PPTM); |