[Libreoffice-commits] core.git: 3 commits - sd/qa sd/source

Jan Holesovsky kendy at collabora.com
Wed Aug 9 14:03:46 UTC 2017


 sd/qa/unit/data/pptx/tdf111518.pptx      |binary
 sd/qa/unit/export-tests-ooxml2.cxx       |   17 
 sd/source/filter/eppt/pptx-epptooxml.cxx | 2112 ++++++++++++++++---------------
 3 files changed, 1133 insertions(+), 996 deletions(-)

New commits:
commit 506bdf029379d63e79656c85df49e2c9cef0c16e
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Wed Aug 9 15:30:28 2017 +0200

    tdf#111518 pptx: Unit test.
    
    Change-Id: I618398680e1d2bfce78121afbf3d627ce805ebfb

diff --git a/sd/qa/unit/data/pptx/tdf111518.pptx b/sd/qa/unit/data/pptx/tdf111518.pptx
new file mode 100644
index 000000000000..a0d77617f67a
Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf111518.pptx differ
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx
index 848ea8f5d1a4..e94437e17a5a 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -100,6 +100,7 @@ public:
     void testPageBitmapWithTransparency();
     void testPptmContentType();
     void testPptmVBAStream();
+    void testTdf111518();
 
     CPPUNIT_TEST_SUITE(SdOOXMLExportTest2);
 
@@ -127,6 +128,7 @@ public:
     CPPUNIT_TEST(testPageBitmapWithTransparency);
     CPPUNIT_TEST(testPptmContentType);
     CPPUNIT_TEST(testPptmVBAStream);
+    CPPUNIT_TEST(testTdf111518);
 
     CPPUNIT_TEST_SUITE_END();
 
@@ -837,6 +839,21 @@ void SdOOXMLExportTest2::testPptmVBAStream()
     xDocShRef->DoClose();
 }
 
+void SdOOXMLExportTest2::testTdf111518()
+{
+    sd::DrawDocShellRef xShell = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf111518.pptx"), PPTX);
+    utl::TempFile tempFile;
+    tempFile.EnableKillingFile(false);
+    xShell = saveAndReload(xShell.get(), PPTX, &tempFile);
+    xShell->DoClose();
+
+    xmlDocPtr pXmlDocRels = parseExport(tempFile, "ppt/slides/slide1.xml");
+    assertXPath(pXmlDocRels,
+            "/p:sld/p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:animMotion",
+            "path",
+            "M -3.54167E-6 -4.81481E-6 L 0.39037 -0.00069");
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(SdOOXMLExportTest2);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
commit af4602e558431bcdf51d0f15e7e400adcd142738
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Wed Aug 9 14:52:17 2017 +0200

    tdf#111518 pptx: Add support for export of p:animMotion.
    
    Change-Id: Idd5692c803b1e8d434abc0154419a341934d0753

diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx
index ae55007e4cfd..8b3acbe9e642 100644
--- a/sd/source/filter/eppt/pptx-epptooxml.cxx
+++ b/sd/source/filter/eppt/pptx-epptooxml.cxx
@@ -49,6 +49,7 @@
 #include <com/sun/star/animations/TransitionType.hpp>
 #include <com/sun/star/animations/TransitionSubType.hpp>
 #include <com/sun/star/animations/ValuePair.hpp>
+#include <com/sun/star/animations/XAnimateMotion.hpp>
 #include <com/sun/star/animations/XAnimationNode.hpp>
 #include <com/sun/star/animations/XAnimationNodeSupplier.hpp>
 #include <com/sun/star/animations/XTransitionFilter.hpp>
@@ -900,23 +901,34 @@ void PowerPointExport::WriteAnimationAttributeName(const FSHelperPtr& pFS, const
 
     SAL_INFO("sd.eppt", "write attribute name: " << USS(rAttributeName));
 
-    const char* sAttributeName = nullptr;
     if (rAttributeName == "Visibility")
     {
-        sAttributeName = "style.visibility";
+        pFS->startElementNS(XML_p, XML_attrName, FSEND);
+        pFS->writeEscaped("style.visibility");
+        pFS->endElementNS(XML_p, XML_attrName);
     }
     else if (rAttributeName == "X")
     {
-        sAttributeName = "ppt_x";
+        pFS->startElementNS(XML_p, XML_attrName, FSEND);
+        pFS->writeEscaped("ppt_x");
+        pFS->endElementNS(XML_p, XML_attrName);
     }
     else if (rAttributeName == "Y")
     {
-        sAttributeName = "ppt_y";
+        pFS->startElementNS(XML_p, XML_attrName, FSEND);
+        pFS->writeEscaped("ppt_y");
+        pFS->endElementNS(XML_p, XML_attrName);
     }
+    else if (rAttributeName == "X;Y")
+    {
+        pFS->startElementNS(XML_p, XML_attrName, FSEND);
+        pFS->writeEscaped("ppt_x");
+        pFS->endElementNS(XML_p, XML_attrName);
 
-    pFS->startElementNS(XML_p, XML_attrName, FSEND);
-    pFS->writeEscaped(sAttributeName);
-    pFS->endElementNS(XML_p, XML_attrName);
+        pFS->startElementNS(XML_p, XML_attrName, FSEND);
+        pFS->writeEscaped("ppt_y");
+        pFS->endElementNS(XML_p, XML_attrName);
+    }
 
     pFS->endElementNS(XML_p, XML_attrNameLst);
 }
@@ -983,10 +995,29 @@ void PowerPointExport::WriteAnimationNodeAnimate(const FSHelperPtr& pFS, const R
         }
     }
 
-    pFS->startElementNS(XML_p, nXmlNodeType,
-                        XML_calcmode, pCalcMode,
-                        XML_valueType, pValueType,
-                        FSEND);
+    OUString aPath;
+    if (nXmlNodeType == XML_animMotion)
+    {
+        Reference<XAnimateMotion> rMotion(rXNode, UNO_QUERY);
+        if (rMotion.is())
+            rMotion->getPath() >>= aPath;
+    }
+
+    if (aPath.isEmpty())
+    {
+        pFS->startElementNS(XML_p, nXmlNodeType,
+                            XML_calcmode, pCalcMode,
+                            XML_valueType, pValueType,
+                            FSEND);
+    }
+    else
+    {
+        pFS->startElementNS(XML_p, nXmlNodeType,
+                            XML_calcmode, pCalcMode,
+                            XML_valueType, pValueType,
+                            XML_path, OUStringToOString(aPath, RTL_TEXTENCODING_UTF8),
+                            FSEND);
+    }
     WriteAnimationNodeAnimateInside(pFS, rXNode, bMainSeqChild, bSimple);
     pFS->endElementNS(XML_p, nXmlNodeType);
 }
