[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - xmloff/source
Michael Stahl
mstahl at redhat.com
Tue Aug 9 12:20:22 UTC 2016
xmloff/source/forms/propertyimport.cxx | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
New commits:
commit b7cb7443631d649d5d93957e4bd9685444157412
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue Jul 19 14:50:18 2016 +0200
xmloff: forms import: convert relative xlink:href to absolute
There is currently only one place in the forms directory that converts
relative hyperlinks to absolute on import, in
OURLReferenceImport::handleAttribute(), but there are other elements
that have xlink:href attribute as well, such as form:form.
The export of form:form xlink:href does convert absolute to relative,
in exportTargetLocationAttribute(), but if the model URL is actually
already relative it will be converted to absolute instead, oddly enough.
This leads to different absolute href attributes, depending on the
directory where the file is exported, as can be observed with e.g.
ooo95698-1.odt and fdo40634-2.odt.
Let's apply a big hammer and make all "href" attributes absolute on
import.
Change-Id: I39d05707f3a8a899c7bbde8d9c0e2bc006c39e12
(cherry picked from commit c49b87ac140f3f2c79c8211f38cd86118022bdce)
Reviewed-on: https://gerrit.libreoffice.org/27901
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
diff --git a/xmloff/source/forms/propertyimport.cxx b/xmloff/source/forms/propertyimport.cxx
index fa92c1c..33ac8ac 100644
--- a/xmloff/source/forms/propertyimport.cxx
+++ b/xmloff/source/forms/propertyimport.cxx
@@ -323,7 +323,16 @@ bool OPropertyImport::handleAttribute(sal_uInt16 /*_nNamespaceKey*/, const OUStr
aNewValue.Name = pProperty->sPropertyName;
// convert the value string into the target type
- aNewValue.Value = PropertyConversion::convertString(pProperty->aPropertyType, _rValue, pProperty->pEnumMap, pProperty->bInverseSemantics);
+ if (token::IsXMLToken(_rLocalName, token::XML_HREF))
+ {
+ aNewValue.Value <<= m_rContext.getGlobalContext().GetAbsoluteReference(_rValue);
+ }
+ else
+ {
+ aNewValue.Value = PropertyConversion::convertString(
+ pProperty->aPropertyType, _rValue, pProperty->pEnumMap,
+ pProperty->bInverseSemantics);
+ }
implPushBackPropertyValue( aNewValue );
return true;
}
More information about the Libreoffice-commits
mailing list