Resolves: tdf#157726 missing chart from Base report
since:
commit c9b5c627ccb5b70c103c559b1df38c1175efc2d1
Author: Caolán McNamara <caolan.mcnamara@collabora.com>
Date: Wed Sep 6 10:05:23 2023 +0100
add referer to ole objects
Change-Id: I9ef18bf0d734dd900bdbcac475ca15af7b15456e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158027
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
diff --git a/reportdesign/source/core/api/ReportDefinition.cxx b/reportdesign/source/core/api/ReportDefinition.cxx
index c9a9f7f..9c9a449 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 2447552..4de4bd2 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);
}