diff options
-rw-r--r-- | reportdesign/source/core/api/ReportDefinition.cxx | 6 | ||||
-rw-r--r-- | xmloff/source/draw/ximpshap.cxx | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/reportdesign/source/core/api/ReportDefinition.cxx b/reportdesign/source/core/api/ReportDefinition.cxx index c9a9f7f2f4cb..9c9a44991842 100644 --- a/reportdesign/source/core/api/ReportDefinition.cxx +++ b/reportdesign/source/core/api/ReportDefinition.cxx @@ -2009,6 +2009,12 @@ uno::Reference< uno::XInterface > SAL_CALL OReportDefinition::createInstanceWith m_pImpl->m_pObjectContainer->SwitchPersistence(xStorage); xRet = cppu::getXWeak(SvXMLEmbeddedObjectHelper::Create( xStorage,*this, SvXMLEmbeddedObjectHelperMode::Read ).get()); } + else if (aServiceSpecifier == "com.sun.star.drawing.OLE2Shape") + { + uno::Reference<drawing::XShape> xShape(SvxUnoDrawMSFactory::createInstanceWithArguments(aServiceSpecifier, _aArgs), uno::UNO_QUERY_THROW); + xRet = m_pImpl->m_pReportModel->createShape(aServiceSpecifier, xShape); + } + return xRet; } diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx index 24475522f1e5..4de4bd28edb8 100644 --- a/xmloff/source/draw/ximpshap.cxx +++ b/xmloff/source/draw/ximpshap.cxx @@ -505,6 +505,9 @@ void SdXMLShapeContext::AddShape(OUString const & serviceName) || serviceName == "com.sun.star.drawing.PluginShape" || serviceName == "com.sun.star.presentation.MediaShape") { + // On adding another entry to this list of service names to pass an argument via the WithArguments variant + // you may need to adjust the more obscure OReportDefinition::createInstanceWithArguments as well as the + // more obvious SvxUnoDrawMSFactory::createInstanceWithArguments xShape.set( xServiceFact->createInstanceWithArguments(serviceName, { css::uno::Any(GetImport().GetDocumentBase()) }), css::uno::UNO_QUERY); } |