summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2022-07-07 13:04:45 +0200
committerLászló Németh <nemeth@numbertext.org>2022-07-08 12:07:18 +0200
commit626be09128b9bd360ab05aa6eea02c826ff6ec77 (patch)
treeb0076ef0f146a4de4b43c542ed6748a4f8f1131e /writerfilter
parentc723398b879bc0733642854913470bcb6275ae17 (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.cxx19
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.hxx4
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