[Libreoffice-commits] core.git: sw/qa sw/source

Tünde Tóth (via logerrit) logerrit at kemper.freedesktop.org
Tue Oct 1 13:10:00 UTC 2019


 sw/qa/extras/ooxmlexport/data/tdf123628.odt  |binary
 sw/qa/extras/ooxmlexport/ooxmlexport13.cxx   |   14 ++++++++++++++
 sw/source/filter/ww8/docxattributeoutput.cxx |    5 +----
 sw/source/filter/ww8/wrtw8sty.cxx            |    4 ++++
 4 files changed, 19 insertions(+), 4 deletions(-)

New commits:
commit 0ddd856af3a9383dc2c6a9a95fd5dc4bfdfeaf7d
Author:     Tünde Tóth <tundeth at gmail.com>
AuthorDate: Mon Sep 30 10:48:25 2019 +0200
Commit:     László Németh <nemeth at numbertext.org>
CommitDate: Tue Oct 1 15:09:08 2019 +0200

    tdf#123628 DOCX export: fix color change of unvisited hyperlinks
    
    by exporting the character style name "Hyperlink" requested by Word
    instead of the previous "Internet Link" to allow unvisited/visited color
    change at opening the link in the document editor.
    
    Change-Id: Ib5e22f8f26a6f3c71543d6e5410d6cc263b83830
    Reviewed-on: https://gerrit.libreoffice.org/79855
    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/tdf123628.odt b/sw/qa/extras/ooxmlexport/data/tdf123628.odt
new file mode 100755
index 000000000000..53ce54ad2e70
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf123628.odt differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
index ec8635943f4d..07ae47ffff37 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
@@ -815,6 +815,20 @@ DECLARE_OOXMLEXPORT_TEST(testTdf127735, "internal_hyperlink_table.odt")
     CPPUNIT_ASSERT_EQUAL(anchor, bookmarkName);
 }
 
+DECLARE_OOXMLEXPORT_TEST(testTdf123628, "tdf123628.odt")
+{
+    xmlDocPtr pXmlDoc = parseExport("word/document.xml");
+    if (!pXmlDoc)
+        return;
+
+    xmlDocPtr pXmlStyles = parseExport("word/styles.xml");
+    if (!pXmlStyles)
+        return;
+
+    assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:hyperlink/w:r/w:rPr/w:rStyle", "val", "InternetLink");
+    assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='InternetLink']/w:name", "val", "Hyperlink");
+}
+
 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 79d82b72c7a6..cab57300c1da 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -7198,10 +7198,7 @@ void DocxAttributeOutput::CharHighlight( const SvxBrushItem& rHighlight )
 
 void DocxAttributeOutput::TextINetFormat( const SwFormatINetFormat& rLink )
 {
-    const SwTextINetFormat* pINetFormat = rLink.GetTextINetFormat();
-    const SwCharFormat* pCharFormat = pINetFormat->GetCharFormat();
-
-    OString aStyleId(m_rExport.m_pStyles->GetStyleId(m_rExport.GetId(pCharFormat)));
+    OString aStyleId = MSWordStyles::CreateStyleId(rLink.GetINetFormat());
 
     m_pSerializer->singleElementNS(XML_w, XML_rStyle, FSNS(XML_w, XML_val), aStyleId);
 }
diff --git a/sw/source/filter/ww8/wrtw8sty.cxx b/sw/source/filter/ww8/wrtw8sty.cxx
index c8715e0be9d3..2e67ac47e5a8 100644
--- a/sw/source/filter/ww8/wrtw8sty.cxx
+++ b/sw/source/filter/ww8/wrtw8sty.cxx
@@ -630,6 +630,10 @@ void MSWordStyles::OutputStyle( SwFormat* pFormat, sal_uInt16 nPos )
             // tdf#92335 don't export redundant DOCX import style "ListLabel"
             return;
         }
+        else if (aName.equalsIgnoreAsciiCase("Internet Link"))
+        {
+            aName = "Hyperlink";
+        }
 
         m_rExport.AttrOutput().StartStyle( aName, (bFormatColl ? STYLE_TYPE_PARA : STYLE_TYPE_CHAR),
                 nBase, nWwNext, GetWWId( *pFormat ), nPos,


More information about the Libreoffice-commits mailing list