diff options
Diffstat (limited to 'oox/source/ppt/presentationfragmenthandler.cxx')
-rw-r--r-- | oox/source/ppt/presentationfragmenthandler.cxx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/oox/source/ppt/presentationfragmenthandler.cxx b/oox/source/ppt/presentationfragmenthandler.cxx index e9fe6994472e..63d5f76e2219 100644 --- a/oox/source/ppt/presentationfragmenthandler.cxx +++ b/oox/source/ppt/presentationfragmenthandler.cxx @@ -33,6 +33,8 @@ #include <com/sun/star/drawing/XDrawPages.hpp> #include <com/sun/star/drawing/XDrawPagesSupplier.hpp> #include <com/sun/star/drawing/XMasterPageTarget.hpp> +#include <com/sun/star/xml/dom/XDocument.hpp> +#include <com/sun/star/xml/sax/XFastSAXSerializable.hpp> #include <com/sun/star/style/XStyleFamiliesSupplier.hpp> #include <com/sun/star/style/XStyle.hpp> #include <com/sun/star/presentation/XPresentationPage.hpp> @@ -225,8 +227,17 @@ void PresentationFragmentHandler::finalizeImport() { oox::drawingml::ThemePtr pThemePtr( new oox::drawingml::Theme() ); pMasterPersistPtr->setTheme( pThemePtr ); - rFilter.importFragment( new ThemeFragmentHandler( rFilter, aThemeFragmentPath, *pThemePtr ) ); + Reference<xml::dom::XDocument> xDoc= + rFilter.importFragment(aThemeFragmentPath); + + rFilter.importFragment( + new ThemeFragmentHandler( + rFilter, aThemeFragmentPath, *pThemePtr ), + Reference<xml::sax::XFastSAXSerializable>( + xDoc, + UNO_QUERY_THROW)); rThemes[ aThemeFragmentPath ] = pThemePtr; + pThemePtr->setFragment(xDoc); } else { |