diff options
author | Michael Stahl <mstahl@redhat.com> | 2016-07-24 00:02:23 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2016-07-25 12:12:53 +0200 |
commit | 5206929f3a125a739adb860709586a0f50cb9611 (patch) | |
tree | 25815723d63f1ad47b4b1b7f667a9d82a0652f64 /sd/inc/EffectMigration.hxx | |
parent | e32a795eee3d6b2c4c4be112674d37b39d3e315f (diff) |
sd: OOoXML import: fix loss of animations
There are 2 different animation formats, legacy one used in OOoXML
format, based on presentation:animations element, and SMIL based one
used in ODF format, based on a node hierarchy with
<anim:par presentation:node-type="timing-root"> at the top.
The problem is that when the legacy animations are imported, they are
not immediately set on the draw-page in the same way as the new
animations are imported.
"soffice --convert-to odp ooo28334-1.sxi" loses all of the animations,
whereas loading the file in the UI and storing it all animations are
converted, and if you use API load/store methods some are converted and
some not depending on timing.
The problem is that there is a necessary conversion step
MainSequence::implRebuild() that needs to happen after all the
EffectMigration calls for a particular SdPage are finished, which
is only triggered by a timer MainSequence::onTimerHdl().
Fix it by forcing a call to implRebuild() from DrawDocShell::Load().
Note: SdDrawDocument::NewOrLoadCompleted() is a horribly misleading
function name as it is actually called *before* loading the document.
Change-Id: I9881cb9bf2ae6ccc5fcf06602343f2d0e0704699
Diffstat (limited to 'sd/inc/EffectMigration.hxx')
-rw-r--r-- | sd/inc/EffectMigration.hxx | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sd/inc/EffectMigration.hxx b/sd/inc/EffectMigration.hxx index 033e4ed9a233..f1702b1d7f8f 100644 --- a/sd/inc/EffectMigration.hxx +++ b/sd/inc/EffectMigration.hxx @@ -24,6 +24,7 @@ #include <com/sun/star/presentation/AnimationSpeed.hpp> #include <com/sun/star/presentation/FadeEffect.hpp> +class SdDrawDocument; class SdPage; class SvxShape; class SdAnimationInfo; @@ -68,6 +69,7 @@ public: static void SetAnimationPath( SvxShape* pShape, SdrPathObj* pPathObj ); static void CreateAnimatedGroup(SdrObjGroup& rGroupObj, SdPage& rPage); + static void DocumentLoaded(SdDrawDocument & rDoc); }; } // end of namespace sd |