From 0d1479cbd442c3ec3bdd20333c341ea24dcca21e Mon Sep 17 00:00:00 2001 From: Tomaž Vajngerl Date: Sat, 10 Mar 2018 00:42:20 +0900 Subject: xmloff: modify code relying on Graph.Object URL and cleanup code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Id08ee261ae06673809fcf8581e2490ecd957891f Reviewed-on: https://gerrit.libreoffice.org/51011 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl --- xmloff/source/forms/propertyexport.cxx | 39 +++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 12 deletions(-) (limited to 'xmloff/source/forms') diff --git a/xmloff/source/forms/propertyexport.cxx b/xmloff/source/forms/propertyexport.cxx index 2f611bc61f8b..df34513b94a4 100644 --- a/xmloff/source/forms/propertyexport.cxx +++ b/xmloff/source/forms/propertyexport.cxx @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -46,6 +47,7 @@ namespace xmloff { + using namespace css; using namespace ::com::sun::star::uno; using namespace ::com::sun::star::lang; using namespace ::com::sun::star::beans; @@ -394,20 +396,33 @@ namespace xmloff { DBG_CHECK_PROPERTY( _sPropertyName, OUString ); - OUString sTargetLocation = comphelper::getString(m_xProps->getPropertyValue(_sPropertyName)); - if ( !sTargetLocation.isEmpty() ) - // If this isn't a GraphicObject then GetRelativeReference - // will be called anyway ( in AddEmbeddedGraphic ) - sTargetLocation = m_rContext.getGlobalContext().AddEmbeddedGraphicObject(sTargetLocation); - AddAttribute(OAttributeMetaData::getCommonControlAttributeNamespace(_nProperty) - ,OAttributeMetaData::getCommonControlAttributeName(_nProperty) - , sTargetLocation); + Any aAny = m_xProps->getPropertyValue(_sPropertyName); - // #i110911# add xlink:type="simple" if required - if (_bAddType) - AddAttribute(XML_NAMESPACE_XLINK, token::XML_TYPE, token::XML_SIMPLE); + OUString sTargetLocation; + if (aAny.has>()) + { + auto xGraphic = aAny.get>(); + OUString sOutMimeType; + sTargetLocation = m_rContext.getGlobalContext().AddEmbeddedXGraphic(xGraphic, sOutMimeType); + } + else if (aAny.has()) + { + auto sURL = aAny.get(); + sTargetLocation = m_rContext.getGlobalContext().AddEmbeddedObject(sURL); + } - exportedProperty(_sPropertyName); + if (!sTargetLocation.isEmpty()) + { + AddAttribute(OAttributeMetaData::getCommonControlAttributeNamespace(_nProperty) + ,OAttributeMetaData::getCommonControlAttributeName(_nProperty) + , sTargetLocation); + + // #i110911# add xlink:type="simple" if required + if (_bAddType) + AddAttribute(XML_NAMESPACE_XLINK, token::XML_TYPE, token::XML_SIMPLE); + + exportedProperty(_sPropertyName); + } } void OPropertyExport::flagStyleProperties() { -- cgit