summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorTibor Nagy <nagy.tibor2@nisz.hu>2021-06-14 16:06:55 +0200
committerLászló Németh <nemeth@numbertext.org>2021-06-21 17:53:00 +0200
commit11ef976624dce8a8e50a1eb20e9c586519fd7ec8 (patch)
tree875a4bf1016d1a446371aaaf2bef9f51e70fcc0e /oox
parentb25c9bd18cfa544578ac87020b2b41d881e73e7f (diff)
tdf#142590 PPTX import: fix custom slide show use as default
If the PPTX file contains a custom slideshow, which set by default and opening in Impress, this setting wasn't imported. See also commit 312334f8488a668e9b5302959b60292ce151e4fc "tdf#47365 PPTX export: support loop attribute" and commit a4b66458a7b8da2f5580014813e5dabe3fa670b6 "tdf#125071 PPTX: fix missing custom slide show export". Change-Id: I9c2b3773f6883ee795f119df5b8534fcdfa6618f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117172 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 8bf44b9cdceb7926fe52ef0bd4a38af24e7c700a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117562 Tested-by: Jenkins
Diffstat (limited to 'oox')
-rw-r--r--oox/source/ppt/presPropsfragmenthandler.cxx17
1 files changed, 17 insertions, 0 deletions
diff --git a/oox/source/ppt/presPropsfragmenthandler.cxx b/oox/source/ppt/presPropsfragmenthandler.cxx
index 53d831b60ae9..47965050b164 100644
--- a/oox/source/ppt/presPropsfragmenthandler.cxx
+++ b/oox/source/ppt/presPropsfragmenthandler.cxx
@@ -10,6 +10,9 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/frame/XModel.hpp>
#include <com/sun/star/presentation/XPresentationSupplier.hpp>
+#include <com/sun/star/presentation/XCustomPresentationSupplier.hpp>
+#include <com/sun/star/container/XNamed.hpp>
+#include <com/sun/star/container/XIndexContainer.hpp>
#include <oox/core/xmlfilterbase.hxx>
#include <oox/helper/attributelist.hxx>
@@ -33,6 +36,17 @@ void PresPropsFragmentHandler::finalizeImport()
css::uno::Reference<css::beans::XPropertySet> xPresentationProps(
xPresentationSupplier->getPresentation(), css::uno::UNO_QUERY_THROW);
xPresentationProps->setPropertyValue("IsEndless", css::uno::Any(m_bLoop));
+
+ if (!m_sId.isEmpty())
+ {
+ css::uno::Reference<css::presentation::XCustomPresentationSupplier>
+ XCustPresentationSupplier(getFilter().getModel(), css::uno::UNO_QUERY_THROW);
+ css::uno::Reference<css::container::XNameContainer> mxCustShows;
+ mxCustShows = XCustPresentationSupplier->getCustomPresentations();
+ const css::uno::Sequence<OUString> aNameSeq(mxCustShows->getElementNames());
+ xPresentationProps->setPropertyValue("CustomShow",
+ css::uno::Any(aNameSeq[m_sId.toInt32()]));
+ }
}
core::ContextHandlerRef PresPropsFragmentHandler::onCreateContext(sal_Int32 aElementToken,
@@ -45,6 +59,9 @@ core::ContextHandlerRef PresPropsFragmentHandler::onCreateContext(sal_Int32 aEle
case PPT_TOKEN(showPr):
m_bLoop = rAttribs.getBool(XML_loop, false);
return this;
+ case PPT_TOKEN(custShow):
+ m_sId = rAttribs.getString(XML_id).get();
+ return this;
}
return this;
}