diff options
author | Mark Hung <marklh9@gmail.com> | 2018-07-14 14:02:14 +0800 |
---|---|---|
committer | Mark Hung <marklh9@gmail.com> | 2018-07-24 12:11:24 +0200 |
commit | 0bc245ede6ec5831561e950299071f57b0329da8 (patch) | |
tree | 3859b39917f64f61daedb17d6c30176e2f0d9b1f | |
parent | e65da112029bf7b6a3b5d94b72bcd5d6ca225195 (diff) |
tdf#113818 convert formula of AnimContext.
Change-Id: I0f6f08247eaf8099d84c0e8201d22fc507b1cac4
Reviewed-on: https://gerrit.libreoffice.org/57414
Tested-by: Jenkins
Reviewed-by: Mark Hung <marklh9@gmail.com>
-rw-r--r-- | oox/source/ppt/timenodelistcontext.cxx | 16 | ||||
-rwxr-xr-x | sd/qa/unit/data/pptx/tdf113818-swivel.pptx | bin | 0 -> 33604 bytes | |||
-rw-r--r-- | sd/qa/unit/export-tests.cxx | 15 |
3 files changed, 23 insertions, 8 deletions
diff --git a/oox/source/ppt/timenodelistcontext.cxx b/oox/source/ppt/timenodelistcontext.cxx index 2bd2e2a78f72..b286acdd6d94 100644 --- a/oox/source/ppt/timenodelistcontext.cxx +++ b/oox/source/ppt/timenodelistcontext.cxx @@ -578,17 +578,17 @@ namespace oox { namespace ppt { Any aTime = GetTimeAnimateValueTime( tav.msTime ); aTime >>= aKeyTimes[i]; aValues[i] = tav.maValue; + convertAnimationValueWithTimeNode(mpNode, aValues[i]); - OUString aTest; - tav.maValue >>= aTest; - if( !aTest.isEmpty() ) + // Examine pptx documents and find that only the first tav + // has the formula set. The formula can be used for the whole. + if (!tav.msFormula.isEmpty()) { - aValues[i] = tav.maValue; - } - else - { - aProps[ NP_FORMULA ] <<= tav.msFormula; + OUString sFormula = tav.msFormula; + convertMeasure(sFormula); + aProps[NP_FORMULA] <<= sFormula; } + ++i; } aProps[ NP_VALUES ] <<= aValues; diff --git a/sd/qa/unit/data/pptx/tdf113818-swivel.pptx b/sd/qa/unit/data/pptx/tdf113818-swivel.pptx Binary files differnew file mode 100755 index 000000000000..f39225223acd --- /dev/null +++ b/sd/qa/unit/data/pptx/tdf113818-swivel.pptx diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx index 1c494ae33188..71509ca61eea 100644 --- a/sd/qa/unit/export-tests.cxx +++ b/sd/qa/unit/export-tests.cxx @@ -100,6 +100,7 @@ public: void testTextRotation(); void testTdf115394PPT(); void testBulletsAsImage(); + void testTdf113818(); void testTdf113822(); CPPUNIT_TEST_SUITE(SdExportTest); @@ -126,6 +127,7 @@ public: CPPUNIT_TEST(testTextRotation); CPPUNIT_TEST(testTdf115394PPT); CPPUNIT_TEST(testBulletsAsImage); + CPPUNIT_TEST(testTdf113818); CPPUNIT_TEST(testTdf113822); CPPUNIT_TEST_SUITE_END(); @@ -1094,6 +1096,19 @@ void SdExportTest::testTdf113822() xDocShRef->DoClose(); } +void SdExportTest::testTdf113818() +{ + utl::TempFile tempFile; + sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf113818-swivel.pptx"), PPTX); + + xDocShRef = saveAndReload(xDocShRef.get(), ODP, &tempFile); + + xmlDocPtr pXmlDoc = parseExport(tempFile, "content.xml"); + assertXPath(pXmlDoc, "//anim:animate[1]", "formula", "width*sin(2.5*pi*$)"); + assertXPath(pXmlDoc, "//anim:animate[1]", "values", "0;1"); + xDocShRef->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdExportTest); |