diff options
author | Tünde Tóth <tundeth@gmail.com> | 2019-05-09 11:00:36 +0200 |
---|---|---|
committer | László Németh <nemeth@numbertext.org> | 2019-05-10 13:37:01 +0200 |
commit | 5ddaaa0c86a9c7851d2277d56b379a3412b1fff3 (patch) | |
tree | f8741fd07300d96ee0011239f4aea6053edb03c6 /oox | |
parent | e896fc4ddf822c665a42fa5d314bb1dfd92de1a2 (diff) |
tdf#125173 fix hyperlink inserted to text box
Hyperlink inserted to text box lost after export.
Change-Id: I796e54339292cb4a5e98de1ead6558d66587d353
Reviewed-on: https://gerrit.libreoffice.org/72033
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/export/shapes.cxx | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx index 7302682b02b0..3cb71aeacf8c 100644 --- a/oox/source/export/shapes.cxx +++ b/oox/source/export/shapes.cxx @@ -1793,14 +1793,30 @@ ShapeExport& ShapeExport::WriteTableShape( const Reference< XShape >& xShape ) ShapeExport& ShapeExport::WriteTextShape( const Reference< XShape >& xShape ) { FSHelperPtr pFS = GetFS(); - + Reference<XPropertySet> xShapeProps(xShape, UNO_QUERY); pFS->startElementNS(mnXmlNamespace, (GetDocumentType() != DOCUMENT_DOCX ? XML_sp : XML_wsp)); // non visual shape properties if (GetDocumentType() != DOCUMENT_DOCX) { pFS->startElementNS(mnXmlNamespace, XML_nvSpPr); - WriteNonVisualDrawingProperties( xShape, IDS( TextShape ) ); + pFS->startElementNS(mnXmlNamespace, XML_cNvPr, + XML_id, OString::number(GetNewShapeID(xShape)), + XML_name, IDS(TextShape)); + OUString sURL; + if (GetProperty(xShapeProps, "URL")) + mAny >>= sURL; + + if (!sURL.isEmpty()) + { + OUString sRelId = mpFB->addRelation(mpFS->getOutputStream(), + oox::getRelationship(Relationship::HYPERLINK), + mpURLTransformer->getTransformedString(sURL), + mpURLTransformer->isExternalURL(sURL)); + + mpFS->singleElementNS(XML_a, XML_hlinkClick, FSNS(XML_r, XML_id), sRelId.toUtf8()); + } + pFS->endElementNS(mnXmlNamespace, XML_cNvPr); } pFS->singleElementNS(mnXmlNamespace, XML_cNvSpPr, XML_txBox, "1"); if (GetDocumentType() != DOCUMENT_DOCX) |