diff options
Diffstat (limited to 'sd')
-rwxr-xr-x | sd/qa/unit/data/odp/tdf118783.odp | bin | 0 -> 11644 bytes | |||
-rw-r--r-- | sd/qa/unit/export-tests-ooxml2.cxx | 16 | ||||
-rw-r--r-- | sd/source/filter/eppt/pptx-epptooxml.cxx | 11 |
3 files changed, 26 insertions, 1 deletions
diff --git a/sd/qa/unit/data/odp/tdf118783.odp b/sd/qa/unit/data/odp/tdf118783.odp Binary files differnew file mode 100755 index 000000000000..719db63d1d42 --- /dev/null +++ b/sd/qa/unit/data/odp/tdf118783.odp diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx index 49f43fe0b8ed..74129e88aecf 100644 --- a/sd/qa/unit/export-tests-ooxml2.cxx +++ b/sd/qa/unit/export-tests-ooxml2.cxx @@ -145,6 +145,7 @@ public: void testTdf104792(); void testTdf90627(); void testTdf104786(); + void testTdf118783(); void testTdf104789(); void testOpenDocumentAsReadOnly(); void testTdf118768(); @@ -214,6 +215,7 @@ public: CPPUNIT_TEST(testTdf104792); CPPUNIT_TEST(testTdf90627); CPPUNIT_TEST(testTdf104786); + CPPUNIT_TEST(testTdf118783); CPPUNIT_TEST(testTdf104789); CPPUNIT_TEST(testOpenDocumentAsReadOnly); CPPUNIT_TEST(testTdf118768); @@ -1687,6 +1689,20 @@ void SdOOXMLExportTest2::testTdf104786() xDocShRef->DoClose(); } +void SdOOXMLExportTest2::testTdf118783() +{ + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf118783.odp"), ODP); + utl::TempFile tempFile; + xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile); + xDocShRef->DoClose(); + + // check that transition attribute didn't change from 'out' to 'in' + xmlDocPtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml"); + OUString sAttributeName = getXPathContent(pXmlDocContent, "//p:animRot/p:cBhvr/p:attrNameLst/p:attrName"); + CPPUNIT_ASSERT_EQUAL(OUString("r"), sAttributeName); + xDocShRef->DoClose(); +} + void SdOOXMLExportTest2::testTdf104789() { ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf104789.pptx"), PPTX); diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx index a1348e3e29c0..17d7c4f6835d 100644 --- a/sd/source/filter/eppt/pptx-epptooxml.cxx +++ b/sd/source/filter/eppt/pptx-epptooxml.cxx @@ -1298,7 +1298,16 @@ void PowerPointExport::WriteAnimationNodeAnimateInside(const FSHelperPtr& pFS, c FSEND); WriteAnimationNodeCommonPropsStart(pFS, rXNode, true, bMainSeqChild); WriteAnimationTarget(pFS, rXAnimate->getTarget()); - WriteAnimationAttributeName(pFS, rXAnimate->getAttributeName()); + + Reference<XAnimateTransform> xTransform(rXNode, UNO_QUERY); + + // The attribute name of AnimateTransform is "Transform", we have to fix it. + OUString sNewAttr; + if (xTransform.is() && xTransform->getTransformType() == AnimationTransformType::ROTATE) + sNewAttr = "Rotate"; + + WriteAnimationAttributeName(pFS, xTransform.is() ? sNewAttr : rXAnimate->getAttributeName()); + pFS->endElementNS(XML_p, XML_cBhvr); WriteAnimateValues(pFS, rXAnimate); if (bWriteTo) |