summaryrefslogtreecommitdiff
path: root/reportdesign
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2016-02-03 17:41:53 +0100
committerMichael Stahl <mstahl@redhat.com>2016-02-03 23:43:33 +0100
commit131ebdeb2f26a697029d2e561743345ddc8a8b32 (patch)
tree9154334da39495e6e5d5e9c6e880b6e0dce3f1dc /reportdesign
parent0fadfd3c17a4ec9bd3e51deb22074422e1b4c330 (diff)
reportdesign: try harder in getDocumentBaseURL()
OReportDefinition is always an embedded object, and may contain embedded objects itself. Try to get a base URL for loading the nested embedded objects from the parent. We actually need it before setParent() is called, so search the media descriptor too. Change-Id: I319127cd5938d4a79778345fce65a4d58bd54877
Diffstat (limited to 'reportdesign')
-rw-r--r--reportdesign/source/core/api/ReportDefinition.cxx18
1 files changed, 17 insertions, 1 deletions
diff --git a/reportdesign/source/core/api/ReportDefinition.cxx b/reportdesign/source/core/api/ReportDefinition.cxx
index 648f163843a1..1cbc19131bbe 100644
--- a/reportdesign/source/core/api/ReportDefinition.cxx
+++ b/reportdesign/source/core/api/ReportDefinition.cxx
@@ -2549,7 +2549,23 @@ bool OReportDefinition::isEnableSetModified() const
OUString OReportDefinition::getDocumentBaseURL() const
{
- return const_cast<OReportDefinition*>(this)->getURL();
+ // TODO: should this be in getURL()? not sure...
+ uno::Reference<frame::XModel> const xParent(
+ const_cast<OReportDefinition*>(this)->getParent(), uno::UNO_QUERY);
+ if (xParent.is())
+ {
+ return xParent->getURL();
+ }
+
+ ::osl::MutexGuard aGuard(m_aMutex);
+ ::connectivity::checkDisposed(ReportDefinitionBase::rBHelper.bDisposed);
+ for (beans::PropertyValue const& it : m_pImpl->m_aArgs)
+ {
+ if (it.Name == "DocumentBaseURL")
+ return it.Value.get<OUString>();
+ }
+
+ return OUString();
}
uno::Reference< frame::XTitle > OReportDefinition::impl_getTitleHelper_throw()