include/oox/export/utils.hxx | 1 + sd/qa/unit/data/pptx/tdf112086.pptx |binary sd/qa/unit/export-tests-ooxml2.cxx | 24 ++++++++++++++++++++++++ sd/source/filter/eppt/pptx-epptooxml.cxx | 19 +++++++++++++++++++ 4 files changed, 44 insertions(+)
New commits: commit bf48c5ffcffda0d47ed0af6b3cb6ff32ad0281c0 Author: Szymon KÅos <[email protected]> Date: Wed Sep 20 10:15:47 2017 +0200 tdf#112086 PPTX export fltValue, ppt_w, ppt_h Change-Id: Ie77a2f5d9b0179d81c81704d7d760fdceecaa6e1 Reviewed-on: https://gerrit.libreoffice.org/42521 Tested-by: Jenkins <[email protected]> Reviewed-by: Szymon KÅos <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/42843 Reviewed-by: Andras Timar <[email protected]> Tested-by: Andras Timar <[email protected]> diff --git a/include/oox/export/utils.hxx b/include/oox/export/utils.hxx index 0e0dae1bce83..c1187b634419 100644 --- a/include/oox/export/utils.hxx +++ b/include/oox/export/utils.hxx @@ -36,6 +36,7 @@ inline OString I32SHEX_(sal_Int32 x) } #define I32SHEX(x) I32SHEX_(x).getStr() +#define DS(x) OString::number( (double) x ).getStr() #define IS(x) OString::number( x ).getStr() #define BS(x) (x ? "1":"0") #define USS(x) OUStringToOString( x, RTL_TEXTENCODING_UTF8 ).getStr() diff --git a/sd/qa/unit/data/pptx/tdf112086.pptx b/sd/qa/unit/data/pptx/tdf112086.pptx new file mode 100755 index 000000000000..ba125df45402 Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf112086.pptx differ 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);
_______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
