[Libreoffice-commits] core.git: filter/source

Marco Cecchetti marco.cecchetti at collabora.com
Fri Jan 15 05:13:00 PST 2016


 filter/source/svg/presentation_engine.js |   12 ++++++++++--
 filter/source/svg/svgexport.cxx          |    5 +++++
 2 files changed, 15 insertions(+), 2 deletions(-)

New commits:
commit 2f20ee7a6a871fe60194518044110c8d2a97acbe
Author: Marco Cecchetti <marco.cecchetti at collabora.com>
Date:   Tue Jan 12 17:15:16 2016 +0100

    svg export - group shape + indefinite duration - fixed
    
    Fixed two issues:
    
    - group shapes were not animated
    - when smil:dur=indefinite final state of shapes was not frozen
    
    Now when an audio or command node is hit a log message is printed
    informing that such a type of animation nodes are not implemented.
    
    Change-Id: I81853c982e6a2b68c3644b2ebc09e2d565d706af
    Reviewed-on: https://gerrit.libreoffice.org/21446
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Marco Cecchetti <mrcekets at gmail.com>

diff --git a/filter/source/svg/presentation_engine.js b/filter/source/svg/presentation_engine.js
index 56fec95..757f4e1 100644
--- a/filter/source/svg/presentation_engine.js
+++ b/filter/source/svg/presentation_engine.js
@@ -3876,7 +3876,9 @@ aAnimationNodeTypeInMap = {
     'animatemotion'     : ANIMATION_NODE_ANIMATEMOTION,
     'animatecolor'      : ANIMATION_NODE_ANIMATECOLOR,
     'animatetransform'  : ANIMATION_NODE_ANIMATETRANSFORM,
-    'transitionfilter'  : ANIMATION_NODE_TRANSITIONFILTER
+    'transitionfilter'  : ANIMATION_NODE_TRANSITIONFILTER,
+    'audio'             : ANIMATION_NODE_AUDIO,
+    'command'           : ANIMATION_NODE_COMMAND
 };
 
 
@@ -5246,7 +5248,7 @@ BaseNode.prototype.parseElement = function()
     {
         this.eFillMode = ( this.aEnd ||
                            ( this.nReapeatCount != 1) ||
-                           this.aDuration )
+                           ( this.aDuration && !this.aDuration.isIndefinite() ) )
                               ? FILL_MODE_REMOVE
                               : FILL_MODE_FREEZE;
     }
@@ -7158,6 +7160,12 @@ function createAnimationNode( aElement, aParentNode, aNodeContext )
         case ANIMATION_NODE_TRANSITIONFILTER:
             aCreatedNode = new AnimationTransitionFilterNode( aElement, aParentNode, aNodeContext );
             break;
+         case ANIMATION_NODE_AUDIO:
+            log( 'createAnimationNode: AUDIO not implemented' );
+            return null;
+         case ANIMATION_NODE_COMMAND:
+            log( 'createAnimationNode: COMMAND not implemented' );
+            return null;
         default:
             log( 'createAnimationNode: invalid Animation Node Type: ' + eAnimationNodeType );
             return null;
diff --git a/filter/source/svg/svgexport.cxx b/filter/source/svg/svgexport.cxx
index ef97fd9..794f5b0 100644
--- a/filter/source/svg/svgexport.cxx
+++ b/filter/source/svg/svgexport.cxx
@@ -1785,6 +1785,11 @@ bool SVGFilter::implExportShape( const Reference< XShape >& rxShape,
                 if( xShapes.is() )
                 {
                     mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "class", "Group" );
+                    const OUString& rShapeId = implGetValidIDFromInterface( Reference<XInterface>(rxShape, UNO_QUERY) );
+                    if( !rShapeId.isEmpty() )
+                    {
+                        mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "id", rShapeId );
+                    }
                     SvXMLElementExport aExp( *mpSVGExport, XML_NAMESPACE_NONE, "g", true, true );
 
                     bRet = implExportShapes( xShapes, bMaster );


More information about the Libreoffice-commits mailing list