Kaydet (Commit) 71f7ecae authored tarafından Mark Hung's avatar Mark Hung

tdf#118783 sd:fix spin animation in saved pptx file.

The attribute name of the AnimateTransform is "Transform"
but we expect "r" for "Rotate". We need to fix it so that PowerPoint
recognize it.

Change-Id: I47590d80d28af0a0ac92ef0892b40643f1de3643
Reviewed-on: https://gerrit.libreoffice.org/57579
Tested-by: Jenkins
Reviewed-by: 's avatarMark Hung <marklh9@gmail.com>
üst a6b45607
......@@ -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);
......
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment