diff options
author | Justin Luth <justin_luth@sil.org> | 2018-01-04 11:25:41 +0300 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2018-01-05 09:04:58 +0100 |
commit | 94fc02ddbdd5aaef701af9963f74050aed75468d (patch) | |
tree | d8d833fdce42988b37ca6aae265bd0d193276dd9 /sw | |
parent | 9e27e5a73625d56615ab406c3ad3114431b3e507 (diff) |
tdf#104707 ooxmlexport: support RawText
fix TODO: docxattributeoutput::RawText
The only time RawText is called is in OutEEField,
an EE_FEATURE_FIELD, which always seems to be a hyperlink.
So, even though it is a very generic sounding function,
it is barely used.
There are no other "make check" examples using this
RawText function, so "proof" documents are limited to the two
bug reports that this fixes.
Confirmed in Word 2003 that the URL is active after RT.
In LibreOffice, the url is not active on import...
Change-Id: I6c385057be18ca253ebb2f20454694850a6da41f
Reviewed-on: https://gerrit.libreoffice.org/47380
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Justin Luth <justin_luth@sil.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/extras/ooxmlexport/data/tdf104707_urlComment.odt | bin | 0 -> 9942 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport4.cxx | 6 | ||||
-rw-r--r-- | sw/source/filter/ww8/docxattributeoutput.cxx | 12 | ||||
-rw-r--r-- | sw/source/filter/ww8/docxattributeoutput.hxx | 2 |
4 files changed, 18 insertions, 2 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf104707_urlComment.odt b/sw/qa/extras/ooxmlexport/data/tdf104707_urlComment.odt Binary files differnew file mode 100644 index 000000000000..4c63093fb0a2 --- /dev/null +++ b/sw/qa/extras/ooxmlexport/data/tdf104707_urlComment.odt diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx index d7f548dcb4de..f724761842a7 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx @@ -801,6 +801,12 @@ DECLARE_OOXMLEXPORT_TEST(testParagraphWithComments, "paragraphWithComments.docx" CPPUNIT_ASSERT_EQUAL( idInDocXml, idInCommentXml ); } +DECLARE_OOXMLEXPORT_TEST(testTdf104707_urlComment, "tdf104707_urlComment.odt") +{ + xmlDocPtr pXmlComm = parseExport("word/comments.xml"); + CPPUNIT_ASSERT_EQUAL( OUString("https://bugs.documentfoundation.org/show_bug.cgi?id=104707"), getXPathContent(pXmlComm,"/w:comments/w:comment/w:p/w:hyperlink/w:r/w:t") ); +} + DECLARE_OOXMLEXPORT_TEST(testOLEObjectinHeader, "2129393649.docx") { // fdo#76015 : Document contains oleobject in header xml. diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 4c160c5376eb..e4c888e4fb5a 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -1291,6 +1291,12 @@ void DocxAttributeOutput::EndRun(const SwTextNode* pNode, sal_Int32 nPos, bool / } m_pSerializer->mergeTopMarks(Tag_EndRun_1, sax_fastparser::MergeMarks::PREPEND); // merges with "postponed run start", see above + if ( !m_sRawText.isEmpty() ) + { + RunText( m_sRawText ); + m_sRawText.clear(); + } + // write the run start + the run content m_pSerializer->mergeTopMarks(Tag_StartRun_2); // merges the "actual run start" // append the actual run end @@ -2486,9 +2492,11 @@ void DocxAttributeOutput::RunText( const OUString& rText, rtl_TextEncoding /*eCh impl_WriteRunText( m_pSerializer, nTextToken, pBegin, pEnd, false ); } -void DocxAttributeOutput::RawText(const OUString& /*rText*/, rtl_TextEncoding /*eCharSet*/) +void DocxAttributeOutput::RawText(const OUString& rText, rtl_TextEncoding /*eCharSet*/) { - SAL_INFO("sw.ww8", "TODO DocxAttributeOutput::RawText( const String& rText, bool bForceUnicode, rtl_TextEncoding eCharSet )" ); + assert (m_pHyperlinkAttrList.is() && "jluth is at mail dot comand wants example documents that use RawText/EEField"); + if ( m_pHyperlinkAttrList.is() ) + m_sRawText = rText; } void DocxAttributeOutput::StartRuby( const SwTextNode& rNode, sal_Int32 nPos, const SwFormatRuby& rRuby ) diff --git a/sw/source/filter/ww8/docxattributeoutput.hxx b/sw/source/filter/ww8/docxattributeoutput.hxx index c61b8b3ac6d7..7e77ba90648e 100644 --- a/sw/source/filter/ww8/docxattributeoutput.hxx +++ b/sw/source/filter/ww8/docxattributeoutput.hxx @@ -788,6 +788,8 @@ private: sal_Int32 m_nNextBookmarkId; sal_Int32 m_nNextAnnotationMarkId; + OUString m_sRawText; + /// Bookmarks to output std::vector<OUString> m_rBookmarksStart; std::vector<OUString> m_rBookmarksEnd; |