[Libreoffice-commits] core.git: sw/qa sw/source writerfilter/source
Tünde Tóth (via logerrit)
logerrit at kemper.freedesktop.org
Fri Sep 6 10:55:59 UTC 2019
sw/qa/extras/ooxmlexport/data/tdf127339.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport13.cxx | 9 +++++++++
sw/source/filter/ww8/docxattributeoutput.cxx | 3 +--
writerfilter/source/ooxml/OOXMLStreamImpl.cxx | 2 +-
4 files changed, 11 insertions(+), 3 deletions(-)
New commits:
commit 04163422234d1becac05b16c7460518277294d6b
Author: Tünde Tóth <tundeth at gmail.com>
AuthorDate: Thu Sep 5 11:49:49 2019 +0200
Commit: László Németh <nemeth at numbertext.org>
CommitDate: Fri Sep 6 12:54:57 2019 +0200
tdf#127339 DOCX import/export: fix image hyperlink to bookmark target
Images as hyperlinks didn't work with internal bookmark targets.
Change-Id: I5f3bf150f62d11837b45851e221119dcff93dcaa
Reviewed-on: https://gerrit.libreoffice.org/78639
Reviewed-by: László Németh <nemeth at numbertext.org>
Tested-by: László Németh <nemeth at numbertext.org>
diff --git a/sw/qa/extras/ooxmlexport/data/tdf127339.docx b/sw/qa/extras/ooxmlexport/data/tdf127339.docx
new file mode 100644
index 000000000000..7f0239ddb009
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf127339.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
index 77d20697e340..31abac2a3aa9 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
@@ -715,6 +715,15 @@ DECLARE_OOXMLEXPORT_TEST(testTdf127116, "tdf127116.odt")
CPPUNIT_ASSERT_EQUAL(anchor, bookmarkName);
}
+DECLARE_OOXMLEXPORT_TEST(testTdf127339, "tdf127339.docx")
+{
+ xmlDocPtr pXmlRels = parseExport("word/_rels/document.xml.rels");
+ if (!pXmlRels)
+ return;
+
+ assertXPathNoAttribute(pXmlRels, "/rels:Relationships/rels:Relationship[@Target='#bookmark']", "TargetMode");
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 4f6b492d5d33..46c44a0b8a87 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -4843,7 +4843,6 @@ void DocxAttributeOutput::FlyFrameGraphic( const SwGrfNode* pGrfNode, const Size
XFastAttributeListRef docPrAttrListRef( docPrattrList );
m_pSerializer->startElementNS( XML_wp, XML_docPr, docPrAttrListRef );
- //TODO: internal hyperlink
OUString sURL, sRelId;
if(pSdrObj)
{
@@ -4854,7 +4853,7 @@ void DocxAttributeOutput::FlyFrameGraphic( const SwGrfNode* pGrfNode, const Size
{
sRelId = GetExport().GetFilter().addRelation( m_pSerializer->getOutputStream(),
oox::getRelationship(Relationship::HYPERLINK),
- sURL, true );
+ sURL, !sURL.startsWith("#") );
m_pSerializer->singleElementNS( XML_a, XML_hlinkClick,
FSNS( XML_xmlns, XML_a ), "http://schemas.openxmlformats.org/drawingml/2006/main",
FSNS( XML_r, XML_id ), sRelId.toUtf8());
diff --git a/writerfilter/source/ooxml/OOXMLStreamImpl.cxx b/writerfilter/source/ooxml/OOXMLStreamImpl.cxx
index 417dd1acf0b2..2b773e02cf5e 100644
--- a/writerfilter/source/ooxml/OOXMLStreamImpl.cxx
+++ b/writerfilter/source/ooxml/OOXMLStreamImpl.cxx
@@ -111,7 +111,7 @@ bool OOXMLStreamImpl::lcl_getTarget(const uno::Reference<embed::XRelationshipAcc
bExternal = true;
}
// Only cache external targets, internal ones are more complex (see below)
- if (bExternal)
+ if (bExternal || aTarget.startsWith("#"))
maIdCache[aId] = aTarget;
}
}
More information about the Libreoffice-commits
mailing list