[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.3' - include/oox sd/qa sd/source

Szymon Kłos szymon.klos at collabora.com
Thu Sep 28 14:30:29 UTC 2017


 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 <szymon.klos at collabora.com>
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 <ci at libreoffice.org>
    Reviewed-by: Szymon Kłos <szymon.klos at collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/42843
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>

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);


More information about the Libreoffice-commits mailing list