summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2017-09-20 10:15:47 +0200
committerAndras Timar <andras.timar@collabora.com>2017-09-28 16:30:06 +0200
commitbf48c5ffcffda0d47ed0af6b3cb6ff32ad0281c0 (patch)
treedd5ec0e53b5da49ab5143e3a36cb9f7d20308584 /sd
parentf30016d6c72e5056148e08777fb8777ffb8ad791 (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-xsd/qa/unit/data/pptx/tdf112086.pptxbin0 -> 30542 bytes
-rw-r--r--sd/qa/unit/export-tests-ooxml2.cxx24
-rw-r--r--sd/source/filter/eppt/pptx-epptooxml.cxx19
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
new file mode 100755
index 000000000000..ba125df45402
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf112086.pptx
Binary files 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);