• Michael Stahl's avatar
    sd: OOoXML import: fix loss of animations · 5206929f
    Michael Stahl yazdı
    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
    5206929f
EffectMigration.hxx 3.52 KB