writerfilter/source/rtftok/rtfdocumentimpl.cxx | 52 +++++++++++++++++++++++-- writerfilter/source/rtftok/rtfdocumentimpl.hxx | 8 +++ 2 files changed, 55 insertions(+), 5 deletions(-)
New commits: commit c7d590293eae63bcd86bf48f58b3d563b8883511 Author: Miklos Vajna <vmik...@suse.cz> Date: Mon Jul 23 18:09:32 2012 +0200 implement import of RTF_{MD,MDPR,MBEGCHR,MENDCHR} Change-Id: Ie671977d523e1fb7142f62ca2d8d47e65082d3fd diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 8088406..36b3fa6 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -952,6 +952,8 @@ void RTFDocumentImpl::text(OUString& rString) case DESTINATION_ATNID: case DESTINATION_MR: case DESTINATION_MCHR: + case DESTINATION_MBEGCHR: + case DESTINATION_MENDCHR: m_aStates.top().aDestinationText.append(rString); break; case DESTINATION_EQINSTRUCTION: @@ -1449,10 +1451,24 @@ int RTFDocumentImpl::dispatchDestination(RTFKeyword nKeyword) case RTF_MCHR: m_aStates.top().nDestinationState = DESTINATION_MCHR; break; + case RTF_MBEGCHR: + m_aStates.top().nDestinationState = DESTINATION_MBEGCHR; + break; + case RTF_MENDCHR: + m_aStates.top().nDestinationState = DESTINATION_MENDCHR; + break; case RTF_ME: m_aMathBuffer.appendOpeningTag(M_TOKEN(e)); m_aStates.top().nDestinationState = DESTINATION_ME; break; + case RTF_MD: + m_aMathBuffer.appendOpeningTag(M_TOKEN(d)); + m_aStates.top().nDestinationState = DESTINATION_MD; + break; + case RTF_MDPR: + m_aMathBuffer.appendOpeningTag(M_TOKEN(dPr)); + m_aStates.top().nDestinationState = DESTINATION_MDPR; + break; default: SAL_INFO("writerfilter", OSL_THIS_FUNC << ": TODO handle destination '" << lcl_RtfToString(nKeyword) << "'"); // Make sure we skip destinations (even without \*) till we don't handle them @@ -3550,12 +3566,22 @@ int RTFDocumentImpl::popState() m_aMathBuffer.appendClosingTag(M_TOKEN(acc)); else if (m_aStates.top().nDestinationState == DESTINATION_MACCPR) m_aMathBuffer.appendClosingTag(M_TOKEN(accPr)); - else if (m_aStates.top().nDestinationState == DESTINATION_MCHR) + else if (m_aStates.top().nDestinationState == DESTINATION_MCHR || + m_aStates.top().nDestinationState == DESTINATION_MBEGCHR || + m_aStates.top().nDestinationState == DESTINATION_MENDCHR) { oox::formulaimport::XmlStream::AttributeList aAttribs; aAttribs[M_TOKEN(val)] = m_aStates.top().aDestinationText.makeStringAndClear(); - m_aMathBuffer.appendOpeningTag(M_TOKEN(chr), aAttribs); - m_aMathBuffer.appendClosingTag(M_TOKEN(chr)); + sal_Int32 nToken = 0; + switch (m_aStates.top().nDestinationState) + { + case DESTINATION_MCHR: nToken = M_TOKEN(chr); break; + case DESTINATION_MBEGCHR: nToken = M_TOKEN(begChr); break; + case DESTINATION_MENDCHR: nToken = M_TOKEN(endChr); break; + default: break; + } + m_aMathBuffer.appendOpeningTag(nToken, aAttribs); + m_aMathBuffer.appendClosingTag(nToken); } else if (m_aStates.top().nDestinationState == DESTINATION_ME) m_aMathBuffer.appendClosingTag(M_TOKEN(e)); @@ -3563,6 +3589,10 @@ int RTFDocumentImpl::popState() m_aMathBuffer.appendClosingTag(M_TOKEN(bar)); else if (m_aStates.top().nDestinationState == DESTINATION_MBARPR) m_aMathBuffer.appendClosingTag(M_TOKEN(barPr)); + else if (m_aStates.top().nDestinationState == DESTINATION_MD) + m_aMathBuffer.appendClosingTag(M_TOKEN(d)); + else if (m_aStates.top().nDestinationState == DESTINATION_MDPR) + m_aMathBuffer.appendClosingTag(M_TOKEN(dPr)); // See if we need to end a track change RTFValue::Pointer_t pTrackchange = m_aStates.top().aCharacterSprms.find(NS_ooxml::LN_trackchange); diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index 6b700c9..9a7ffff 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -132,7 +132,11 @@ namespace writerfilter { DESTINATION_MCHR, DESTINATION_ME, DESTINATION_MBAR, - DESTINATION_MBARPR + DESTINATION_MBARPR, + DESTINATION_MD, + DESTINATION_MDPR, + DESTINATION_MBEGCHR, + DESTINATION_MENDCHR }; enum RTFBorderState commit 43e4ae79f2c09e0fe596a7dc96eb9f2498439490 Author: Miklos Vajna <vmik...@suse.cz> Date: Mon Jul 23 17:40:56 2012 +0200 implement RTF_MBAR{,PR} Change-Id: Id5acca5c734f69797d5c19fdcfc0ccb4717127f6 diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 3581f30..8088406 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -1400,6 +1400,7 @@ int RTFDocumentImpl::dispatchDestination(RTFKeyword nKeyword) m_aStates.top().nDestinationState = DESTINATION_ATNID; break; case RTF_MMATH: + case RTF_MOMATHPARA: // Nothing to do here (just enter the destination) till RTF_MMATHPR is implemented. break; case RTF_MOMATH: @@ -1437,6 +1438,14 @@ int RTFDocumentImpl::dispatchDestination(RTFKeyword nKeyword) m_aMathBuffer.appendOpeningTag(M_TOKEN(accPr)); m_aStates.top().nDestinationState = DESTINATION_MACCPR; break; + case RTF_MBAR: + m_aMathBuffer.appendOpeningTag(M_TOKEN(bar)); + m_aStates.top().nDestinationState = DESTINATION_MBAR; + break; + case RTF_MBARPR: + m_aMathBuffer.appendOpeningTag(M_TOKEN(barPr)); + m_aStates.top().nDestinationState = DESTINATION_MBARPR; + break; case RTF_MCHR: m_aStates.top().nDestinationState = DESTINATION_MCHR; break; @@ -3099,7 +3108,8 @@ int RTFDocumentImpl::pushState() (m_aStates.top().nDestinationState == DESTINATION_FIELDINSTRUCTION && !m_bEq) || m_aStates.top().nDestinationState == DESTINATION_MOMATH || m_aStates.top().nDestinationState == DESTINATION_MNUM || - m_aStates.top().nDestinationState == DESTINATION_MDEN) + m_aStates.top().nDestinationState == DESTINATION_MDEN || + m_aStates.top().nDestinationState == DESTINATION_ME) m_aStates.top().nDestinationState = DESTINATION_NORMAL; else if (m_aStates.top().nDestinationState == DESTINATION_FIELDINSTRUCTION && m_bEq) m_aStates.top().nDestinationState = DESTINATION_EQINSTRUCTION; @@ -3549,6 +3559,10 @@ int RTFDocumentImpl::popState() } else if (m_aStates.top().nDestinationState == DESTINATION_ME) m_aMathBuffer.appendClosingTag(M_TOKEN(e)); + else if (m_aStates.top().nDestinationState == DESTINATION_MBAR) + m_aMathBuffer.appendClosingTag(M_TOKEN(bar)); + else if (m_aStates.top().nDestinationState == DESTINATION_MBARPR) + m_aMathBuffer.appendClosingTag(M_TOKEN(barPr)); // See if we need to end a track change RTFValue::Pointer_t pTrackchange = m_aStates.top().aCharacterSprms.find(NS_ooxml::LN_trackchange); diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index dd98a28..6b700c9 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -130,7 +130,9 @@ namespace writerfilter { DESTINATION_MACC, DESTINATION_MACCPR, DESTINATION_MCHR, - DESTINATION_ME + DESTINATION_ME, + DESTINATION_MBAR, + DESTINATION_MBARPR }; enum RTFBorderState _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits