diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2012-07-13 11:41:40 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2012-07-13 15:23:54 +0200 |
commit | 2e6f9dff530f16db33c52ab289efe18f96f71bb0 (patch) | |
tree | 1dea38bc4a253fc1c9204340cf0221424347e075 | |
parent | 9370212be859ab828b67a486657ee399a6ff2dcd (diff) |
MSWordExportBase::OutputTextNode: recognize COMMENTRANGE fieldmarks
Change-Id: I5ad751ff6573d0bac884afaafe48af33cd441b2b
-rw-r--r-- | sw/source/filter/ww8/attributeoutputbase.hxx | 6 | ||||
-rw-r--r-- | sw/source/filter/ww8/wrtw8nds.cxx | 17 |
2 files changed, 20 insertions, 3 deletions
diff --git a/sw/source/filter/ww8/attributeoutputbase.hxx b/sw/source/filter/ww8/attributeoutputbase.hxx index 9d6daf4f78e4..0286004cd5c3 100644 --- a/sw/source/filter/ww8/attributeoutputbase.hxx +++ b/sw/source/filter/ww8/attributeoutputbase.hxx @@ -176,6 +176,12 @@ public: /// for docx w:commentReference virtual void WritePostitFieldReference() {}; + /// for docx w:commentRangeStart + virtual void WritePostitFieldStart() {}; + + /// for docx w:commentRangeEnd + virtual void WritePostitFieldEnd() {}; + /// Output text (inside a run). virtual void RunText( const String& rText, rtl_TextEncoding eCharSet ) = 0; diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index a31f2f0dd8b1..498f65aa714b 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -1862,12 +1862,19 @@ void MSWordExportBase::OutputTextNode( const SwTxtNode& rNode ) sCode = sOUCode; } } - OutputField( NULL, eFieldId, sCode, WRITEFIELD_START | WRITEFIELD_CMD_START ); + + bool bCommentRange = pFieldmark && pFieldmark->GetFieldname() == ODF_COMMENTRANGE; + if (bCommentRange) + AttrOutput().WritePostitFieldStart(); + else + OutputField( NULL, eFieldId, sCode, WRITEFIELD_START | WRITEFIELD_CMD_START ); + if ( pFieldmark && pFieldmark->GetFieldname( ) == ODF_FORMTEXT ) WriteFormData( *pFieldmark ); else if ( pFieldmark && pFieldmark->GetFieldname( ) == ODF_HYPERLINK ) WriteHyperlinkData( *pFieldmark ); - OutputField( NULL, lcl_getFieldId( pFieldmark ), String(), WRITEFIELD_CMD_END ); + if (!bCommentRange) + OutputField( NULL, lcl_getFieldId( pFieldmark ), String(), WRITEFIELD_CMD_END ); if ( pFieldmark && pFieldmark->GetFieldname() == ODF_UNHANDLED ) { @@ -1902,7 +1909,11 @@ void MSWordExportBase::OutputTextNode( const SwTxtNode& rNode ) } } - OutputField( NULL, eFieldId, String(), WRITEFIELD_CLOSE ); + if (pFieldmark && pFieldmark->GetFieldname() == ODF_COMMENTRANGE) + AttrOutput().WritePostitFieldEnd(); + else + OutputField( NULL, eFieldId, String(), WRITEFIELD_CLOSE ); + if ( pFieldmark && pFieldmark->GetFieldname() == ODF_FORMTEXT ) AppendBookmark( pFieldmark->GetName(), false ); } |