diff options
author | Andras Timar <andras.timar@collabora.com> | 2016-01-29 16:42:31 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2016-02-03 09:55:56 +0000 |
commit | bd36889b2caa4a74d647e18fc52e455f83529be9 (patch) | |
tree | 906e085e2d0907feba8e12db12405863e6c5a2bd /sw | |
parent | e4b98408f60fdbe8248540da58bde8a9bf00c461 (diff) |
Improve DrawingML export of rotated/flipped customshapes
When we export the customshape as polypolygon, we need to
take into account, that the polypolygon of the shape already
has flipped coordinates, but coordinates has to be relative
to the rotated bounding rectangle.
Change-Id: I4f3b015e439d3d6041adc67eddd460f5bd4dfca1
Reviewed-on: https://gerrit.libreoffice.org/21905
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/extras/ooxmlexport/data/flip_and_rotate.odt | bin | 0 -> 9403 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport7.cxx | 19 |
2 files changed, 19 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/flip_and_rotate.odt b/sw/qa/extras/ooxmlexport/data/flip_and_rotate.odt Binary files differnew file mode 100644 index 000000000000..4805bfa80004 --- /dev/null +++ b/sw/qa/extras/ooxmlexport/data/flip_and_rotate.odt diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx index cfa1ddb4637e..6463c8096184 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx @@ -1103,6 +1103,25 @@ DECLARE_OOXMLEXPORT_TEST(testTDF93675, "no-numlevel-but-indented.odt") assertXPath(pXmlDoc, "//w:ind", "start", "1418"); } +DECLARE_OOXMLEXPORT_TEST(testFlipAndRotateCustomShape, "flip_and_rotate.odt") +{ + xmlDocPtr pXmlDoc = parseExport("word/document.xml"); + if (!pXmlDoc) + return; + // there should be no flipH and flipV attributes in this case + assertXPathNoAttribute(pXmlDoc, "//a:xfrm", "flipH"); + assertXPathNoAttribute(pXmlDoc, "//a:xfrm", "flipV"); + // check rotation angle + assertXPath(pXmlDoc, "//a:xfrm", "rot", "13500000"); + // check the first few coordinates of the polygon + assertXPath(pXmlDoc, "//a:custGeom/a:pathLst/a:path/a:lnTo[1]/a:pt", "x", "2351"); + assertXPath(pXmlDoc, "//a:custGeom/a:pathLst/a:path/a:lnTo[1]/a:pt", "y", "3171"); + assertXPath(pXmlDoc, "//a:custGeom/a:pathLst/a:path/a:lnTo[2]/a:pt", "x", "1695"); + assertXPath(pXmlDoc, "//a:custGeom/a:pathLst/a:path/a:lnTo[2]/a:pt", "y", "3171"); + assertXPath(pXmlDoc, "//a:custGeom/a:pathLst/a:path/a:lnTo[3]/a:pt", "x", "1695"); + assertXPath(pXmlDoc, "//a:custGeom/a:pathLst/a:path/a:lnTo[3]/a:pt", "y", "1701"); +} + #endif CPPUNIT_PLUGIN_IMPLEMENT(); |