diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2017-09-20 10:15:47 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2017-09-28 16:30:06 +0200 |
commit | bf48c5ffcffda0d47ed0af6b3cb6ff32ad0281c0 (patch) | |
tree | dd5ec0e53b5da49ab5143e3a36cb9f7d20308584 /sd | |
parent | f30016d6c72e5056148e08777fb8777ffb8ad791 (diff) |
tdf#112086 PPTX export fltValue, ppt_w, ppt_h
Change-Id: Ie77a2f5d9b0179d81c81704d7d760fdceecaa6e1
Reviewed-on: https://gerrit.libreoffice.org/42521
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/42843
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'sd')
-rwxr-xr-x | sd/qa/unit/data/pptx/tdf112086.pptx | bin | 0 -> 30542 bytes | |||
-rw-r--r-- | sd/qa/unit/export-tests-ooxml2.cxx | 24 | ||||
-rw-r--r-- | sd/source/filter/eppt/pptx-epptooxml.cxx | 19 |
3 files changed, 43 insertions, 0 deletions
diff --git a/sd/qa/unit/data/pptx/tdf112086.pptx b/sd/qa/unit/data/pptx/tdf112086.pptx Binary files differnew file mode 100755 index 000000000000..ba125df45402 --- /dev/null +++ b/sd/qa/unit/data/pptx/tdf112086.pptx diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx index 9a19c6ec80fc..c1858e5a38a4 100644 --- a/sd/qa/unit/export-tests-ooxml2.cxx +++ b/sd/qa/unit/export-tests-ooxml2.cxx @@ -117,6 +117,7 @@ public: void testTdf112089(); void testTdf112334(); void testTdf112647(); + void testTdf112086(); CPPUNIT_TEST_SUITE(SdOOXMLExportTest2); @@ -155,6 +156,7 @@ public: CPPUNIT_TEST(testTdf112089); CPPUNIT_TEST(testTdf112334); CPPUNIT_TEST(testTdf112647); + CPPUNIT_TEST(testTdf112086); CPPUNIT_TEST_SUITE_END(); @@ -995,6 +997,28 @@ void SdOOXMLExportTest2::testTdf112647() xDocShRef->DoClose(); } +void SdOOXMLExportTest2::testTdf112086() +{ + ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf112086.pptx"), PPTX); + utl::TempFile tempFile; + xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile); + xDocShRef->DoClose(); + + xmlDocPtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml"); + + OUString sVal = getXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:anim[2]/p:tavLst/p:tav/p:val/p:fltVal", "val"); + CPPUNIT_ASSERT_EQUAL(OUString("0"), sVal); + + OUString sAttributeName = getXPathContent(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:anim[1]/p:cBhvr/p:attrNameLst/p:attrName"); + CPPUNIT_ASSERT_EQUAL(OUString("ppt_w"), sAttributeName); + + sVal = getXPath(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:anim[2]/p:tavLst/p:tav/p:val/p:fltVal", "val"); + CPPUNIT_ASSERT_EQUAL(OUString("0"), sVal); + + sAttributeName = getXPathContent(pXmlDocContent, "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:anim[2]/p:cBhvr/p:attrNameLst/p:attrName"); + CPPUNIT_ASSERT_EQUAL(OUString("ppt_h"), sAttributeName); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdOOXMLExportTest2); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx index f8f22e78656b..fa4e9dbc1a22 100644 --- a/sd/source/filter/eppt/pptx-epptooxml.cxx +++ b/sd/source/filter/eppt/pptx-epptooxml.cxx @@ -820,6 +820,7 @@ void PowerPointExport::WriteAnimationProperty( const FSHelperPtr& pFS, const Any return; sal_uInt32 nRgb; + double fDouble; switch( rAny.getValueType().getTypeClass() ) { case TypeClass_LONG: @@ -828,6 +829,12 @@ void PowerPointExport::WriteAnimationProperty( const FSHelperPtr& pFS, const Any XML_val, I32SHEX(nRgb), FSEND); break; + case TypeClass_DOUBLE: + rAny >>= fDouble; + pFS->singleElementNS(XML_p, XML_fltVal, + XML_val, DS(fDouble), + FSEND); + break; case TypeClass_STRING: pFS->singleElementNS( XML_p, XML_strVal, XML_val, USS( *o3tl::doAccess<OUString>(rAny) ), @@ -932,6 +939,18 @@ void PowerPointExport::WriteAnimationAttributeName( const FSHelperPtr& pFS, cons pFS->writeEscaped("ppt_y"); pFS->endElementNS(XML_p, XML_attrName); } + else if (rAttributeName == "Width") + { + pFS->startElementNS(XML_p, XML_attrName, FSEND); + pFS->writeEscaped("ppt_w"); + pFS->endElementNS(XML_p, XML_attrName); + } + else if (rAttributeName == "Height") + { + pFS->startElementNS(XML_p, XML_attrName, FSEND); + pFS->writeEscaped("ppt_h"); + pFS->endElementNS(XML_p, XML_attrName); + } else if (rAttributeName == "Rotate") { pFS->startElementNS(XML_p, XML_attrName, FSEND); |