diff options
author | Katarina Machalkova <kmachalkova@suse.cz> | 2010-10-19 16:32:02 +0200 |
---|---|---|
committer | Katarina Machalkova <kmachalkova@suse.cz> | 2010-10-19 16:32:02 +0200 |
commit | 682dcfecbbdc8ba1bc03e8740b153b53c01cb556 (patch) | |
tree | 24e854d746ca2e58ff0b885c2b1532d3cf89af62 /sd | |
parent | 17177e320d53f30ad1397051f3e13b402e4e0361 (diff) |
Merged pptx-export-empty-animations-node-and-groupshape-fix.diff
Diffstat (limited to 'sd')
-rw-r--r-- | sd/source/filter/pptx/pptx-epptooxml.cxx | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/sd/source/filter/pptx/pptx-epptooxml.cxx b/sd/source/filter/pptx/pptx-epptooxml.cxx index 6b3459e9145d..48ea4a742f09 100644 --- a/sd/source/filter/pptx/pptx-epptooxml.cxx +++ b/sd/source/filter/pptx/pptx-epptooxml.cxx @@ -172,17 +172,13 @@ ShapeExport& PowerPointShapeExport::WriteUnknownShape( Reference< XShape > xShap DBG(printf( "shape(unknown): %s\n", USS(sShapeType) )); - if( sShapeType.equalsAscii( "com.sun.star.drawing.Group" ) ) + if( sShapeType.equalsAscii( "com.sun.star.drawing.GroupShape" ) ) { Reference< XIndexAccess > rXIndexAccess( xShape, UNO_QUERY ); mrExport.EnterGroup( rXIndexAccess ); DBG(printf( "enter group\n" )); } - else if( sShapeType.equalsAscii( "com.sun.star.drawing.Group" ) ) - { - WritePageShape( xShape, mePageType, mrExport.GetPresObj() ); - } else if( sShapeType.equalsAscii( "com.sun.star.drawing.PageShape" ) ) { WritePageShape( xShape, mePageType, mrExport.GetPresObj() ); @@ -1059,18 +1055,26 @@ void PowerPointExport::WriteAnimationNode( FSHelperPtr pFS, const Reference< XAn void PowerPointExport::WriteAnimations( FSHelperPtr pFS ) { - pFS->startElementNS( XML_p, XML_timing, FSEND ); - pFS->startElementNS( XML_p, XML_tnLst, FSEND ); - Reference< XAnimationNodeSupplier > xNodeSupplier( mXDrawPage, UNO_QUERY ); if( xNodeSupplier.is() ) { const Reference< XAnimationNode > xNode( xNodeSupplier->getAnimationNode() ); - if( xNode.is() ) - WriteAnimationNode( pFS, xNode, FALSE ); - } + if( xNode.is() ) { + Reference< XEnumerationAccess > xEnumerationAccess( xNode, UNO_QUERY ); + if( xEnumerationAccess.is() ) { + Reference< XEnumeration > xEnumeration( xEnumerationAccess->createEnumeration(), UNO_QUERY ); + if( xEnumeration.is() && xEnumeration->hasMoreElements() ) { + + pFS->startElementNS( XML_p, XML_timing, FSEND ); + pFS->startElementNS( XML_p, XML_tnLst, FSEND ); - pFS->endElementNS( XML_p, XML_tnLst ); - pFS->endElementNS( XML_p, XML_timing ); + WriteAnimationNode( pFS, xNode, FALSE ); + + pFS->endElementNS( XML_p, XML_tnLst ); + pFS->endElementNS( XML_p, XML_timing ); + } + } + } + } } void PowerPointExport::ImplWriteSlide( sal_uInt32 nPageNum, sal_uInt32 nMasterNum, sal_uInt16 /* nMode */, |