summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--reportdesign/source/core/api/ReportDefinition.cxx6
-rw-r--r--xmloff/source/draw/ximpshap.cxx3
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);
}