summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2012-07-13 11:41:40 +0200
committerMiklos Vajna <vmiklos@suse.cz>2012-07-13 15:23:54 +0200
commit2e6f9dff530f16db33c52ab289efe18f96f71bb0 (patch)
tree1dea38bc4a253fc1c9204340cf0221424347e075
parent9370212be859ab828b67a486657ee399a6ff2dcd (diff)
MSWordExportBase::OutputTextNode: recognize COMMENTRANGE fieldmarks
Change-Id: I5ad751ff6573d0bac884afaafe48af33cd441b2b
-rw-r--r--sw/source/filter/ww8/attributeoutputbase.hxx6
-rw-r--r--sw/source/filter/ww8/wrtw8nds.cxx17
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 );
}