diff options
author | László Németh <nemeth@numbertext.org> | 2022-07-07 13:04:45 +0200 |
---|---|---|
committer | László Németh <nemeth@numbertext.org> | 2022-07-08 12:07:18 +0200 |
commit | 626be09128b9bd360ab05aa6eea02c826ff6ec77 (patch) | |
tree | b0076ef0f146a4de4b43c542ed6748a4f8f1131e /writerfilter | |
parent | c723398b879bc0733642854913470bcb6275ae17 (diff) |
tdf#149711 sw_redlinenum DOCX: import moveTo paragraph mark
It was imported as an old paragraph with new content,
resulting that e.g. rejecting a moved list item left
an empty list item instead of removing the moved list
item completely.
Follow-up to commit 80694a8fcfeb86ed69425ab6954b353b9a0ae854
"tdf#149708 sw_redlinenum DOCX export: track inserted list items"
and commit d32d9a2b3c5e3963f4a18f6c7bbf50fab2e9b2be
"tdf#123460 DOCX track changes: moveFrom completely".
Change-Id: Ia1997aeffeb45f89bb738c6faa95fb2efc54fd7e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136886
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit ccd0cb2265c337c70c565f0e04cdf4019361d18c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136867
Tested-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 19 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.hxx | 4 |
2 files changed, 12 insertions, 11 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index fd1c79f66667..9543b916b9a6 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -2734,10 +2734,10 @@ void DomainMapper_Impl::appendTextPortion( const OUString& rString, const Proper } } - // reset moveFrom data of non-terminating runs of the paragraph - if ( m_pParaMarkerRedlineMoveFrom ) + // reset moveFrom/moveTo data of non-terminating runs of the paragraph + if ( m_pParaMarkerRedlineMove ) { - m_pParaMarkerRedlineMoveFrom.clear(); + m_pParaMarkerRedlineMove.clear(); } CheckRedline( xTextRange ); m_bParaChanged = true; @@ -3297,13 +3297,14 @@ void DomainMapper_Impl::CreateRedline(uno::Reference<text::XTextRange> const& xR break; case XML_moveTo: bRedlineMoved = true; + m_pParaMarkerRedlineMove = pRedline.get(); [[fallthrough]]; case XML_ins: sType = getPropertyName( PROP_INSERT ); break; case XML_moveFrom: bRedlineMoved = true; - m_pParaMarkerRedlineMoveFrom = pRedline.get(); + m_pParaMarkerRedlineMove = pRedline.get(); [[fallthrough]]; case XML_del: sType = getPropertyName( PROP_DELETE ); @@ -3372,14 +3373,14 @@ void DomainMapper_Impl::CheckParaMarkerRedline( uno::Reference< text::XTextRange m_currentRedline.clear(); } } - else if ( m_pParaMarkerRedlineMoveFrom ) + else if ( m_pParaMarkerRedlineMove ) { - // terminating moveFrom redline removes also the paragraph mark - CreateRedline( xRange, m_pParaMarkerRedlineMoveFrom ); + // terminating moveFrom/moveTo redline removes also the paragraph mark + CreateRedline( xRange, m_pParaMarkerRedlineMove ); } - if ( m_pParaMarkerRedlineMoveFrom ) + if ( m_pParaMarkerRedlineMove ) { - m_pParaMarkerRedlineMoveFrom.clear(); + m_pParaMarkerRedlineMove.clear(); } } diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx index c0a41b0328cf..4072a646840b 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx @@ -576,8 +576,8 @@ private: RedlineParamsPtr m_previousRedline; RedlineParamsPtr m_pParaMarkerRedline; bool m_bIsParaMarkerChange; - // redline data of the terminating run, if it's a moveFrom deletion - RedlineParamsPtr m_pParaMarkerRedlineMoveFrom; + // redline data of the terminating run, if it's a moveFrom deletion or a moveTo insertion + RedlineParamsPtr m_pParaMarkerRedlineMove; // This is for removing workaround (double ZWSPs around the anchoring point) for track // changed images anchored *to* character, if it's followed by a redline text run immediately. // (In that case, the image is part of a tracked text range, no need for the dummy |