@@ -1409,6 +1440,10 @@ void PowerPointExport::WriteAnimationNode(const FSHelperPtr& pFS, const Referenc
         xmlNodeType = XML_anim;
         pMethod = &PowerPointExport::WriteAnimationNodeAnimate;
         break;
+    case AnimationNodeType::ANIMATEMOTION:
+        xmlNodeType = XML_animMotion;
+        pMethod = &PowerPointExport::WriteAnimationNodeAnimate;
+        break;
     case AnimationNodeType::SET:
         xmlNodeType = XML_set;
         pMethod = &PowerPointExport::WriteAnimationNodeAnimate;
commit 724306074951449ce4cb074b21cc329f1fb895c6
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Wed Aug 9 14:01:15 2017 +0200

    Indentation fixes.
    
    Nesting of if's is confused on too many places, so let's just astyle this
    using the writerfilter/source/rtftok/astyle.options
    
    Change-Id: I99e421123ae0106199a16148a50e3efc095b7c81

diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx
index 43e0056eb5ac..ae55007e4cfd 100644
--- a/sd/source/filter/eppt/pptx-epptooxml.cxx
+++ b/sd/source/filter/eppt/pptx-epptooxml.cxx
@@ -104,11 +104,13 @@ using namespace oox::drawingml;
 using namespace oox::core;
 
 #if OSL_DEBUG_LEVEL > 1
-void dump_pset(Reference< XPropertySet > const & rXPropSet);
+void dump_pset(Reference< XPropertySet > const& rXPropSet);
 #endif
 
-namespace oox {
-namespace core {
+namespace oox
+{
+namespace core
+{
 
 class PowerPointShapeExport : public ShapeExport
 {
@@ -116,23 +118,24 @@ class PowerPointShapeExport : public ShapeExport
     PageType            mePageType;
     bool                mbMaster;
 public:
-    PowerPointShapeExport( FSHelperPtr pFS, ShapeHashMap* pShapeMap, PowerPointExport* pFB );
-    void                SetMaster( bool bMaster );
-    void                SetPageType( PageType ePageType );
-    ShapeExport&        WriteNonVisualProperties( const Reference< XShape >& xShape ) override;
-    ShapeExport&        WriteTextShape( const Reference< XShape >& xShape ) override;
-    ShapeExport&        WriteUnknownShape( const Reference< XShape >& xShape ) override;
-    ShapeExport&        WritePlaceholderShape( const Reference< XShape >& xShape, PlaceholderType ePlaceholder );
-    ShapeExport&        WritePageShape( const Reference< XShape >& xShape, PageType ePageType, bool bPresObj );
+    PowerPointShapeExport(FSHelperPtr pFS, ShapeHashMap* pShapeMap, PowerPointExport* pFB);
+    void                SetMaster(bool bMaster);
+    void                SetPageType(PageType ePageType);
+    ShapeExport&        WriteNonVisualProperties(const Reference< XShape >& xShape) override;
+    ShapeExport&        WriteTextShape(const Reference< XShape >& xShape) override;
+    ShapeExport&        WriteUnknownShape(const Reference< XShape >& xShape) override;
+    ShapeExport&        WritePlaceholderShape(const Reference< XShape >& xShape, PlaceholderType ePlaceholder);
+    ShapeExport&        WritePageShape(const Reference< XShape >& xShape, PageType ePageType, bool bPresObj);
 
     // helper parts
-    bool WritePlaceholder( const Reference< XShape >& xShape, PlaceholderType ePlaceholder, bool bMaster );
+    bool WritePlaceholder(const Reference< XShape >& xShape, PlaceholderType ePlaceholder, bool bMaster);
 };
 
 }
 }
 
-enum PPTXLayout {
+enum PPTXLayout
+{
     LAYOUT_BLANK,
     LAYOUT_TITLE_SLIDE,
     LAYOUT_TITLE_CONTENT,
@@ -148,13 +151,15 @@ enum PPTXLayout {
     LAYOUT_SIZE
 };
 
-struct PPTXLayoutInfo {
+struct PPTXLayoutInfo
+{
     int nType;
     const char* sName;
     const char* sType;
 };
 
-static const PPTXLayoutInfo aLayoutInfo[LAYOUT_SIZE] = {
+static const PPTXLayoutInfo aLayoutInfo[LAYOUT_SIZE] =
+{
     { 20, "Blank Slide", "blank" },
     { 0, "Title Slide", "tx" },
     { 1, "Title, Content", "obj" },
@@ -169,127 +174,128 @@ static const PPTXLayoutInfo aLayoutInfo[LAYOUT_SIZE] = {
     { 34, "Title, 6 Content", "blank" }                           // not defined => blank
 };
 
-int PowerPointExport::GetPPTXLayoutId( int nOffset )
+int PowerPointExport::GetPPTXLayoutId(int nOffset)
 {
     int nId = LAYOUT_BLANK;
 
     SAL_INFO("sd.eppt", "GetPPTXLayoutId " << nOffset);
 
-    switch( nOffset ) {
-        case 0:
-            nId = LAYOUT_TITLE_SLIDE;
-            break;
-        case 1:
-            nId = LAYOUT_TITLE_CONTENT;
-            break;
-        case 3:
-            nId = LAYOUT_TITLE_2CONTENT;
-            break;
-        case 19:
-            nId = LAYOUT_TITLE;
-            break;
-        case 15:
-            nId = LAYOUT_TITLE_2CONTENT_CONTENT;
-            break;
-        case 12:
-            nId = LAYOUT_TITLE_CONTENT_2CONTENT;
-            break;
-        case 16:
-            nId = LAYOUT_TITLE_2CONTENT_OVER_CONTENT;
-            break;
-        case 14:
-            nId = LAYOUT_TITLE_CONTENT_OVER_CONTENT;
-            break;
-        case 18:
-            nId = LAYOUT_TITLE_4CONTENT;
-            break;
-        case 32:
-            nId = LAYOUT_CENTERED_TEXT;
-            break;
-        case 34:
-            nId = LAYOUT_TITLE_6CONTENT;
-            break;
-        case 20:
-        default:
-            nId = LAYOUT_BLANK;
-            break;
+    switch (nOffset)
+    {
+    case 0:
+        nId = LAYOUT_TITLE_SLIDE;
+        break;
+    case 1:
+        nId = LAYOUT_TITLE_CONTENT;
+        break;
+    case 3:
+        nId = LAYOUT_TITLE_2CONTENT;
+        break;
+    case 19:
+        nId = LAYOUT_TITLE;
+        break;
+    case 15:
+        nId = LAYOUT_TITLE_2CONTENT_CONTENT;
+        break;
+    case 12:
+        nId = LAYOUT_TITLE_CONTENT_2CONTENT;
+        break;
+    case 16:
+        nId = LAYOUT_TITLE_2CONTENT_OVER_CONTENT;
+        break;
+    case 14:
+        nId = LAYOUT_TITLE_CONTENT_OVER_CONTENT;
+        break;
+    case 18:
+        nId = LAYOUT_TITLE_4CONTENT;
+        break;
+    case 32:
+        nId = LAYOUT_CENTERED_TEXT;
+        break;
+    case 34:
+        nId = LAYOUT_TITLE_6CONTENT;
+        break;
+    case 20:
+    default:
+        nId = LAYOUT_BLANK;
+        break;
     }
 
     return nId;
 }
 
-PowerPointShapeExport::PowerPointShapeExport( FSHelperPtr pFS, ShapeHashMap* pShapeMap,
-                                              PowerPointExport* pFB )
-    : ShapeExport( XML_p, std::move(pFS), pShapeMap, pFB )
-    , mrExport( *pFB )
+PowerPointShapeExport::PowerPointShapeExport(FSHelperPtr pFS, ShapeHashMap* pShapeMap,
+        PowerPointExport* pFB)
+    : ShapeExport(XML_p, std::move(pFS), pShapeMap, pFB)
+    , mrExport(*pFB)
     , mePageType(UNDEFINED)
     , mbMaster(false)
 {
 }
 
-void PowerPointShapeExport::SetMaster( bool bMaster )
+void PowerPointShapeExport::SetMaster(bool bMaster)
 {
     mbMaster = bMaster;
 }
 
-void PowerPointShapeExport::SetPageType( PageType ePageType )
+void PowerPointShapeExport::SetPageType(PageType ePageType)
 {
     mePageType = ePageType;
 }
 
-ShapeExport& PowerPointShapeExport::WriteNonVisualProperties( const Reference< XShape >& )
+ShapeExport& PowerPointShapeExport::WriteNonVisualProperties(const Reference< XShape >&)
 {
-    GetFS()->singleElementNS( XML_p, XML_nvPr, FSEND );
+    GetFS()->singleElementNS(XML_p, XML_nvPr, FSEND);
 
     return *this;
 }
 
-ShapeExport& PowerPointShapeExport::WriteTextShape( const Reference< XShape >& xShape )
+ShapeExport& PowerPointShapeExport::WriteTextShape(const Reference< XShape >& xShape)
 {
     OUString sShapeType = xShape->getShapeType();
 
     SAL_INFO("sd.eppt", "shape(text) : " << USS(sShapeType));
 
-    if ( sShapeType == "com.sun.star.drawing.TextShape" || sShapeType == "com.sun.star.drawing.GraphicObjectShape" )
+    if (sShapeType == "com.sun.star.drawing.TextShape" || sShapeType == "com.sun.star.drawing.GraphicObjectShape")
     {
-    ShapeExport::WriteTextShape( xShape );
+        ShapeExport::WriteTextShape(xShape);
     }
-    else if ( sShapeType == "com.sun.star.presentation.DateTimeShape" )
+    else if (sShapeType == "com.sun.star.presentation.DateTimeShape")
     {
-        if( !WritePlaceholder( xShape, DateAndTime, mbMaster ) )
-            ShapeExport::WriteTextShape( xShape );
+        if (!WritePlaceholder(xShape, DateAndTime, mbMaster))
+            ShapeExport::WriteTextShape(xShape);
     }
-    else if ( sShapeType == "com.sun.star.presentation.FooterShape" )
+    else if (sShapeType == "com.sun.star.presentation.FooterShape")
     {
-        if( !WritePlaceholder( xShape, Footer, mbMaster ) )
-            ShapeExport::WriteTextShape( xShape );
+        if (!WritePlaceholder(xShape, Footer, mbMaster))
+            ShapeExport::WriteTextShape(xShape);
     }
-    else if ( sShapeType == "com.sun.star.presentation.HeaderShape" )
+    else if (sShapeType == "com.sun.star.presentation.HeaderShape")
     {
-        if( !WritePlaceholder( xShape, Header, mbMaster ) )
-            ShapeExport::WriteTextShape( xShape );
+        if (!WritePlaceholder(xShape, Header, mbMaster))
+            ShapeExport::WriteTextShape(xShape);
     }
-    else if ( sShapeType == "com.sun.star.presentation.NotesShape" )
+    else if (sShapeType == "com.sun.star.presentation.NotesShape")
     {
-        if( mePageType == NOTICE && mrExport.GetPresObj() )
-            WritePlaceholderShape( xShape, Notes );
+        if (mePageType == NOTICE && mrExport.GetPresObj())
+            WritePlaceholderShape(xShape, Notes);
         else
-            ShapeExport::WriteTextShape( xShape );
+            ShapeExport::WriteTextShape(xShape);
     }
-    else if ( sShapeType == "com.sun.star.presentation.OutlinerShape" )
+    else if (sShapeType == "com.sun.star.presentation.OutlinerShape")
     {
-        if( !WritePlaceholder( xShape, Outliner, mbMaster ) )
-            ShapeExport::WriteTextShape( xShape );
+        if (!WritePlaceholder(xShape, Outliner, mbMaster))
+            ShapeExport::WriteTextShape(xShape);
     }
-    else if ( sShapeType == "com.sun.star.presentation.SlideNumberShape" )
+    else if (sShapeType == "com.sun.star.presentation.SlideNumberShape")
     {
-        if( !WritePlaceholder( xShape, SlideNumber, mbMaster ) )
-            ShapeExport::WriteTextShape( xShape );
+        if (!WritePlaceholder(xShape, SlideNumber, mbMaster))
+            ShapeExport::WriteTextShape(xShape);
     }
-    else if ( sShapeType == "com.sun.star.presentation.TitleTextShape" )
+    else if (sShapeType == "com.sun.star.presentation.TitleTextShape")
     {
-        if( !WritePlaceholder( xShape, Title, mbMaster ) )
-            ShapeExport::WriteTextShape( xShape );
+        if (!WritePlaceholder(xShape, Title, mbMaster))
+            ShapeExport::WriteTextShape(xShape);
     }
     else
         SAL_WARN("sd.eppt", "PowerPointShapeExport::WriteTextShape: shape of type '" << sShapeType << "' is ignored");
@@ -297,33 +303,33 @@ ShapeExport& PowerPointShapeExport::WriteTextShape( const Reference< XShape >& x
     return *this;
 }
 
-ShapeExport& PowerPointShapeExport::WriteUnknownShape( const Reference< XShape >& xShape )
+ShapeExport& PowerPointShapeExport::WriteUnknownShape(const Reference< XShape >& xShape)
 {
     OUString sShapeType = xShape->getShapeType();
 
     SAL_INFO("sd.eppt", "shape(unknown): " << USS(sShapeType));
 
-    if ( sShapeType == "com.sun.star.drawing.GroupShape" )
+    if (sShapeType == "com.sun.star.drawing.GroupShape")
     {
-        Reference< XIndexAccess > rXIndexAccess( xShape, UNO_QUERY );
+        Reference< XIndexAccess > rXIndexAccess(xShape, UNO_QUERY);
 
-        mrExport.EnterGroup( rXIndexAccess );
+        mrExport.EnterGroup(rXIndexAccess);
         SAL_INFO("sd.eppt", "enter group");
     }
-    else if ( sShapeType == "com.sun.star.presentation.PageShape" )
+    else if (sShapeType == "com.sun.star.presentation.PageShape")
     {
-        WritePageShape( xShape, mePageType, mrExport.GetPresObj() );
+        WritePageShape(xShape, mePageType, mrExport.GetPresObj());
     }
-    else if ( sShapeType == "com.sun.star.presentation.SubtitleShape" )
+    else if (sShapeType == "com.sun.star.presentation.SubtitleShape")
     {
-        if( !WritePlaceholder( xShape, Subtitle, mbMaster ) )
-            ShapeExport::WriteTextShape( xShape );
+        if (!WritePlaceholder(xShape, Subtitle, mbMaster))
+            ShapeExport::WriteTextShape(xShape);
     }
 
     return *this;
 }
 
-PowerPointExport::PowerPointExport(const Reference< XComponentContext > & rContext, const uno::Sequence<uno::Any>& rArguments)
+PowerPointExport::PowerPointExport(const Reference< XComponentContext >& rContext, const uno::Sequence<uno::Any>& rArguments)
     : XmlFilterBase(rContext)
     , PPTWriterBase()
     , mnLayoutFileIdMax(1)
@@ -342,12 +348,12 @@ PowerPointExport::~PowerPointExport()
 
 void PowerPointExport::writeDocumentProperties()
 {
-    uno::Reference<document::XDocumentPropertiesSupplier> xDPS( mXModel, uno::UNO_QUERY );
+    uno::Reference<document::XDocumentPropertiesSupplier> xDPS(mXModel, uno::UNO_QUERY);
     uno::Reference<document::XDocumentProperties> xDocProps = xDPS->getDocumentProperties();
 
     if (xDocProps.is())
     {
-        exportDocumentProperties( xDocProps );
+        exportDocumentProperties(xDocProps);
     }
 }
 
@@ -359,14 +365,14 @@ bool PowerPointExport::importDocument() throw()
 bool PowerPointExport::exportDocument()
 {
     DrawingML::ResetCounters();
-    maShapeMap.clear ();
+    maShapeMap.clear();
 
-    mXModel.set( getModel(), UNO_QUERY );
+    mXModel.set(getModel(), UNO_QUERY);
 
     //write document properties
     writeDocumentProperties();
 
-    addRelation( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument", "ppt/presentation.xml" );
+    addRelation("http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument", "ppt/presentation.xml");
 
     // PPTM needs a different media type for the presentation.xml stream.
     OUString aMediaType("application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml");
@@ -375,37 +381,37 @@ bool PowerPointExport::exportDocument()
 
     mPresentationFS = openFragmentStreamWithSerializer("ppt/presentation.xml", aMediaType);
 
-    addRelation( mPresentationFS->getOutputStream(),
-                 "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
-                 "theme/theme1.xml" );
+    addRelation(mPresentationFS->getOutputStream(),
+                "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
+                "theme/theme1.xml");
 
-    mPresentationFS->startElementNS( XML_p, XML_presentation, PNMSS, FSEND );
+    mPresentationFS->startElementNS(XML_p, XML_presentation, PNMSS, FSEND);
 
-    mXStatusIndicator.set( getStatusIndicator(), UNO_QUERY );
+    mXStatusIndicator.set(getStatusIndicator(), UNO_QUERY);
 
     std::vector< PropertyValue > aProperties;
     PropertyValue aProperty;
     aProperty.Name = "BaseURI";
     aProperty.Value <<= getFileUrl();
-    aProperties.push_back( aProperty );
+    aProperties.push_back(aProperty);
 
     exportPPT(aProperties);
 
-    mPresentationFS->singleElementNS( XML_p, XML_sldSz,
-                                      XML_cx, IS( PPTtoEMU( maDestPageSize.Width ) ),
-                                      XML_cy, IS( PPTtoEMU( maDestPageSize.Height ) ),
-                                      FSEND );
+    mPresentationFS->singleElementNS(XML_p, XML_sldSz,
+                                     XML_cx, IS(PPTtoEMU(maDestPageSize.Width)),
+                                     XML_cy, IS(PPTtoEMU(maDestPageSize.Height)),
+                                     FSEND);
     // for some reason if added before slides list it will not load the slides (alas with error reports) in mso
-    mPresentationFS->singleElementNS( XML_p, XML_notesSz,
-                                      XML_cx, IS( PPTtoEMU( maNotesPageSize.Width ) ),
-                                      XML_cy, IS( PPTtoEMU( maNotesPageSize.Height ) ),
-                                      FSEND );
+    mPresentationFS->singleElementNS(XML_p, XML_notesSz,
+                                     XML_cx, IS(PPTtoEMU(maNotesPageSize.Width)),
+                                     XML_cy, IS(PPTtoEMU(maNotesPageSize.Height)),
+                                     FSEND);
 
     WriteAuthors();
 
     WriteVBA();
 
-    mPresentationFS->endElementNS( XML_p, XML_presentation );
+    mPresentationFS->endElementNS(XML_p, XML_presentation);
     mPresentationFS.reset();
     // Free all FSHelperPtr, to flush data before committing storage
     mpSlidesFSArray.clear();
@@ -420,29 +426,29 @@ bool PowerPointExport::exportDocument()
 
 ::oox::ole::VbaProject* PowerPointExport::implCreateVbaProject() const
 {
-    return new ::oox::ole::VbaProject( getComponentContext(), getModel(), "Impress" );
+    return new ::oox::ole::VbaProject(getComponentContext(), getModel(), "Impress");
 }
 
-void PowerPointExport::ImplWriteBackground( const FSHelperPtr& pFS, const Reference< XPropertySet >& rXPropSet )
+void PowerPointExport::ImplWriteBackground(const FSHelperPtr& pFS, const Reference< XPropertySet >& rXPropSet)
 {
-    FillStyle aFillStyle( FillStyle_NONE );
-    if ( ImplGetPropertyValue( rXPropSet, "FillStyle" ) )
+    FillStyle aFillStyle(FillStyle_NONE);
+    if (ImplGetPropertyValue(rXPropSet, "FillStyle"))
         mAny >>= aFillStyle;
 
-    if( aFillStyle == FillStyle_NONE ||
-        aFillStyle == FillStyle_GRADIENT ||
-        aFillStyle == FillStyle_HATCH )
+    if (aFillStyle == FillStyle_NONE ||
+            aFillStyle == FillStyle_GRADIENT ||
+            aFillStyle == FillStyle_HATCH)
         return;
 
-    pFS->startElementNS( XML_p, XML_bg, FSEND );
-    pFS->startElementNS( XML_p, XML_bgPr, FSEND );
+    pFS->startElementNS(XML_p, XML_bg, FSEND);
+    pFS->startElementNS(XML_p, XML_bgPr, FSEND);
 
-    PowerPointShapeExport aDML( pFS, &maShapeMap, this );
+    PowerPointShapeExport aDML(pFS, &maShapeMap, this);
     aDML.SetBackgroundDark(mbIsBackgroundDark);
-    aDML.WriteFill( rXPropSet );
+    aDML.WriteFill(rXPropSet);
 
-    pFS->endElementNS( XML_p, XML_bgPr );
-    pFS->endElementNS( XML_p, XML_bg );
+    pFS->endElementNS(XML_p, XML_bgPr);
+    pFS->endElementNS(XML_p, XML_bg);
 }
 
 #define MAIN_GROUP \
@@ -467,11 +473,11 @@ void PowerPointExport::ImplWriteBackground( const FSHelperPtr& pFS, const Refere
     if ( GETA(propName) ) \
         mAny >>= variable;
 
-const char* PowerPointExport::GetSideDirection( sal_uInt8 nDirection )
+const char* PowerPointExport::GetSideDirection(sal_uInt8 nDirection)
 {
     const char* pDirection = nullptr;
 
-    switch(nDirection)
+    switch (nDirection)
     {
     case 0:
         pDirection = "l";
@@ -490,11 +496,12 @@ const char* PowerPointExport::GetSideDirection( sal_uInt8 nDirection )
     return pDirection;
 }
 
-const char* PowerPointExport::GetCornerDirection( sal_uInt8 nDirection )
+const char* PowerPointExport::GetCornerDirection(sal_uInt8 nDirection)
 {
     const char* pDirection = nullptr;
 
-    switch( nDirection ) {
+    switch (nDirection)
+    {
     case 4:
         pDirection = "lu";
         break;
@@ -512,31 +519,31 @@ const char* PowerPointExport::GetCornerDirection( sal_uInt8 nDirection )
     return pDirection;
 }
 
-const char* PowerPointExport::Get8Direction( sal_uInt8 nDirection )
+const char* PowerPointExport::Get8Direction(sal_uInt8 nDirection)
 {
-    const char* pDirection = GetSideDirection( nDirection );
+    const char* pDirection = GetSideDirection(nDirection);
 
-    if( !pDirection )
-        pDirection = GetCornerDirection( nDirection );
+    if (!pDirection)
+        pDirection = GetCornerDirection(nDirection);
 
     return pDirection;
 }
 
-void PowerPointExport::WriteTransition( const FSHelperPtr& pFS )
+void PowerPointExport::WriteTransition(const FSHelperPtr& pFS)
 {
     FadeEffect eFadeEffect = FadeEffect_NONE;
-    GET( eFadeEffect, Effect );
+    GET(eFadeEffect, Effect);
 
     sal_Int16 nTransitionType = 0, nTransitionSubtype = 0;
     sal_Int8 nPPTTransitionType = 0;
     sal_uInt8 nDirection = 0;
 
-    if( GETA( TransitionType ) && ( mAny >>= nTransitionType ) &&
-            GETA( TransitionSubtype ) && ( mAny >>= nTransitionSubtype ) )
-        nPPTTransitionType = GetTransition( nTransitionType, nTransitionSubtype, eFadeEffect, nDirection );
+    if (GETA(TransitionType) && (mAny >>= nTransitionType) &&
+            GETA(TransitionSubtype) && (mAny >>= nTransitionSubtype))
+        nPPTTransitionType = GetTransition(nTransitionType, nTransitionSubtype, eFadeEffect, nDirection);
 
-    if( !nPPTTransitionType && eFadeEffect != FadeEffect_NONE )
-        nPPTTransitionType = GetTransition( eFadeEffect, nDirection );
+    if (!nPPTTransitionType && eFadeEffect != FadeEffect_NONE)
+        nPPTTransitionType = GetTransition(eFadeEffect, nDirection);
 
     bool bOOXmlSpecificTransition = false;
 
@@ -559,72 +566,72 @@ void PowerPointExport::WriteTransition( const FSHelperPtr& pFS )
 
     if (!nPPTTransitionType)
     {
-        switch(nTransitionType)
+        switch (nTransitionType)
+        {
+        case animations::TransitionType::BARWIPE:
         {
-            case animations::TransitionType::BARWIPE:
+            if (nTransitionSubtype == animations::TransitionSubType::FADEOVERCOLOR)
             {
-                if (nTransitionSubtype == animations::TransitionSubType::FADEOVERCOLOR)
-                {
-                    nTransition = XML_cut;
-                    pThruBlk = "true";
-                    bOOXmlSpecificTransition = true;
-                }
-                break;
+                nTransition = XML_cut;
+                pThruBlk = "true";
+                bOOXmlSpecificTransition = true;
             }
-            case animations::TransitionType::MISCSHAPEWIPE:
+            break;
+        }
+        case animations::TransitionType::MISCSHAPEWIPE:
+        {
+            switch (nTransitionSubtype)
             {
-                switch(nTransitionSubtype)
-                {
-                    case animations::TransitionSubType::TOPTOBOTTOM: // Turn around
-                        nTransition = XML_fade;
-                        nTransition14 = XML_flip;
-                        pDirection14 = "l";
-                        bOOXmlSpecificTransition = true;
-                        break;
-                    case animations::TransitionSubType::BOTTOMRIGHT: // Rochade
-                        nTransition = XML_fade;
-                        nTransition14 = XML_switch;
-                        pDirection14 = "r";
-                        bOOXmlSpecificTransition = true;
-                        break;
-                    case animations::TransitionSubType::VERTICAL: // Vortex
-                        nTransition = XML_fade;
-                        nTransition14 = XML_vortex;
-                        bOOXmlSpecificTransition = true;
-                        break;
-                    case animations::TransitionSubType::HORIZONTAL: // Ripple
-                        nTransition = XML_fade;
-                        nTransition14 = XML_ripple;
-                        bOOXmlSpecificTransition = true;
-                        break;
-                    case animations::TransitionSubType::LEFTTORIGHT: // Fall
-                        nTransition = XML_fade;
-                        pPresetTransition = "fallOver";
-                        bOOXmlSpecificTransition = true;
-                        break;
-                    case animations::TransitionSubType::CORNERSIN: // Inside turning cube
-                        pInverted = "true";
-                        SAL_FALLTHROUGH;
-                    case animations::TransitionSubType::CORNERSOUT: // Outside turning cube
-                        nTransition = XML_fade;
-                        nTransition14 = XML_prism;
-                        bOOXmlSpecificTransition = true;
-                        break;
-                    case animations::TransitionSubType::DIAMOND: // Glitter
-                        nTransition = XML_fade;
-                        nTransition14 = XML_glitter;
-                        pDirection14 = "l";
-                        pPattern = "hexagon";
-                        bOOXmlSpecificTransition = true;
-                        break;
-                    case animations::TransitionSubType::HEART: // Honeycomb
-                        nTransition = XML_fade;
-                        nTransition14 = XML_honeycomb;
-                        bOOXmlSpecificTransition = true;
-                        break;
-                }
+            case animations::TransitionSubType::TOPTOBOTTOM: // Turn around
+                nTransition = XML_fade;
+                nTransition14 = XML_flip;
+                pDirection14 = "l";
+                bOOXmlSpecificTransition = true;
+                break;
+            case animations::TransitionSubType::BOTTOMRIGHT: // Rochade
+                nTransition = XML_fade;
+                nTransition14 = XML_switch;
+                pDirection14 = "r";
+                bOOXmlSpecificTransition = true;
+                break;
+            case animations::TransitionSubType::VERTICAL: // Vortex
+                nTransition = XML_fade;
+                nTransition14 = XML_vortex;
+                bOOXmlSpecificTransition = true;
+                break;
+            case animations::TransitionSubType::HORIZONTAL: // Ripple
+                nTransition = XML_fade;
+                nTransition14 = XML_ripple;
+                bOOXmlSpecificTransition = true;
+                break;
+            case animations::TransitionSubType::LEFTTORIGHT: // Fall
+                nTransition = XML_fade;
+                pPresetTransition = "fallOver";
+                bOOXmlSpecificTransition = true;
+                break;
+            case animations::TransitionSubType::CORNERSIN: // Inside turning cube
+                pInverted = "true";
+                SAL_FALLTHROUGH;
+            case animations::TransitionSubType::CORNERSOUT: // Outside turning cube
+                nTransition = XML_fade;
+                nTransition14 = XML_prism;
+                bOOXmlSpecificTransition = true;
+                break;
+            case animations::TransitionSubType::DIAMOND: // Glitter
+                nTransition = XML_fade;
+                nTransition14 = XML_glitter;
+                pDirection14 = "l";
+                pPattern = "hexagon";
+                bOOXmlSpecificTransition = true;
+                break;
+            case animations::TransitionSubType::HEART: // Honeycomb
+                nTransition = XML_fade;
+                nTransition14 = XML_honeycomb;
+                bOOXmlSpecificTransition = true;
                 break;
             }
+            break;
+        }
         }
     }
 
@@ -637,10 +644,12 @@ void PowerPointExport::WriteTransition( const FSHelperPtr& pFS )
     sal_Int32 advanceTiming = -1;
     sal_Int32 changeType = 0;
 
-    if( GETA( Speed ) ) {
+    if (GETA(Speed))
+    {
         mAny >>= animationSpeed;
 
-        switch( animationSpeed ) {
+        switch (animationSpeed)
+        {
         default:
         case AnimationSpeed_MEDIUM:
             speed = "med";
@@ -653,11 +662,11 @@ void PowerPointExport::WriteTransition( const FSHelperPtr& pFS )
         }
     }
 
-    if( GETA( Change ) )
+    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
-    if( changeType == 1 && GETA( Duration ) )
+    if (changeType == 1 && GETA(Duration))
         mAny >>= advanceTiming;
 
     if (nTransition14 || pPresetTransition)
@@ -670,8 +679,8 @@ void PowerPointExport::WriteTransition( const FSHelperPtr& pFS )
 
         pFS->startElementNS(XML_p, XML_transition,
                             XML_spd, speed,
-                            XML_advTm, advanceTiming != -1 ? I32S( advanceTiming*1000 ) : nullptr,
-                            FSEND );
+                            XML_advTm, advanceTiming != -1 ? I32S(advanceTiming*1000) : nullptr,
+                            FSEND);
 
         if (nTransition14)
         {
@@ -679,113 +688,114 @@ void PowerPointExport::WriteTransition( const FSHelperPtr& pFS )
                                  XML_isInverted, pInverted,
                                  XML_dir, pDirection14,
                                  XML_pattern, pPattern,
-                                 FSEND );
+                                 FSEND);
         }
         else if (pPresetTransition)
         {
             pFS->singleElementNS(XML_p15, XML_prstTrans,
                                  XML_prst, pPresetTransition,
-                                 FSEND );
+                                 FSEND);
         }
 
         pFS->endElement(FSNS(XML_p, XML_transition));
 
         pFS->endElement(FSNS(XML_mc, XML_Choice));
-        pFS->startElement(FSNS(XML_mc, XML_Fallback), FSEND );
+        pFS->startElement(FSNS(XML_mc, XML_Fallback), FSEND);
     }
 
     pFS->startElementNS(XML_p, XML_transition,
                         XML_spd, speed,
-                        XML_advTm, advanceTiming != -1 ? I32S( advanceTiming*1000 ) : nullptr,
-                        FSEND );
+                        XML_advTm, advanceTiming != -1 ? I32S(advanceTiming*1000) : nullptr,
+                        FSEND);
 
     if (!bOOXmlSpecificTransition)
     {
-        switch(nPPTTransitionType)
+        switch (nPPTTransitionType)
         {
-            case PPT_TRANSITION_TYPE_BLINDS:
+        case PPT_TRANSITION_TYPE_BLINDS:
             nTransition = XML_blinds;
             pDirection = (nDirection == 0) ? "vert" : "horz";
             break;
-            case PPT_TRANSITION_TYPE_CHECKER:
+        case PPT_TRANSITION_TYPE_CHECKER:
             nTransition = XML_checker;
-            pDirection = ( nDirection == 1) ? "vert" : "horz";
+            pDirection = (nDirection == 1) ? "vert" : "horz";
             break;
-            case PPT_TRANSITION_TYPE_CIRCLE:
+        case PPT_TRANSITION_TYPE_CIRCLE:
             nTransition = XML_circle;
             break;
-            case PPT_TRANSITION_TYPE_COMB:
+        case PPT_TRANSITION_TYPE_COMB:
             nTransition = XML_comb;
             pDirection = (nDirection == 1) ? "vert" : "horz";
             break;
-            case PPT_TRANSITION_TYPE_COVER:
+        case PPT_TRANSITION_TYPE_COVER:
             nTransition = XML_cover;
-            pDirection = Get8Direction( nDirection );
+            pDirection = Get8Direction(nDirection);
             break;
-            case PPT_TRANSITION_TYPE_DIAMOND:
+        case PPT_TRANSITION_TYPE_DIAMOND:
             nTransition = XML_diamond;
             break;
-            case PPT_TRANSITION_TYPE_DISSOLVE:
+        case PPT_TRANSITION_TYPE_DISSOLVE:
             nTransition = XML_dissolve;
             break;
-            case PPT_TRANSITION_TYPE_FADE:
+        case PPT_TRANSITION_TYPE_FADE:
             nTransition = XML_fade;
             pThruBlk = "true";
             break;
-            case PPT_TRANSITION_TYPE_SMOOTHFADE:
+        case PPT_TRANSITION_TYPE_SMOOTHFADE:
             nTransition = XML_fade;
             break;
-            case PPT_TRANSITION_TYPE_NEWSFLASH:
+        case PPT_TRANSITION_TYPE_NEWSFLASH:
             nTransition = XML_newsflash;
             break;
-            case PPT_TRANSITION_TYPE_PLUS:
+        case PPT_TRANSITION_TYPE_PLUS:
             nTransition = XML_plus;
             break;
-            case PPT_TRANSITION_TYPE_PULL:
+        case PPT_TRANSITION_TYPE_PULL:
             nTransition = XML_pull;
             pDirection = Get8Direction(nDirection);
             break;
-            case PPT_TRANSITION_TYPE_PUSH:
+        case PPT_TRANSITION_TYPE_PUSH:
             nTransition = XML_push;
             pDirection = GetSideDirection(nDirection);
             break;
-            case PPT_TRANSITION_TYPE_RANDOM:
+        case PPT_TRANSITION_TYPE_RANDOM:
             nTransition = XML_random;
             break;
-            case PPT_TRANSITION_TYPE_RANDOM_BARS:
+        case PPT_TRANSITION_TYPE_RANDOM_BARS:
             nTransition = XML_randomBar;
             pDirection = (nDirection == 1) ? "vert" : "horz";
             break;
-            case PPT_TRANSITION_TYPE_SPLIT:
+        case PPT_TRANSITION_TYPE_SPLIT:
             nTransition = XML_split;
             pDirection = (nDirection & 1) ? "in" : "out";
             pOrientation = (nDirection < 2) ? "horz" : "vert";
             break;
-            case PPT_TRANSITION_TYPE_STRIPS:
+        case PPT_TRANSITION_TYPE_STRIPS:
             nTransition = XML_strips;
-            pDirection = GetCornerDirection( nDirection );
+            pDirection = GetCornerDirection(nDirection);
             break;
-            case PPT_TRANSITION_TYPE_WEDGE:
+        case PPT_TRANSITION_TYPE_WEDGE:
             nTransition = XML_wedge;
             break;
-            case PPT_TRANSITION_TYPE_WHEEL:
+        case PPT_TRANSITION_TYPE_WHEEL:
             nTransition = XML_wheel;
-            if( nDirection != 4 && nDirection <= 9 ) {
+            if (nDirection != 4 && nDirection <= 9)
+            {
                 pSpokesTmp[0] = '0' + nDirection;
                 pSpokes = pSpokesTmp;
             }
             break;
-            case PPT_TRANSITION_TYPE_WIPE:
+        case PPT_TRANSITION_TYPE_WIPE:
             nTransition = XML_wipe;
-            pDirection = GetSideDirection( nDirection );
+            pDirection = GetSideDirection(nDirection);
             break;
-            case PPT_TRANSITION_TYPE_ZOOM:
+        case PPT_TRANSITION_TYPE_ZOOM:
             nTransition = XML_zoom;
             pDirection = (nDirection == 1) ? "in" : "out";
             break;
-            // coverity[dead_error_line] - following conditions exist to avoid compiler warning
-            case PPT_TRANSITION_TYPE_NONE:
-            default:
+        // coverity[dead_error_line] - following conditions exist to avoid compiler warning
+        case PPT_TRANSITION_TYPE_NONE:
+        default:
             nTransition = 0;
             break;
         }
@@ -793,12 +803,12 @@ void PowerPointExport::WriteTransition( const FSHelperPtr& pFS )
 
     if (nTransition)
     {
-        pFS->singleElementNS( XML_p, nTransition,
-                  XML_dir, pDirection,
-                  XML_orient, pOrientation,
-                  XML_spokes, pSpokes,
-                  XML_thruBlk, pThruBlk,
-                  FSEND );
+        pFS->singleElementNS(XML_p, nTransition,
+                             XML_dir, pDirection,
+                             XML_orient, pOrientation,
+                             XML_spokes, pSpokes,
+                             XML_thruBlk, pThruBlk,
+                             FSEND);
     }
 
     pFS->endElementNS(XML_p, XML_transition);
@@ -810,26 +820,27 @@ void PowerPointExport::WriteTransition( const FSHelperPtr& pFS )
     }
 }
 
-void PowerPointExport::WriteAnimationProperty( const FSHelperPtr& pFS, const Any& rAny )
+void PowerPointExport::WriteAnimationProperty(const FSHelperPtr& pFS, const Any& rAny)
 {
-    if( !rAny.hasValue() )
+    if (!rAny.hasValue())
         return;
 
-    switch( rAny.getValueType().getTypeClass() ) {
+    switch (rAny.getValueType().getTypeClass())
+    {
     case TypeClass_STRING:
-        pFS->singleElementNS( XML_p, XML_strVal,
-                  XML_val, USS( *o3tl::doAccess<OUString>(rAny) ),
-                  FSEND );
+        pFS->singleElementNS(XML_p, XML_strVal,
+                             XML_val, USS(*o3tl::doAccess<OUString>(rAny)),
+                             FSEND);
         break;
     default:
         break;
     }
 }
 
-void PowerPointExport::WriteAnimateValues( const FSHelperPtr& pFS, const Reference< XAnimate >& rXAnimate )
+void PowerPointExport::WriteAnimateValues(const FSHelperPtr& pFS, const Reference< XAnimate >& rXAnimate)
 {
     const Sequence< double > aKeyTimes = rXAnimate->getKeyTimes();
-    if( aKeyTimes.getLength() <= 0 )
+    if (aKeyTimes.getLength() <= 0)
         return;
     const Sequence< Any > aValues = rXAnimate->getValues();
     const OUString& sFormula = rXAnimate->getFormula();
@@ -837,197 +848,215 @@ void PowerPointExport::WriteAnimateValues( const FSHelperPtr& pFS, const Referen
 
     SAL_INFO("sd.eppt", "animate values, formula: " << USS(sFormula));
 
-    pFS->startElementNS( XML_p, XML_tavLst, FSEND );
-
-    for( int i = 0; i < aKeyTimes.getLength(); i++ ) {
-    SAL_INFO("sd.eppt", "animate value " << i << ": " << aKeyTimes[i]);
-    if( aValues[ i ].hasValue() ) {
-        pFS->startElementNS( XML_p, XML_tav,
-                 XML_fmla, sFormula.isEmpty() ? nullptr : USS( sFormula ),
-                 XML_tm, I32S( ( sal_Int32 )( aKeyTimes[ i ]*100000.0 ) ),
-                 FSEND );
-        pFS->startElementNS( XML_p, XML_val, FSEND );
-        ValuePair aPair;
-        if( aValues[ i ] >>= aPair ) {
-            WriteAnimationProperty( pFS, AnimationExporter::convertAnimateValue( aPair.First, rAttributeName ) );
-            WriteAnimationProperty( pFS, AnimationExporter::convertAnimateValue( aPair.Second, rAttributeName ) );
-        } else
-            WriteAnimationProperty( pFS, AnimationExporter::convertAnimateValue( aValues[ i ], rAttributeName ) );
-
-        pFS->endElementNS( XML_p, XML_val );
-        pFS->endElementNS( XML_p, XML_tav );
-    }
+    pFS->startElementNS(XML_p, XML_tavLst, FSEND);
+
+    for (int i = 0; i < aKeyTimes.getLength(); i++)
+    {
+        SAL_INFO("sd.eppt", "animate value " << i << ": " << aKeyTimes[i]);
+        if (aValues[ i ].hasValue())
+        {
+            pFS->startElementNS(XML_p, XML_tav,
+                                XML_fmla, sFormula.isEmpty() ? nullptr : USS(sFormula),
+                                XML_tm, I32S((sal_Int32)(aKeyTimes[ i ]*100000.0)),
+                                FSEND);
+            pFS->startElementNS(XML_p, XML_val, FSEND);
+            ValuePair aPair;
+            if (aValues[ i ] >>= aPair)
+            {
+                WriteAnimationProperty(pFS, AnimationExporter::convertAnimateValue(aPair.First, rAttributeName));
+                WriteAnimationProperty(pFS, AnimationExporter::convertAnimateValue(aPair.Second, rAttributeName));
+            }
+            else
+                WriteAnimationProperty(pFS, AnimationExporter::convertAnimateValue(aValues[ i ], rAttributeName));
+
+            pFS->endElementNS(XML_p, XML_val);
+            pFS->endElementNS(XML_p, XML_tav);
+        }
     }
 
-    pFS->endElementNS( XML_p, XML_tavLst );
+    pFS->endElementNS(XML_p, XML_tavLst);
 }
 
-void PowerPointExport::WriteAnimateTo( const FSHelperPtr& pFS, const Any& rValue, const OUString& rAttributeName )
+void PowerPointExport::WriteAnimateTo(const FSHelperPtr& pFS, const Any& rValue, const OUString& rAttributeName)
 {
-    if( !rValue.hasValue() )
+    if (!rValue.hasValue())
         return;
 
     SAL_INFO("sd.eppt", "to attribute name: " << USS(rAttributeName));
 
-    pFS->startElementNS( XML_p, XML_to, FSEND );
+    pFS->startElementNS(XML_p, XML_to, FSEND);
 
     WriteAnimationProperty(pFS, AnimationExporter::convertAnimateValue(rValue, rAttributeName));
 
-    pFS->endElementNS( XML_p, XML_to );
+    pFS->endElementNS(XML_p, XML_to);
 }
 
-void PowerPointExport::WriteAnimationAttributeName( const FSHelperPtr& pFS, const OUString& rAttributeName )
+void PowerPointExport::WriteAnimationAttributeName(const FSHelperPtr& pFS, const OUString& rAttributeName)
 {
-    if( rAttributeName.isEmpty() )
+    if (rAttributeName.isEmpty())
         return;
 
-    pFS->startElementNS( XML_p, XML_attrNameLst, FSEND );
+    pFS->startElementNS(XML_p, XML_attrNameLst, FSEND);
 
     SAL_INFO("sd.eppt", "write attribute name: " << USS(rAttributeName));
 
     const char* sAttributeName = nullptr;
-    if ( rAttributeName == "Visibility" ) {
+    if (rAttributeName == "Visibility")
+    {
         sAttributeName = "style.visibility";
-    } else if ( rAttributeName == "X" ) {
+    }
+    else if (rAttributeName == "X")
+    {
         sAttributeName = "ppt_x";
-    } else if ( rAttributeName == "Y" ) {
+    }
+    else if (rAttributeName == "Y")
+    {
         sAttributeName = "ppt_y";
     }
 
-    pFS->startElementNS( XML_p, XML_attrName, FSEND );
-    pFS->writeEscaped( sAttributeName );
-    pFS->endElementNS( XML_p, XML_attrName );
+    pFS->startElementNS(XML_p, XML_attrName, FSEND);
+    pFS->writeEscaped(sAttributeName);
+    pFS->endElementNS(XML_p, XML_attrName);
 
-    pFS->endElementNS( XML_p, XML_attrNameLst );
+    pFS->endElementNS(XML_p, XML_attrNameLst);
 }
 
-void PowerPointExport::WriteAnimationTarget( const FSHelperPtr& pFS, const Any& rTarget )
+void PowerPointExport::WriteAnimationTarget(const FSHelperPtr& pFS, const Any& rTarget)
 {
     sal_Int32 nBegin = -1, nEnd = -1;
     bool bParagraphTarget;
-    Reference< XShape > rXShape = AnimationExporter::getTargetElementShape( rTarget, nBegin, nEnd, bParagraphTarget );
-
-    if( rXShape.is() ) {
-    pFS->startElementNS( XML_p, XML_tgtEl, FSEND );
-    pFS->startElementNS( XML_p, XML_spTgt,
-                 XML_spid, I32S( ShapeExport::GetShapeID( rXShape, &maShapeMap ) ),
-                 FSEND );
-    if( bParagraphTarget ) {
-        pFS->startElementNS( XML_p, XML_txEl, FSEND );
-        pFS->singleElementNS( XML_p, XML_pRg,
-                  XML_st, I32S( nBegin ),
-                  XML_end, I32S( nEnd ),
-                  FSEND );
-        pFS->endElementNS( XML_p, XML_txEl );
-    }
-    pFS->endElementNS( XML_p, XML_spTgt );
-    pFS->endElementNS( XML_p, XML_tgtEl );
+    Reference< XShape > rXShape = AnimationExporter::getTargetElementShape(rTarget, nBegin, nEnd, bParagraphTarget);
+
+    if (rXShape.is())
+    {
+        pFS->startElementNS(XML_p, XML_tgtEl, FSEND);
+        pFS->startElementNS(XML_p, XML_spTgt,
+                            XML_spid, I32S(ShapeExport::GetShapeID(rXShape, &maShapeMap)),
+                            FSEND);
+        if (bParagraphTarget)
+        {
+            pFS->startElementNS(XML_p, XML_txEl, FSEND);
+            pFS->singleElementNS(XML_p, XML_pRg,
+                                 XML_st, I32S(nBegin),
+                                 XML_end, I32S(nEnd),
+                                 FSEND);
+            pFS->endElementNS(XML_p, XML_txEl);
+        }
+        pFS->endElementNS(XML_p, XML_spTgt);
+        pFS->endElementNS(XML_p, XML_tgtEl);
     }
 }
 
-void PowerPointExport::WriteAnimationNodeAnimate( const FSHelperPtr& pFS, const Reference< XAnimationNode >& rXNode, sal_Int32 nXmlNodeType, bool bMainSeqChild )
+void PowerPointExport::WriteAnimationNodeAnimate(const FSHelperPtr& pFS, const Reference< XAnimationNode >& rXNode, sal_Int32 nXmlNodeType, bool bMainSeqChild)
 {
-    Reference< XAnimate > rXAnimate( rXNode, UNO_QUERY );
-    if( !rXAnimate.is() )
+    Reference< XAnimate > rXAnimate(rXNode, UNO_QUERY);
+    if (!rXAnimate.is())
         return;
 
     const char* pCalcMode = nullptr;
     const char* pValueType = nullptr;
-    bool bSimple = ( nXmlNodeType != XML_anim );
+    bool bSimple = (nXmlNodeType != XML_anim);
 
-    if( !bSimple ) {
-    switch( rXAnimate->getCalcMode() ) {
+    if (!bSimple)
+    {
+        switch (rXAnimate->getCalcMode())
+        {
         case AnimationCalcMode::DISCRETE:
-        pCalcMode = "discrete";
-        break;
+            pCalcMode = "discrete";
+            break;
         case AnimationCalcMode::LINEAR:
-        pCalcMode = "lin";
-        break;
-    }
+            pCalcMode = "lin";
+            break;
+        }
 
-    switch( AnimationExporter::GetValueTypeForAttributeName( rXAnimate->getAttributeName() ) ) {
+        switch (AnimationExporter::GetValueTypeForAttributeName(rXAnimate->getAttributeName()))
+        {
         case AnimationValueType::STRING:
-        pValueType = "str";
-        break;
+            pValueType = "str";
+            break;
         case AnimationValueType::NUMBER:
-        pValueType = "num";
-        break;
+            pValueType = "num";
+            break;
         case AnimationValueType::COLOR:
-        pValueType = "clr";
-        break;
-    }
+            pValueType = "clr";
+            break;
+        }
     }
 
-    pFS->startElementNS( XML_p, nXmlNodeType,
-             XML_calcmode, pCalcMode,
-             XML_valueType, pValueType,
-             FSEND );
-    WriteAnimationNodeAnimateInside( pFS, rXNode, bMainSeqChild, bSimple );
-    pFS->endElementNS( XML_p, nXmlNodeType );
+    pFS->startElementNS(XML_p, nXmlNodeType,
+                        XML_calcmode, pCalcMode,
+                        XML_valueType, pValueType,
+                        FSEND);
+    WriteAnimationNodeAnimateInside(pFS, rXNode, bMainSeqChild, bSimple);
+    pFS->endElementNS(XML_p, nXmlNodeType);
 }
 
-void PowerPointExport::WriteAnimationNodeAnimateInside( const FSHelperPtr& pFS, const Reference< XAnimationNode >& rXNode, bool bMainSeqChild, bool bSimple )
+void PowerPointExport::WriteAnimationNodeAnimateInside(const FSHelperPtr& pFS, const Reference< XAnimationNode >& rXNode, bool bMainSeqChild, bool bSimple)
 {
-    Reference< XAnimate > rXAnimate( rXNode, UNO_QUERY );
-    if( !rXAnimate.is() )
+    Reference< XAnimate > rXAnimate(rXNode, UNO_QUERY);
+    if (!rXAnimate.is())
         return;
 
     const char* pAdditive = nullptr;
 
-    if( !bSimple ) {
-    switch( rXAnimate->getAdditive() ) {
+    if (!bSimple)
+    {
+        switch (rXAnimate->getAdditive())
+        {
         case AnimationAdditiveMode::BASE:
-        pAdditive = "base";
-        break;
+            pAdditive = "base";
+            break;
         case AnimationAdditiveMode::SUM:
-        pAdditive = "sum";
-        break;
+            pAdditive = "sum";
+            break;
         case AnimationAdditiveMode::REPLACE:
-        pAdditive = "repl";
-        break;
+            pAdditive = "repl";
+            break;
         case AnimationAdditiveMode::MULTIPLY:
-        pAdditive = "mult";
-        break;
+            pAdditive = "mult";
+            break;
         case AnimationAdditiveMode::NONE:
-        pAdditive = "none";
-        break;
-    }
+            pAdditive = "none";
+            break;
+        }
     }
 
-    pFS->startElementNS( XML_p, XML_cBhvr,
-             XML_additive, pAdditive,
-             FSEND );
-    WriteAnimationNodeCommonPropsStart( pFS, rXNode, true, bMainSeqChild );
-    WriteAnimationTarget( pFS, rXAnimate->getTarget() );
-    WriteAnimationAttributeName( pFS, rXAnimate->getAttributeName() );
-    pFS->endElementNS( XML_p, XML_cBhvr );
-    WriteAnimateValues( pFS, rXAnimate );
-    WriteAnimateTo( pFS, rXAnimate->getTo(), rXAnimate->getAttributeName() );
+    pFS->startElementNS(XML_p, XML_cBhvr,
+                        XML_additive, pAdditive,
+                        FSEND);
+    WriteAnimationNodeCommonPropsStart(pFS, rXNode, true, bMainSeqChild);
+    WriteAnimationTarget(pFS, rXAnimate->getTarget());
+    WriteAnimationAttributeName(pFS, rXAnimate->getAttributeName());
+    pFS->endElementNS(XML_p, XML_cBhvr);
+    WriteAnimateValues(pFS, rXAnimate);
+    WriteAnimateTo(pFS, rXAnimate->getTo(), rXAnimate->getAttributeName());
 }
 
-void PowerPointExport::WriteAnimationCondition( const FSHelperPtr& pFS, const char* pDelay, const char* pEvent, double fDelay, bool bHasFDelay )
+void PowerPointExport::WriteAnimationCondition(const FSHelperPtr& pFS, const char* pDelay, const char* pEvent, double fDelay, bool bHasFDelay)
 {
-    if( bHasFDelay || pDelay || pEvent ) {
-    if( !pEvent )
-        pFS->singleElementNS( XML_p, XML_cond,
-                  XML_delay, bHasFDelay ? I64S( (sal_uInt32) (fDelay*1000.0) ) : pDelay,
-                  FSEND );
-    else {
-        pFS->startElementNS( XML_p, XML_cond,
-                 XML_delay, bHasFDelay ? I64S( (sal_uInt32) (fDelay*1000.0) ) : pDelay,
-                 XML_evt, pEvent,
-                 FSEND );
-
-        pFS->startElementNS( XML_p, XML_tgtEl, FSEND );
-        pFS->singleElementNS( XML_p, XML_sldTgt, FSEND );
-        pFS->endElementNS( XML_p, XML_tgtEl );
-
-        pFS->endElementNS( XML_p, XML_cond );
-    }
+    if (bHasFDelay || pDelay || pEvent)
+    {
+        if (!pEvent)
+            pFS->singleElementNS(XML_p, XML_cond,
+                                 XML_delay, bHasFDelay ? I64S((sal_uInt32)(fDelay*1000.0)) : pDelay,
+                                 FSEND);
+        else
+        {
+            pFS->startElementNS(XML_p, XML_cond,
+                                XML_delay, bHasFDelay ? I64S((sal_uInt32)(fDelay*1000.0)) : pDelay,
+                                XML_evt, pEvent,
+                                FSEND);
+
+            pFS->startElementNS(XML_p, XML_tgtEl, FSEND);
+            pFS->singleElementNS(XML_p, XML_sldTgt, FSEND);
+            pFS->endElementNS(XML_p, XML_tgtEl);
+
+            pFS->endElementNS(XML_p, XML_cond);
+        }
     }
 }
 
-void PowerPointExport::WriteAnimationCondition( const FSHelperPtr& pFS, Any const & rAny, bool bWriteEvent, bool bMainSeqChild )
+void PowerPointExport::WriteAnimationCondition(const FSHelperPtr& pFS, Any const& rAny, bool bWriteEvent, bool bMainSeqChild)
 {
     bool bHasFDelay = false;
     double fDelay = 0;
@@ -1036,74 +1065,79 @@ void PowerPointExport::WriteAnimationCondition( const FSHelperPtr& pFS, Any cons
     const char* pDelay = nullptr;
     const char* pEvent = nullptr;
 
-    if( rAny >>= fDelay )
+    if (rAny >>= fDelay)
         bHasFDelay = true;
-    else if( rAny >>= eTiming )
+    else if (rAny >>= eTiming)
     {
-        if( eTiming == Timing_INDEFINITE )
+        if (eTiming == Timing_INDEFINITE)
             pDelay = "indefinite";
     }
-    else if( rAny >>= aEvent )
+    else if (rAny >>= aEvent)
     {
-    // TODO
-
-    SAL_INFO("sd.eppt", "animation condition event: TODO");
-    SAL_INFO("sd.eppt", "event offset has value: " << aEvent.Offset.hasValue() << " trigger: " <<  aEvent.Trigger
-             << " source has value: " <<  aEvent.Source.hasValue());
-    if( !bWriteEvent && aEvent.Trigger == EventTrigger::ON_NEXT && bMainSeqChild )
-        pDelay = "indefinite";
-    else if( bWriteEvent ) {
-        switch( aEvent.Trigger ) {
-        case EventTrigger::ON_NEXT:
-            pEvent = "onNext";
-            break;
-        case EventTrigger::ON_PREV:
-            pEvent = "onPrev";
-            break;
-        case EventTrigger::BEGIN_EVENT:
-            pEvent = "begin";
-            break;
-        case EventTrigger::END_EVENT:
-            pEvent = "end";
-            break;
-        case EventTrigger::ON_BEGIN:
-            pEvent = "onBegin";
-            break;
-        case EventTrigger::ON_END:
-            pEvent = "onEnd";
-            break;
-        case EventTrigger::ON_CLICK:
-            pEvent = "onClick";
-            break;
-        case EventTrigger::ON_DBL_CLICK:
-            pEvent = "onDblClick";
-            break;
-        case EventTrigger::ON_STOP_AUDIO:
-            pEvent = "onStopAudio";
-            break;
-        case EventTrigger::ON_MOUSE_ENTER:
-            pEvent = "onMouseOver";   // not exact?
-            break;
-        case EventTrigger::ON_MOUSE_LEAVE:
-            pEvent = "onMouseOut";
-            break;
-        }
-    }
+        // TODO
 
-    if( aEvent.Offset >>= fDelay ) {
-        bHasFDelay = true;
-        SAL_INFO("sd.eppt", "event offset: " << fDelay);
-    } else if( aEvent.Offset >>= eTiming ) {
-        if( eTiming == Timing_INDEFINITE )
+        SAL_INFO("sd.eppt", "animation condition event: TODO");
+        SAL_INFO("sd.eppt", "event offset has value: " << aEvent.Offset.hasValue() << " trigger: " <<  aEvent.Trigger
+                 << " source has value: " <<  aEvent.Source.hasValue());
+        if (!bWriteEvent && aEvent.Trigger == EventTrigger::ON_NEXT && bMainSeqChild)
             pDelay = "indefinite";
-        SAL_INFO("sd.eppt", "event offset timing: " << (int)eTiming);
-    }
+        else if (bWriteEvent)
+        {
+            switch (aEvent.Trigger)
+            {
+            case EventTrigger::ON_NEXT:
+                pEvent = "onNext";
+                break;
+            case EventTrigger::ON_PREV:
+                pEvent = "onPrev";
+                break;
+            case EventTrigger::BEGIN_EVENT:
+                pEvent = "begin";
+                break;
+            case EventTrigger::END_EVENT:
+                pEvent = "end";
+                break;
+            case EventTrigger::ON_BEGIN:
+                pEvent = "onBegin";
+                break;
+            case EventTrigger::ON_END:
+                pEvent = "onEnd";
+                break;
+            case EventTrigger::ON_CLICK:
+                pEvent = "onClick";
+                break;
+            case EventTrigger::ON_DBL_CLICK:
+                pEvent = "onDblClick";
+                break;
+            case EventTrigger::ON_STOP_AUDIO:
+                pEvent = "onStopAudio";
+                break;
+            case EventTrigger::ON_MOUSE_ENTER:
+                pEvent = "onMouseOver";   // not exact?
+                break;
+            case EventTrigger::ON_MOUSE_LEAVE:
+                pEvent = "onMouseOut";
+                break;
+            }
+        }
+
+        if (aEvent.Offset >>= fDelay)
+        {
+            bHasFDelay = true;
+            SAL_INFO("sd.eppt", "event offset: " << fDelay);
+        }
+        else if (aEvent.Offset >>= eTiming)
+        {
+            if (eTiming == Timing_INDEFINITE)
+                pDelay = "indefinite";
+            SAL_INFO("sd.eppt", "event offset timing: " << (int)eTiming);
+        }
     }
 
-    WriteAnimationCondition( pFS, pDelay, pEvent, fDelay, bHasFDelay );
+    WriteAnimationCondition(pFS, pDelay, pEvent, fDelay, bHasFDelay);
 }
 
-void PowerPointExport::WriteAnimationNodeCommonPropsStart( const FSHelperPtr& pFS, const Reference< XAnimationNode >& rXNode, bool bSingle, bool bMainSeqChild )
+void PowerPointExport::WriteAnimationNodeCommonPropsStart(const FSHelperPtr& pFS, const Reference< XAnimationNode >& rXNode, bool bSingle, bool bMainSeqChild)
 {
     const char* pDuration = nullptr;
     const char* pRestart = nullptr;
@@ -1114,17 +1148,21 @@ void PowerPointExport::WriteAnimationNodeCommonPropsStart( const FSHelperPtr& pF
     Any aAny;
 
     aAny = rXNode->getDuration();
-    if( aAny.hasValue() ) {
-    Timing eTiming;
+    if (aAny.hasValue())
+    {
+        Timing eTiming;
 
-    if( aAny >>= eTiming ) {
-        if( eTiming == Timing_INDEFINITE )
-        pDuration = "indefinite";
-    } else
-        aAny >>= fDuration;
+        if (aAny >>= eTiming)
+        {
+            if (eTiming == Timing_INDEFINITE)
+                pDuration = "indefinite";
+        }
+        else
+            aAny >>= fDuration;
     }
 
-    switch( rXNode->getRestart() ) {
+    switch (rXNode->getRestart())
+    {
     case AnimationRestart::ALWAYS:
         pRestart = "always";
         break;
@@ -1138,206 +1176,229 @@ void PowerPointExport::WriteAnimationNodeCommonPropsStart( const FSHelperPtr& pF
 
     const Sequence< NamedValue > aUserData = rXNode->getUserData();
     const Any* pAny[ DFF_ANIM_PROPERTY_ID_COUNT ];
-    AnimationExporter::GetUserData( aUserData, pAny, sizeof( pAny ) );
+    AnimationExporter::GetUserData(aUserData, pAny, sizeof(pAny));
 
     sal_Int16 nType = 0;
-    if( pAny[ DFF_ANIM_NODE_TYPE ] && ( *pAny[ DFF_ANIM_NODE_TYPE ] >>= nType ) ) {
-    switch( nType ) {
+    if (pAny[ DFF_ANIM_NODE_TYPE ] && (*pAny[ DFF_ANIM_NODE_TYPE ] >>= nType))
+    {
+        switch (nType)
+        {
         case EffectNodeType::TIMING_ROOT:
-        pNodeType = "tmRoot";
-        if( !pDuration )
-            pDuration = "indefinite";
-        if( !pRestart )
-            pRestart = "never";
-        break;
+            pNodeType = "tmRoot";
+            if (!pDuration)
+                pDuration = "indefinite";
+            if (!pRestart)
+                pRestart = "never";
+            break;
         case EffectNodeType::MAIN_SEQUENCE:
-        pNodeType = "mainSeq";
-        break;
+            pNodeType = "mainSeq";
+            break;
         case EffectNodeType::ON_CLICK:
-        pNodeType = "clickEffect";
-        break;
+            pNodeType = "clickEffect";
+            break;
         case EffectNodeType::AFTER_PREVIOUS:
-        pNodeType = "afterEffect";
-        break;
+            pNodeType = "afterEffect";
+            break;
         case EffectNodeType::WITH_PREVIOUS:
-        pNodeType = "withEffect";
-        break;
+            pNodeType = "withEffect";
+            break;
         case EffectNodeType::INTERACTIVE_SEQUENCE:
-        pNodeType = "interactiveSeq";
-        break;
-    }
+            pNodeType = "interactiveSeq";
+            break;
+        }
     }
 
     sal_uInt32 nPresetClass = DFF_ANIM_PRESS_CLASS_USER_DEFINED;
-    if ( pAny[ DFF_ANIM_PRESET_CLASS ] ) {
-    if ( *pAny[ DFF_ANIM_PRESET_CLASS ] >>= nPresetClass ) {
-        switch( nPresetClass ) {
-        case EffectPresetClass::ENTRANCE:
-            pPresetClass = "entr";
-            break;
-        case EffectPresetClass::EXIT:
-            pPresetClass = "exit";
-            break;
-        case EffectPresetClass::EMPHASIS:
-            pPresetClass = "emph";
-            break;
-        case EffectPresetClass::MOTIONPATH:
-            pPresetClass = "path";
-            break;
-        case EffectPresetClass::OLEACTION:
-            pPresetClass = "verb";  // ?
-            break;
-        case EffectPresetClass::MEDIACALL:
-            pPresetClass = "mediacall";
-            break;
+    if (pAny[ DFF_ANIM_PRESET_CLASS ])
+    {
+        if (*pAny[ DFF_ANIM_PRESET_CLASS ] >>= nPresetClass)
+        {
+            switch (nPresetClass)
+            {
+            case EffectPresetClass::ENTRANCE:
+                pPresetClass = "entr";
+                break;
+            case EffectPresetClass::EXIT:
+                pPresetClass = "exit";
+                break;
+            case EffectPresetClass::EMPHASIS:
+                pPresetClass = "emph";
+                break;
+            case EffectPresetClass::MOTIONPATH:
+                pPresetClass = "path";
+                break;
+            case EffectPresetClass::OLEACTION:
+                pPresetClass = "verb";  // ?
+                break;
+            case EffectPresetClass::MEDIACALL:
+                pPresetClass = "mediacall";
+                break;
+            }
         }
     }
-    }
 
     sal_uInt32 nPresetId = 0;
     bool bPresetId = false;
-    if ( pAny[ DFF_ANIM_PRESET_ID ] ) {
-    OUString sPreset;
-    if ( *pAny[ DFF_ANIM_PRESET_ID ] >>= sPreset )
-        nPresetId = AnimationExporter::GetPresetID( sPreset, nPresetClass, bPresetId );
+    if (pAny[ DFF_ANIM_PRESET_ID ])
+    {
+        OUString sPreset;
+        if (*pAny[ DFF_ANIM_PRESET_ID ] >>= sPreset)
+            nPresetId = AnimationExporter::GetPresetID(sPreset, nPresetClass, bPresetId);
     }
 
     sal_uInt32 nPresetSubType = 0;
     bool bPresetSubType = false;
-    if ( pAny[ DFF_ANIM_PRESET_SUB_TYPE ] ) {
-    OUString sPresetSubType;
-    if ( *pAny[ DFF_ANIM_PRESET_SUB_TYPE ] >>= sPresetSubType ) {
-        nPresetSubType = AnimationExporter::TranslatePresetSubType( nPresetClass, nPresetId, sPresetSubType );
-        bPresetSubType = true;
-    }
+    if (pAny[ DFF_ANIM_PRESET_SUB_TYPE ])
+    {
+        OUString sPresetSubType;
+        if (*pAny[ DFF_ANIM_PRESET_SUB_TYPE ] >>= sPresetSubType)
+        {
+            nPresetSubType = AnimationExporter::TranslatePresetSubType(nPresetClass, nPresetId, sPresetSubType);
+            bPresetSubType = true;
+        }
     }
 
-    if( nType != EffectNodeType::TIMING_ROOT && nType != EffectNodeType::MAIN_SEQUENCE ) {
-    // it doesn't seem to work right on root and mainseq nodes
-    sal_Int16 nFill = AnimationExporter::GetFillMode( rXNode, AnimationFill::AUTO );
-    switch( nFill ) {
+    if (nType != EffectNodeType::TIMING_ROOT && nType != EffectNodeType::MAIN_SEQUENCE)
+    {
+        // it doesn't seem to work right on root and mainseq nodes
+        sal_Int16 nFill = AnimationExporter::GetFillMode(rXNode, AnimationFill::AUTO);
+        switch (nFill)
+        {
         case AnimationFill::FREEZE:
-        pFill = "freeze";
-        break;
+            pFill = "freeze";
+            break;
         case AnimationFill::HOLD:
-        pFill = "hold";
-        break;
+            pFill = "hold";
+            break;
         case AnimationFill::REMOVE:
-        pFill = "remove";
-        break;
+            pFill = "remove";
+            break;
         case AnimationFill::TRANSITION:
-        pFill = "transition";
-        break;
-    }
+            pFill = "transition";
+            break;
+        }
     }
 
-    pFS->startElementNS( XML_p, XML_cTn,
-             XML_id, I64S( mnAnimationNodeIdMax ++ ),
-             XML_dur, fDuration != 0 ? I32S( (sal_Int32) ( fDuration * 1000.0 ) ) : pDuration,
-             XML_restart, pRestart,
-             XML_nodeType, pNodeType,
-             XML_fill, pFill,
-             XML_presetClass, pPresetClass,
-             XML_presetID, bPresetId ? I64S( nPresetId ) : nullptr,
-             XML_presetSubtype, bPresetSubType ? I64S( nPresetSubType ) : nullptr,
-             FSEND );
+    pFS->startElementNS(XML_p, XML_cTn,
+                        XML_id, I64S(mnAnimationNodeIdMax ++),
+                        XML_dur, fDuration != 0 ? I32S((sal_Int32)(fDuration * 1000.0)) : pDuration,
+                        XML_restart, pRestart,
+                        XML_nodeType, pNodeType,
+                        XML_fill, pFill,
+                        XML_presetClass, pPresetClass,
+                        XML_presetID, bPresetId ? I64S(nPresetId) : nullptr,
+                        XML_presetSubtype, bPresetSubType ? I64S(nPresetSubType) : nullptr,
+                        FSEND);
 
     aAny = rXNode->getBegin();
-    if( aAny.hasValue() ) {
-    Sequence< Any > aCondSeq;
-
-    pFS->startElementNS( XML_p, XML_stCondLst, FSEND );
-    if( aAny >>= aCondSeq ) {
-        for( int i = 0; i < aCondSeq.getLength(); i ++ )
-        WriteAnimationCondition( pFS, aCondSeq[ i ], false, bMainSeqChild );
-    } else
-        WriteAnimationCondition( pFS, aAny, false, bMainSeqChild );
-    pFS->endElementNS( XML_p, XML_stCondLst );
+    if (aAny.hasValue())
+    {
+        Sequence< Any > aCondSeq;
+
+        pFS->startElementNS(XML_p, XML_stCondLst, FSEND);
+        if (aAny >>= aCondSeq)
+        {
+            for (int i = 0; i < aCondSeq.getLength(); i ++)
+                WriteAnimationCondition(pFS, aCondSeq[ i ], false, bMainSeqChild);
+        }
+        else
+            WriteAnimationCondition(pFS, aAny, false, bMainSeqChild);
+        pFS->endElementNS(XML_p, XML_stCondLst);
     }
 
     aAny = rXNode->getEnd();
-    if( aAny.hasValue() ) {
-    Sequence< Any > aCondSeq;
-
-    pFS->startElementNS( XML_p, XML_endCondLst, FSEND );
-    if( aAny >>= aCondSeq ) {
-        for( int i = 0; i < aCondSeq.getLength(); i ++ )
-        WriteAnimationCondition( pFS, aCondSeq[ i ], false, bMainSeqChild );
-    } else
-        WriteAnimationCondition( pFS, aAny, false, bMainSeqChild );
-    pFS->endElementNS( XML_p, XML_endCondLst );
+    if (aAny.hasValue())
+    {
+        Sequence< Any > aCondSeq;
+
+        pFS->startElementNS(XML_p, XML_endCondLst, FSEND);
+        if (aAny >>= aCondSeq)
+        {
+            for (int i = 0; i < aCondSeq.getLength(); i ++)
+                WriteAnimationCondition(pFS, aCondSeq[ i ], false, bMainSeqChild);
+        }
+        else
+            WriteAnimationCondition(pFS, aAny, false, bMainSeqChild);
+        pFS->endElementNS(XML_p, XML_endCondLst);
     }
 
-    Reference< XEnumerationAccess > xEnumerationAccess( rXNode, UNO_QUERY );
-    if( xEnumerationAccess.is() ) {
-    Reference< XEnumeration > xEnumeration( xEnumerationAccess->createEnumeration(), UNO_QUERY );
-    if( xEnumeration.is() ) {
-        SAL_INFO("sd.eppt", "-----");
+    Reference< XEnumerationAccess > xEnumerationAccess(rXNode, UNO_QUERY);
+    if (xEnumerationAccess.is())
+    {
+        Reference< XEnumeration > xEnumeration(xEnumerationAccess->createEnumeration(), UNO_QUERY);
+        if (xEnumeration.is())
+        {
+            SAL_INFO("sd.eppt", "-----");
 
-        if( xEnumeration->hasMoreElements() ) {
-            pFS->startElementNS( XML_p, XML_childTnLst, FSEND );
+            if (xEnumeration->hasMoreElements())
+            {
+                pFS->startElementNS(XML_p, XML_childTnLst, FSEND);
 
-            do {
-                Reference< XAnimationNode > xChildNode( xEnumeration->nextElement(), UNO_QUERY );
-                if( xChildNode.is() )
-                    WriteAnimationNode( pFS, xChildNode, nType == EffectNodeType::MAIN_SEQUENCE );
-            } while( xEnumeration->hasMoreElements() );
+                do
+                {
+                    Reference< XAnimationNode > xChildNode(xEnumeration->nextElement(), UNO_QUERY);
+                    if (xChildNode.is())
+                        WriteAnimationNode(pFS, xChildNode, nType == EffectNodeType::MAIN_SEQUENCE);
+                }
+                while (xEnumeration->hasMoreElements());
 
-            pFS->endElementNS( XML_p, XML_childTnLst );
+                pFS->endElementNS(XML_p, XML_childTnLst);
+            }
+            SAL_INFO("sd.eppt", "-----");
         }
-        SAL_INFO("sd.eppt", "-----");
-    }
     }
 
-    if( bSingle )
-    pFS->endElementNS( XML_p, XML_cTn );
+    if (bSingle)
+        pFS->endElementNS(XML_p, XML_cTn);
 }
 
-void PowerPointExport::WriteAnimationNodeSeq( const FSHelperPtr& pFS, const Reference< XAnimationNode >& rXNode, sal_Int32, bool bMainSeqChild )
+void PowerPointExport::WriteAnimationNodeSeq(const FSHelperPtr& pFS, const Reference< XAnimationNode >& rXNode, sal_Int32, bool bMainSeqChild)
 {
     SAL_INFO("sd.eppt", "write animation node SEQ");
 
-    pFS->startElementNS( XML_p, XML_seq, FSEND );
+    pFS->startElementNS(XML_p, XML_seq, FSEND);
 
-    WriteAnimationNodeCommonPropsStart( pFS, rXNode, true, bMainSeqChild );
+    WriteAnimationNodeCommonPropsStart(pFS, rXNode, true, bMainSeqChild);
 
-    pFS->startElementNS( XML_p, XML_prevCondLst, FSEND );
-    WriteAnimationCondition( pFS, nullptr, "onPrev", 0, true );
-    pFS->endElementNS( XML_p, XML_prevCondLst );
+    pFS->startElementNS(XML_p, XML_prevCondLst, FSEND);
+    WriteAnimationCondition(pFS, nullptr, "onPrev", 0, true);
+    pFS->endElementNS(XML_p, XML_prevCondLst);
 
-    pFS->startElementNS( XML_p, XML_nextCondLst, FSEND );
-    WriteAnimationCondition( pFS, nullptr, "onNext", 0, true );
-    pFS->endElementNS( XML_p, XML_nextCondLst );
+    pFS->startElementNS(XML_p, XML_nextCondLst, FSEND);
+    WriteAnimationCondition(pFS, nullptr, "onNext", 0, true);
+    pFS->endElementNS(XML_p, XML_nextCondLst);
 
-    pFS->endElementNS( XML_p, XML_seq );
+    pFS->endElementNS(XML_p, XML_seq);
 }
 
-void PowerPointExport::WriteAnimationNodeEffect( const FSHelperPtr& pFS, const Reference< XAnimationNode >& rXNode, sal_Int32, bool bMainSeqChild )
+void PowerPointExport::WriteAnimationNodeEffect(const FSHelperPtr& pFS, const Reference< XAnimationNode >& rXNode, sal_Int32, bool bMainSeqChild)
 {
     SAL_INFO("sd.eppt", "write animation node FILTER");
-    Reference< XTransitionFilter > xFilter( rXNode, UNO_QUERY );
-    if ( xFilter.is() ) {
-    const char* pFilter = ::ppt::AnimationExporter::FindTransitionName( xFilter->getTransition(), xFilter->getSubtype(), xFilter->getDirection() );
-    const char* pDirection = xFilter->getDirection() ? "in" : "out";
-    pFS->startElementNS( XML_p, XML_animEffect,
-                 XML_filter, pFilter,
-                 XML_transition, pDirection,
-                 FSEND );
-
-    WriteAnimationNodeAnimateInside( pFS, rXNode, bMainSeqChild, false );
-
-    pFS->endElementNS( XML_p, XML_animEffect );
+    Reference< XTransitionFilter > xFilter(rXNode, UNO_QUERY);
+    if (xFilter.is())
+    {
+        const char* pFilter = ::ppt::AnimationExporter::FindTransitionName(xFilter->getTransition(), xFilter->getSubtype(), xFilter->getDirection());
+        const char* pDirection = xFilter->getDirection() ? "in" : "out";
+        pFS->startElementNS(XML_p, XML_animEffect,
+                            XML_filter, pFilter,
+                            XML_transition, pDirection,
+                            FSEND);
+
+        WriteAnimationNodeAnimateInside(pFS, rXNode, bMainSeqChild, false);
+
+        pFS->endElementNS(XML_p, XML_animEffect);
     }
 }
 
-void PowerPointExport::WriteAnimationNode( const FSHelperPtr& pFS, const Reference< XAnimationNode >& rXNode, bool bMainSeqChild )
+void PowerPointExport::WriteAnimationNode(const FSHelperPtr& pFS, const Reference< XAnimationNode >& rXNode, bool bMainSeqChild)
 {
     SAL_INFO("sd.eppt", "export node type: " << rXNode->getType());
     sal_Int32 xmlNodeType = -1;
-    typedef void (PowerPointExport::*AnimationNodeWriteMethod)( const FSHelperPtr&, const Reference< XAnimationNode >&, sal_Int32, bool );
+    typedef void (PowerPointExport::*AnimationNodeWriteMethod)(const FSHelperPtr&, const Reference< XAnimationNode >&, sal_Int32, bool);
     AnimationNodeWriteMethod pMethod = nullptr;
 
-    switch( rXNode->getType() ) {
+    switch (rXNode->getType())
+    {
     case AnimationNodeType::PAR:
         xmlNodeType = XML_par;
         break;
@@ -1358,56 +1419,63 @@ void PowerPointExport::WriteAnimationNode( const FSHelperPtr& pFS, const Referen
         break;
     }
 
-    if( pMethod ) {
-        (this->*pMethod)( pFS, rXNode, xmlNodeType, bMainSeqChild );
+    if (pMethod)
+    {
+        (this->*pMethod)(pFS, rXNode, xmlNodeType, bMainSeqChild);
         return;
     }
 
-    if( xmlNodeType == -1 )
+    if (xmlNodeType == -1)
         return;
 
-    pFS->startElementNS( XML_p, xmlNodeType, FSEND );
+    pFS->startElementNS(XML_p, xmlNodeType, FSEND);
 
-    WriteAnimationNodeCommonPropsStart( pFS, rXNode, true, bMainSeqChild );
+    WriteAnimationNodeCommonPropsStart(pFS, rXNode, true, bMainSeqChild);
 
-    pFS->endElementNS( XML_p, xmlNodeType );
+    pFS->endElementNS(XML_p, xmlNodeType);
 }
 
-void PowerPointExport::WriteAnimations( const FSHelperPtr& pFS )
+void PowerPointExport::WriteAnimations(const FSHelperPtr& pFS)
 {
-    Reference< XAnimationNodeSupplier > xNodeSupplier( mXDrawPage, UNO_QUERY );
-    if( xNodeSupplier.is() ) {
-    const Reference< XAnimationNode > xNode( xNodeSupplier->getAnimationNode() );
-    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 );
-
-            WriteAnimationNode( pFS, xNode, false );
-
-            pFS->endElementNS( XML_p, XML_tnLst );
-            pFS->endElementNS( XML_p, XML_timing );
-        }
+    Reference< XAnimationNodeSupplier > xNodeSupplier(mXDrawPage, UNO_QUERY);
+    if (xNodeSupplier.is())
+    {
+        const Reference< XAnimationNode > xNode(xNodeSupplier->getAnimationNode());
+        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);
+
+                    WriteAnimationNode(pFS, xNode, false);
+
+                    pFS->endElementNS(XML_p, XML_tnLst);
+                    pFS->endElementNS(XML_p, XML_timing);
+                }
+            }
         }
     }
-    }
 }
 
-static OUString lcl_GetInitials( const OUString& sName )
+static OUString lcl_GetInitials(const OUString& sName)
 {
     OUStringBuffer sRet;
 
-    if ( !sName.isEmpty() ) {
-        sRet.append ( sName[0] );
+    if (!sName.isEmpty())
+    {
+        sRet.append(sName[0]);
         sal_Int32 nStart = 0, nOffset;
 
-        while ( ( nOffset = sName.indexOf ( ' ', nStart ) ) != -1 ) {
-            if ( nOffset + 1 < sName.getLength() )
-                sRet.append ( sName[ nOffset + 1 ] );
+        while ((nOffset = sName.indexOf(' ', nStart)) != -1)
+        {
+            if (nOffset + 1 < sName.getLength())
+                sRet.append(sName[ nOffset + 1 ]);
             nStart = nOffset + 1;
         }
     }
@@ -1417,33 +1485,34 @@ static OUString lcl_GetInitials( const OUString& sName )
 
 void PowerPointExport::WriteAuthors()
 {
-    if ( maAuthors.size() <= 0 )
+    if (maAuthors.size() <= 0)
         return;
 
-    FSHelperPtr pFS = openFragmentStreamWithSerializer( "ppt/commentAuthors.xml",
-                                                        "application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml" );
-    addRelation( mPresentationFS->getOutputStream(),
-                 "http://schemas.openxmlformats.org/officeDocument/2006/relationships/commentAuthors",
-                 "commentAuthors.xml" );
-
-    pFS->startElementNS( XML_p, XML_cmAuthorLst,
-                         FSNS( XML_xmlns, XML_p ), OUStringToOString(this->getNamespaceURL(OOX_NS(ppt)), RTL_TEXTENCODING_UTF8),
-                         FSEND );
-
-    for( const AuthorsMap::value_type& i : maAuthors ) {
-        pFS->singleElementNS( XML_p, XML_cmAuthor,
-                              XML_id, I32S( i.second.nId ),
-                              XML_name, USS( i.first ),
-                              XML_initials, USS( lcl_GetInitials( i.first ) ),
-                              XML_lastIdx, I32S( i.second.nLastIndex ),
-                              XML_clrIdx, I32S( i.second.nId ),
-                              FSEND );
+    FSHelperPtr pFS = openFragmentStreamWithSerializer("ppt/commentAuthors.xml",
+                      "application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml");
+    addRelation(mPresentationFS->getOutputStream(),
+                "http://schemas.openxmlformats.org/officeDocument/2006/relationships/commentAuthors",
+                "commentAuthors.xml");
+
+    pFS->startElementNS(XML_p, XML_cmAuthorLst,
+                        FSNS(XML_xmlns, XML_p), OUStringToOString(this->getNamespaceURL(OOX_NS(ppt)), RTL_TEXTENCODING_UTF8),
+                        FSEND);
+
+    for (const AuthorsMap::value_type& i : maAuthors)
+    {
+        pFS->singleElementNS(XML_p, XML_cmAuthor,
+                             XML_id, I32S(i.second.nId),
+                             XML_name, USS(i.first),
+                             XML_initials, USS(lcl_GetInitials(i.first)),
+                             XML_lastIdx, I32S(i.second.nLastIndex),
+                             XML_clrIdx, I32S(i.second.nId),
+                             FSEND);
     }
 
-    pFS->endElementNS( XML_p, XML_cmAuthorLst );
+    pFS->endElementNS(XML_p, XML_cmAuthorLst);
 }
 
-sal_Int32 PowerPointExport::GetAuthorIdAndLastIndex( const OUString& sAuthor, sal_Int32& nLastIndex )
+sal_Int32 PowerPointExport::GetAuthorIdAndLastIndex(const OUString& sAuthor, sal_Int32& nLastIndex)
 {
     if (maAuthors.count(sAuthor) <= 0)
     {
@@ -1460,58 +1529,60 @@ sal_Int32 PowerPointExport::GetAuthorIdAndLastIndex( const OUString& sAuthor, sa
     return maAuthors[ sAuthor ].nId;
 }
 
-bool PowerPointExport::WriteComments( sal_uInt32 nPageNum )
+bool PowerPointExport::WriteComments(sal_uInt32 nPageNum)
 {
-    Reference< XAnnotationAccess > xAnnotationAccess( mXDrawPage, uno::UNO_QUERY );
-    if ( xAnnotationAccess.is() )
+    Reference< XAnnotationAccess > xAnnotationAccess(mXDrawPage, uno::UNO_QUERY);
+    if (xAnnotationAccess.is())
     {
-        Reference< XAnnotationEnumeration > xAnnotationEnumeration( xAnnotationAccess->createAnnotationEnumeration() );
+        Reference< XAnnotationEnumeration > xAnnotationEnumeration(xAnnotationAccess->createAnnotationEnumeration());
 
-        if ( xAnnotationEnumeration->hasMoreElements() )
+        if (xAnnotationEnumeration->hasMoreElements())
         {
-            FSHelperPtr pFS = openFragmentStreamWithSerializer( OUStringBuffer()
-                                                                .append( "ppt/comments/comment" )
-                                                                .append( (sal_Int32) nPageNum + 1 )
-                                                                .append( ".xml" )
-                                                                .makeStringAndClear(),
-                                                                "application/vnd.openxmlformats-officedocument.presentationml.comments+xml" );
-
-            pFS->startElementNS( XML_p, XML_cmLst,
-                                 FSNS( XML_xmlns, XML_p ), OUStringToOString(this->getNamespaceURL(OOX_NS(ppt)), RTL_TEXTENCODING_UTF8),
-                                 FSEND );
-
-            do {
-                Reference< XAnnotation > xAnnotation( xAnnotationEnumeration->nextElement() );
-                DateTime aDateTime( xAnnotation->getDateTime() );
-                RealPoint2D aRealPoint2D( xAnnotation->getPosition() );
-                Reference< XText > xText( xAnnotation->getTextRange() );
+            FSHelperPtr pFS = openFragmentStreamWithSerializer(OUStringBuffer()
+                              .append("ppt/comments/comment")
+                              .append((sal_Int32) nPageNum + 1)
+                              .append(".xml")
+                              .makeStringAndClear(),
+                              "application/vnd.openxmlformats-officedocument.presentationml.comments+xml");
+
+            pFS->startElementNS(XML_p, XML_cmLst,
+                                FSNS(XML_xmlns, XML_p), OUStringToOString(this->getNamespaceURL(OOX_NS(ppt)), RTL_TEXTENCODING_UTF8),
+                                FSEND);
+
+            do
+            {
+                Reference< XAnnotation > xAnnotation(xAnnotationEnumeration->nextElement());
+                DateTime aDateTime(xAnnotation->getDateTime());
+                RealPoint2D aRealPoint2D(xAnnotation->getPosition());
+                Reference< XText > xText(xAnnotation->getTextRange());
                 sal_Int32 nLastIndex;
-                sal_Int32 nId = GetAuthorIdAndLastIndex ( xAnnotation->getAuthor(), nLastIndex );
+                sal_Int32 nId = GetAuthorIdAndLastIndex(xAnnotation->getAuthor(), nLastIndex);
                 char cDateTime[32];
 
                 snprintf(cDateTime, 31, "%02d-%02d-%02dT%02d:%02d:%02d.%09" SAL_PRIuUINT32, aDateTime.Year, aDateTime.Month, aDateTime.Day, aDateTime.Hours, aDateTime.Minutes, aDateTime.Seconds, aDateTime.NanoSeconds);
 
-                pFS->startElementNS( XML_p, XML_cm,
-                                     XML_authorId, I32S( nId ),
-                                     XML_dt, cDateTime,
-                                     XML_idx, I32S( nLastIndex ),
-                                     FSEND );
+                pFS->startElementNS(XML_p, XML_cm,
+                                    XML_authorId, I32S(nId),
+                                    XML_dt, cDateTime,
+                                    XML_idx, I32S(nLastIndex),
+                                    FSEND);
 
-                pFS->singleElementNS( XML_p, XML_pos,
-                                      XML_x, I64S( ( (sal_Int64) ( 57600*aRealPoint2D.X + 1270 )/2540.0 ) ),
-                                      XML_y, I64S( ( (sal_Int64) ( 57600*aRealPoint2D.Y + 1270 )/2540.0 ) ),
-                                      FSEND );
+                pFS->singleElementNS(XML_p, XML_pos,
+                                     XML_x, I64S(((sal_Int64)(57600*aRealPoint2D.X + 1270)/2540.0)),
+                                     XML_y, I64S(((sal_Int64)(57600*aRealPoint2D.Y + 1270)/2540.0)),
+                                     FSEND);
 
-                pFS->startElementNS( XML_p, XML_text,
-                                     FSEND );
-                pFS->write( xText->getString() );
-                pFS->endElementNS( XML_p, XML_text );
+                pFS->startElementNS(XML_p, XML_text,
+                                    FSEND);
+                pFS->write(xText->getString());
+                pFS->endElementNS(XML_p, XML_text);
 
-                pFS->endElementNS( XML_p, XML_cm );
+                pFS->endElementNS(XML_p, XML_cm);
 
-            } while ( xAnnotationEnumeration->hasMoreElements() );
+            }
+            while (xAnnotationEnumeration->hasMoreElements());
 
-            pFS->endElementNS( XML_p, XML_cmLst );
+            pFS->endElementNS(XML_p, XML_cmLst);
 
             return true;
         }
@@ -1546,399 +1617,411 @@ void PowerPointExport::WriteVBA()
     addRelation(mPresentationFS->getOutputStream(), "http://schemas.microsoft.com/office/2006/relationships/vbaProject", "vbaProject.bin");
 }
 
-void PowerPointExport::ImplWriteSlide( sal_uInt32 nPageNum, sal_uInt32 nMasterNum, sal_uInt16 /* nMode */,
-                                       bool bHasBackground, Reference< XPropertySet > const & aXBackgroundPropSet )
+void PowerPointExport::ImplWriteSlide(sal_uInt32 nPageNum, sal_uInt32 nMasterNum, sal_uInt16 /* nMode */,
+                                      bool bHasBackground, Reference< XPropertySet > const& aXBackgroundPropSet)
 {
     SAL_INFO("sd.eppt", "write slide: " << nPageNum << "\n----------------");
 
     // slides list
-    if( nPageNum == 0 )
-        mPresentationFS->startElementNS( XML_p, XML_sldIdLst, FSEND );
+    if (nPageNum == 0)
+        mPresentationFS->startElementNS(XML_p, XML_sldIdLst, FSEND);
 
     // add explicit relation of presentation to this slide
-    OUString sRelId = addRelation( mPresentationFS->getOutputStream(),
-                                   "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide",
-                                   OUStringBuffer()
-                                   .append( "slides/slide" )
-                                   .append( (sal_Int32) nPageNum + 1 )
-                                   .append( ".xml" )
-                                   .makeStringAndClear() );
-
-    mPresentationFS->singleElementNS( XML_p, XML_sldId,
-                                      XML_id, I32S( GetNewSlideId() ),
-                                      FSNS( XML_r, XML_id ), USS( sRelId ),
-                                      FSEND );
-
-    if( nPageNum == mnPages - 1 )
-        mPresentationFS->endElementNS( XML_p, XML_sldIdLst );
-
-    FSHelperPtr pFS = openFragmentStreamWithSerializer( OUStringBuffer()
-                                                        .append( "ppt/slides/slide" )
-                                                        .append( (sal_Int32) nPageNum + 1 )
-                                                        .append( ".xml" )
-                                                        .makeStringAndClear(),
-                                                        "application/vnd.openxmlformats-officedocument.presentationml.slide+xml" );
-
-    if( mpSlidesFSArray.size() < mnPages )
-        mpSlidesFSArray.resize( mnPages );
+    OUString sRelId = addRelation(mPresentationFS->getOutputStream(),
+                                  "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide",
+                                  OUStringBuffer()
+                                  .append("slides/slide")
+                                  .append((sal_Int32) nPageNum + 1)
+                                  .append(".xml")
+                                  .makeStringAndClear());
+
+    mPresentationFS->singleElementNS(XML_p, XML_sldId,
+                                     XML_id, I32S(GetNewSlideId()),
+                                     FSNS(XML_r, XML_id), USS(sRelId),
+                                     FSEND);
+
+    if (nPageNum == mnPages - 1)
+        mPresentationFS->endElementNS(XML_p, XML_sldIdLst);
+
+    FSHelperPtr pFS = openFragmentStreamWithSerializer(OUStringBuffer()
+                      .append("ppt/slides/slide")
+                      .append((sal_Int32) nPageNum + 1)
+                      .append(".xml")
+                      .makeStringAndClear(),
+                      "application/vnd.openxmlformats-officedocument.presentationml.slide+xml");
+
+    if (mpSlidesFSArray.size() < mnPages)
+        mpSlidesFSArray.resize(mnPages);
     mpSlidesFSArray[ nPageNum ] = pFS;
 
     const char* pShow = nullptr;
 
-    if( GETA( Visible ) ) {
-    bool bShow(false);
-    if( ( mAny >>= bShow ) && !bShow )
-        pShow = "0";
+    if (GETA(Visible))
+    {
+        bool bShow(false);
+        if ((mAny >>= bShow) && !bShow)
+            pShow = "0";
     }
 
-    pFS->startElementNS( XML_p, XML_sld, PNMSS,
-             XML_show, pShow,
-             FSEND );
+    pFS->startElementNS(XML_p, XML_sld, PNMSS,
+                        XML_show, pShow,
+                        FSEND);
 
-    pFS->startElementNS( XML_p, XML_cSld, FSEND );
+    pFS->startElementNS(XML_p, XML_cSld, FSEND);
 
     // background
-    if( bHasBackground ) {
-        ImplWriteBackground( pFS, aXBackgroundPropSet );
+    if (bHasBackground)
+    {
+        ImplWriteBackground(pFS, aXBackgroundPropSet);
     }
 
-    WriteShapeTree( pFS, NORMAL, false );
+    WriteShapeTree(pFS, NORMAL, false);
 
-    pFS->endElementNS( XML_p, XML_cSld );
+    pFS->endElementNS(XML_p, XML_cSld);
 
-    WriteTransition( pFS );
-    WriteAnimations( pFS );
+    WriteTransition(pFS);
+    WriteAnimations(pFS);
 
-    pFS->endElementNS( XML_p, XML_sld );
+    pFS->endElementNS(XML_p, XML_sld);
 
     // add implicit relation to slide layout
-    addRelation( pFS->getOutputStream(),
-                 "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout",
-                 OUStringBuffer()
-                 .append( "../slideLayouts/slideLayout" )
-                 .append( GetLayoutFileId( GetPPTXLayoutId( GetLayoutOffset( mXPagePropSet ) ), nMasterNum ) )
-                 .append( ".xml" )
-                 .makeStringAndClear() );
-
-    if ( WriteComments( nPageNum ) )
+    addRelation(pFS->getOutputStream(),
+                "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout",
+                OUStringBuffer()
+                .append("../slideLayouts/slideLayout")
+                .append(GetLayoutFileId(GetPPTXLayoutId(GetLayoutOffset(mXPagePropSet)), nMasterNum))
+                .append(".xml")
+                .makeStringAndClear());
+
+    if (WriteComments(nPageNum))
         // add implicit relation to slide comments
-        addRelation( pFS->getOutputStream(),
-                     "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",
-                     OUStringBuffer()
-                     .append( "../comments/comment" )
-                     .append( (sal_Int32) nPageNum + 1 )
-                     .append( ".xml" )
-                     .makeStringAndClear() );
+        addRelation(pFS->getOutputStream(),
+                    "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",
+                    OUStringBuffer()
+                    .append("../comments/comment")
+                    .append((sal_Int32) nPageNum + 1)
+                    .append(".xml")
+                    .makeStringAndClear());
 
     SAL_INFO("sd.eppt", "----------------");
 }
 
-void PowerPointExport::ImplWriteNotes( sal_uInt32 nPageNum )
+void PowerPointExport::ImplWriteNotes(sal_uInt32 nPageNum)
 {
-    if( !mbCreateNotes || !ContainsOtherShapeThanPlaceholders() )
+    if (!mbCreateNotes || !ContainsOtherShapeThanPlaceholders())
         return;
 
     SAL_INFO("sd.eppt", "write Notes " << nPageNum << "\n----------------");
 
-    FSHelperPtr pFS = openFragmentStreamWithSerializer( OUStringBuffer()
-                                                        .append( "ppt/notesSlides/notesSlide" )
-                                                        .append( (sal_Int32) nPageNum + 1 )
-                                                        .append( ".xml" )
-                                                        .makeStringAndClear(),
-                                                        "application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml" );
+    FSHelperPtr pFS = openFragmentStreamWithSerializer(OUStringBuffer()
+                      .append("ppt/notesSlides/notesSlide")
+                      .append((sal_Int32) nPageNum + 1)
+                      .append(".xml")
+                      .makeStringAndClear(),
+                      "application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml");
 
-    pFS->startElementNS( XML_p, XML_notes, PNMSS, FSEND );
+    pFS->startElementNS(XML_p, XML_notes, PNMSS, FSEND);
 
-    pFS->startElementNS( XML_p, XML_cSld, FSEND );
+    pFS->startElementNS(XML_p, XML_cSld, FSEND);
 
-    WriteShapeTree( pFS, NOTICE, false );
+    WriteShapeTree(pFS, NOTICE, false);
 
-    pFS->endElementNS( XML_p, XML_cSld );
+    pFS->endElementNS(XML_p, XML_cSld);
 
-    pFS->endElementNS( XML_p, XML_notes );
+    pFS->endElementNS(XML_p, XML_notes);
 
     // add implicit relation to slide
-    addRelation( pFS->getOutputStream(),
-                 "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide",
-                 OUStringBuffer()
-                 .append( "../slides/slide" )
-                 .append( (sal_Int32) nPageNum + 1 )
-                 .append( ".xml" )
-                 .makeStringAndClear() );
+    addRelation(pFS->getOutputStream(),
+                "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide",
+                OUStringBuffer()
+                .append("../slides/slide")
+                .append((sal_Int32) nPageNum + 1)
+                .append(".xml")
+                .makeStringAndClear());
 
     // add slide implicit relation to notes
-    if( mpSlidesFSArray.size() >= nPageNum )
-        addRelation( mpSlidesFSArray[ nPageNum ]->getOutputStream(),
-             "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide",
-             OUStringBuffer()
-             .append( "../notesSlides/notesSlide" )
-             .append( (sal_Int32) nPageNum + 1 )
-             .append( ".xml" )
-             .makeStringAndClear() );
+    if (mpSlidesFSArray.size() >= nPageNum)
+        addRelation(mpSlidesFSArray[ nPageNum ]->getOutputStream(),
+                    "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide",
+                    OUStringBuffer()
+                    .append("../notesSlides/notesSlide")
+                    .append((sal_Int32) nPageNum + 1)
+                    .append(".xml")
+                    .makeStringAndClear());
 
     // add implicit relation to notes master
-    addRelation( pFS->getOutputStream(),
-                 "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster",
-          "../notesMasters/notesMaster1.xml" );
+    addRelation(pFS->getOutputStream(),
+                "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster",
+                "../notesMasters/notesMaster1.xml");
 
     SAL_INFO("sd.eppt", "-----------------");
 }
 
-void PowerPointExport::AddLayoutIdAndRelation( const FSHelperPtr& pFS, sal_Int32 nLayoutFileId )
+void PowerPointExport::AddLayoutIdAndRelation(const FSHelperPtr& pFS, sal_Int32 nLayoutFileId)
 {
     // add implicit relation of slide master to slide layout
-    OUString sRelId = addRelation( pFS->getOutputStream(),
-                   "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout",
-                   OUStringBuffer()
-                   .append( "../slideLayouts/slideLayout" )
-                   .append( nLayoutFileId )
-                   .append( ".xml" )
-                   .makeStringAndClear() );
-
-    pFS->singleElementNS( XML_p, XML_sldLayoutId,
-              XML_id, I64S( GetNewSlideMasterId() ),
-              FSNS( XML_r, XML_id ), USS( sRelId ),
-              FSEND );
+    OUString sRelId = addRelation(pFS->getOutputStream(),
+                                  "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout",
+                                  OUStringBuffer()
+                                  .append("../slideLayouts/slideLayout")
+                                  .append(nLayoutFileId)
+                                  .append(".xml")
+                                  .makeStringAndClear());
+
+    pFS->singleElementNS(XML_p, XML_sldLayoutId,
+                         XML_id, I64S(GetNewSlideMasterId()),
+                         FSNS(XML_r, XML_id), USS(sRelId),
+                         FSEND);
 }
 
-void PowerPointExport::ImplWriteSlideMaster( sal_uInt32 nPageNum, Reference< XPropertySet > const & aXBackgroundPropSet )
+void PowerPointExport::ImplWriteSlideMaster(sal_uInt32 nPageNum, Reference< XPropertySet > const& aXBackgroundPropSet)
 {
     SAL_INFO("sd.eppt", "write master slide: " << nPageNum << "\n--------------");
 
     // slides list
-    if( nPageNum == 0 )
-        mPresentationFS->startElementNS( XML_p, XML_sldMasterIdLst, FSEND );
+    if (nPageNum == 0)
+        mPresentationFS->startElementNS(XML_p, XML_sldMasterIdLst, FSEND);
 
-    OUString sRelId = addRelation( mPresentationFS->getOutputStream(),
-                                   "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster",
-                                   OUStringBuffer()

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list