[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.3' - include/oox oox/source sd/qa sd/source
Szymon Kłos
szymon.klos at collabora.com
Mon Feb 12 19:28:22 UTC 2018
include/oox/ppt/slidetransitioncontext.hxx | 1 +
oox/source/ppt/slidetransitioncontext.cxx | 9 ++++++++-
sd/qa/unit/data/pptx/tdf115394-zero.pptx |binary
sd/qa/unit/export-tests-ooxml2.cxx | 16 ++++++++++++++++
sd/source/filter/eppt/pptx-epptooxml.cxx | 10 +++++-----
5 files changed, 30 insertions(+), 6 deletions(-)
New commits:
commit d55a5e99a6a6ca8f9cc39f49ee398906e962f213
Author: Szymon Kłos <szymon.klos at collabora.com>
Date: Thu Feb 8 23:21:38 2018 +0100
tdf#115394 correct transition in case of 0s
Change-Id: I23d18acef0bd5db4a4ad6fc67d409e7ed5c93949
Reviewed-on: https://gerrit.libreoffice.org/49462
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Szymon Kłos <szymon.klos at collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/49524
Reviewed-by: Andras Timar <andras.timar at collabora.com>
Tested-by: Andras Timar <andras.timar at collabora.com>
diff --git a/include/oox/ppt/slidetransitioncontext.hxx b/include/oox/ppt/slidetransitioncontext.hxx
index 4edaa3fcae9f..54b8d89ffb9b 100644
--- a/include/oox/ppt/slidetransitioncontext.hxx
+++ b/include/oox/ppt/slidetransitioncontext.hxx
@@ -47,6 +47,7 @@ namespace oox { namespace ppt {
private:
PropertyMap& maSlideProperties;
bool mbHasTransition;
+ bool mbHasTransitionDuration;
SlideTransition maTransition;
};
diff --git a/oox/source/ppt/slidetransitioncontext.cxx b/oox/source/ppt/slidetransitioncontext.cxx
index bed6060d4d4a..bc2a56845b54 100644
--- a/oox/source/ppt/slidetransitioncontext.cxx
+++ b/oox/source/ppt/slidetransitioncontext.cxx
@@ -47,6 +47,7 @@ SlideTransitionContext::SlideTransitionContext( FragmentHandler2& rParent, const
: FragmentHandler2( rParent )
, maSlideProperties( aProperties )
, mbHasTransition( false )
+, mbHasTransitionDuration( false )
{
// ST_TransitionSpeed
maTransition.setOoxTransitionSpeed( rAttribs.getToken( XML_spd, XML_fast ) );
@@ -54,7 +55,13 @@ SlideTransitionContext::SlideTransitionContext( FragmentHandler2& rParent, const
// p14:dur
sal_Int32 nDurationInMs = rAttribs.getInteger( P14_TOKEN( dur ), -1 );
if( nDurationInMs > -1 )
+ {
+ // In MSO 0 is visible as 0.01s
+ if( nDurationInMs == 0.0 )
+ nDurationInMs = 10;
maTransition.setOoxTransitionSpeed( nDurationInMs / 1000.0 );
+ mbHasTransitionDuration = true;
+ }
// TODO
rAttribs.getBool( XML_advClick, true );
@@ -182,7 +189,7 @@ void SlideTransitionContext::onEndElement()
{
if( isCurrentElement(PPT_TOKEN( transition )) )
{
- if( mbHasTransition )
+ if( mbHasTransition || mbHasTransitionDuration )
{
maTransition.setSlideProperties( maSlideProperties );
mbHasTransition = false;
diff --git a/sd/qa/unit/data/pptx/tdf115394-zero.pptx b/sd/qa/unit/data/pptx/tdf115394-zero.pptx
new file mode 100644
index 000000000000..e8fb0cfa240c
Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf115394-zero.pptx differ
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx
index 59d1d0e7f424..80518487b96a 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -126,6 +126,7 @@ public:
void testAccentColor();
void testTdf114848();
void testTdf115394();
+ void testTdf115394Zero();
CPPUNIT_TEST_SUITE(SdOOXMLExportTest2);
@@ -173,6 +174,7 @@ public:
CPPUNIT_TEST(testAccentColor);
CPPUNIT_TEST(testTdf114848);
CPPUNIT_TEST(testTdf115394);
+ CPPUNIT_TEST(testTdf115394Zero);
CPPUNIT_TEST_SUITE_END();
@@ -1166,6 +1168,20 @@ void SdOOXMLExportTest2::testTdf115394()
xDocShRef->DoClose();
}
+void SdOOXMLExportTest2::testTdf115394Zero()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf115394-zero.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ double fTransitionDuration;
+
+ SdPage* pPage = xDocShRef->GetDoc()->GetSdPage(0, PageKind::Standard);
+ fTransitionDuration = pPage->getTransitionDuration();
+ CPPUNIT_ASSERT_EQUAL(0.01, fTransitionDuration);
+
+ xDocShRef->DoClose();
+}
+
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 07c290895970..9d6f3066b7e9 100644
--- a/sd/source/filter/eppt/pptx-epptooxml.cxx
+++ b/sd/source/filter/eppt/pptx-epptooxml.cxx
@@ -634,10 +634,6 @@ void PowerPointExport::WriteTransition( const FSHelperPtr& pFS )
}
}
- // check if we resolved what transition to export
- if (!nPPTTransitionType && !bOOXmlSpecificTransition)
- return;
-
AnimationSpeed animationSpeed = AnimationSpeed_MEDIUM;
const char* speed = nullptr;
sal_Int32 advanceTiming = -1;
@@ -695,7 +691,11 @@ void PowerPointExport::WriteTransition( const FSHelperPtr& pFS )
}
}
- if( GETA( Change ) )
+ // check if we resolved what transition to export or time is set
+ if (!nPPTTransitionType && !bOOXmlSpecificTransition && !isTransitionDurationSet)
+ return;
+
+ if (GETA(Change))
mAny >>= changeType;
// 1 means automatic, 2 half automatic - not sure what it means - at least I don't see it in UI
More information about the Libreoffice-commits
mailing list