From 334989a3b87eba4882bd6b67b84c443816b361c3 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Fri, 27 Jul 2012 17:40:39 +0200 Subject: Related: fdo#36089 improve import of EQ field in writerfilter This moves the FIELD_EQ parsing where it belongs + improves it, so a custom "lower by" value is handled on import. Change-Id: I0459042d7a610c397ce90ec3dba5ff49ce9ef60f --- writerfilter/source/rtftok/rtfdocumentimpl.cxx | 22 ++++------------------ writerfilter/source/rtftok/rtfdocumentimpl.hxx | 2 -- 2 files changed, 4 insertions(+), 20 deletions(-) (limited to 'writerfilter/source/rtftok') diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index b03a7bc5d415..e6758f1f9610 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -260,7 +260,6 @@ RTFDocumentImpl::RTFDocumentImpl(uno::Reference const& x m_nCurrentFontIndex(0), m_aStyleTableEntries(), m_nCurrentStyleIndex(0), - m_bEq(false), m_bFormField(false), m_bIsInFrame(false), m_aUnicodeBuffer(), @@ -989,10 +988,6 @@ void RTFDocumentImpl::text(OUString& rString) case DESTINATION_MGROW: m_aStates.top().aDestinationText.append(rString); break; - case DESTINATION_EQINSTRUCTION: - if ( rString.getLength() > 3 && rString.copy(0, 2) == "do" && rString.copy(2).toInt32() > 0 ) - dispatchFlag(RTF_SUB); - break; default: bRet = false; break; } if (bRet) @@ -1134,11 +1129,7 @@ int RTFDocumentImpl::dispatchDestination(RTFKeyword nKeyword) if (aBuf.toString().indexOf(OString("FORM")) != -1 ) m_bFormField = true; - // EQ fields are not really fields in fact. - if (aBuf.toString().equals("EQ")) - m_bEq = true; - else - singleChar(0x13); + singleChar(0x13); m_aStates.top().nDestinationState = DESTINATION_FIELDINSTRUCTION; } break; @@ -3160,7 +3151,6 @@ int RTFDocumentImpl::pushState() case DESTINATION_FIELDRESULT: case DESTINATION_SHAPETEXT: case DESTINATION_FORMFIELD: - case DESTINATION_EQINSTRUCTION: m_aStates.top().nDestinationState = DESTINATION_NORMAL; break; case DESTINATION_MNUM: @@ -3174,7 +3164,7 @@ int RTFDocumentImpl::pushState() m_aStates.top().nDestinationState = DESTINATION_MR; break; case DESTINATION_FIELDINSTRUCTION: - m_aStates.top().nDestinationState = !m_bEq ? DESTINATION_NORMAL : DESTINATION_EQINSTRUCTION; + m_aStates.top().nDestinationState = DESTINATION_NORMAL; break; case DESTINATION_REVISIONTABLE: m_aStates.top().nDestinationState = DESTINATION_REVISIONENTRY; break; case DESTINATION_MOMATH: m_aStates.top().nDestinationState = DESTINATION_MR; break; @@ -3285,14 +3275,10 @@ int RTFDocumentImpl::popState() m_aFormfieldAttributes.clear(); m_aFormfieldSprms.clear(); } - if (!m_bEq) - singleChar(0x14); + singleChar(0x14); break; case DESTINATION_FIELDRESULT: - if (!m_bEq) - singleChar(0x15); - else - m_bEq = false; + singleChar(0x15); break; case DESTINATION_LEVELTEXT: { diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index f2532e7e7a1a..1de7c6e36c39 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -65,7 +65,6 @@ namespace writerfilter { DESTINATION_COLORTABLE, DESTINATION_STYLESHEET, DESTINATION_STYLEENTRY, - DESTINATION_EQINSTRUCTION, DESTINATION_FIELD, DESTINATION_FIELDINSTRUCTION, DESTINATION_FIELDRESULT, @@ -563,7 +562,6 @@ namespace writerfilter { RTFReferenceTable::Entries_t m_aStyleTableEntries; int m_nCurrentStyleIndex; - bool m_bEq; bool m_bFormField; /// If a frame start token is already sent to dmapper (nesting them is not OK). bool m_bIsInFrame; -- cgit