writerfilter/inc/dmapper/DomainMapper.hxx | 2 writerfilter/source/dmapper/DomainMapper.cxx | 57 +++++++++++++++++---------- 2 files changed, 39 insertions(+), 20 deletions(-)
New commits: commit af84f04c10724fdeecfc25de46fa1d54cf905bd2 Author: Adam Co <[email protected]> Date: Mon Feb 3 14:13:37 2014 +0200 Refactor some code for handling redline in DOCX importer Change-Id: Id5d0814c1ebbcd85507d11cf562d394a748773a6 Reviewed-on: https://gerrit.libreoffice.org/7807 Reviewed-by: Miklos Vajna <[email protected]> Tested-by: Miklos Vajna <[email protected]> diff --git a/writerfilter/inc/dmapper/DomainMapper.hxx b/writerfilter/inc/dmapper/DomainMapper.hxx index f7d6fcb..ce30d69 100644 --- a/writerfilter/inc/dmapper/DomainMapper.hxx +++ b/writerfilter/inc/dmapper/DomainMapper.hxx @@ -129,6 +129,8 @@ public: uno::Sequence<beans::PropertyValue> GetThemeFontLangProperties() const; + void HandleRedline( Sprm& rSprm ); + private: // Stream virtual void lcl_startSectionGroup(); diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index bd8e6fd..5751e33 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -2224,26 +2224,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType case NS_ooxml::LN_trackchange: case NS_ooxml::LN_EG_RPrContent_rPrChange: { - m_pImpl->AddNewRedline( ); - - if (nSprmId == NS_ooxml::LN_CT_PPr_pPrChange) - { - m_pImpl->SetCurrentRedlineToken( ooxml::OOXML_ParagraphFormat ); - } - - resolveSprmProps(*this, rSprm ); - // now the properties author, date and id should be available - sal_Int32 nToken = m_pImpl->GetCurrentRedlineToken(); - switch( nToken & 0xffff ) - { - case ooxml::OOXML_mod : - case ooxml::OOXML_ins : - case ooxml::OOXML_del : - case ooxml::OOXML_ParagraphFormat : - break; - default: OSL_FAIL( "redline token other than mod, ins or del" ); - } - m_pImpl->EndParaMarkerChange( ); + HandleRedline( rSprm ); } break; case NS_ooxml::LN_endtrackchange: @@ -3190,6 +3171,42 @@ uno::Sequence<beans::PropertyValue> DomainMapper::GetThemeFontLangProperties() c return m_pImpl->GetSettingsTable()->GetThemeFontLangProperties(); } +void DomainMapper::HandleRedline( Sprm& rSprm ) +{ + sal_uInt32 nSprmId = rSprm.getId(); + + m_pImpl->AddNewRedline( ); + + if (nSprmId == NS_ooxml::LN_CT_PPr_pPrChange) + { + m_pImpl->SetCurrentRedlineToken( ooxml::OOXML_ParagraphFormat ); + } + else if (nSprmId == NS_ooxml::LN_CT_TrPr_ins) + { + m_pImpl->SetCurrentRedlineToken( ooxml::OOXML_tableRowInsert ); + } + else if (nSprmId == NS_ooxml::LN_CT_TrPr_del) + { + m_pImpl->SetCurrentRedlineToken( ooxml::OOXML_tableRowDelete ); + } + + resolveSprmProps(*this, rSprm ); + // now the properties author, date and id should be available + sal_Int32 nToken = m_pImpl->GetCurrentRedlineToken(); + switch( nToken & 0xffff ) + { + case ooxml::OOXML_mod : + case ooxml::OOXML_ins : + case ooxml::OOXML_del : + case ooxml::OOXML_ParagraphFormat : + case ooxml::OOXML_tableRowInsert: + case ooxml::OOXML_tableRowDelete: + break; + default: OSL_FAIL( "redline token other than mod, ins, del or table row" ); break; + } + m_pImpl->EndParaMarkerChange( ); +} + } //namespace dmapper } //namespace writerfilter _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
