sw/source/core/doc/DocumentContentOperationsManager.cxx | 4 ++- sw/source/core/inc/UndoRedline.hxx | 5 ++++ sw/source/core/undo/unredln.cxx | 18 ++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-)
New commits: commit fe25f95c3de542f15f6043c85f7385cd7569f237 Author: Rosemary Sebastian <rosemary.s...@gmail.com> Date: Mon Jul 3 17:18:39 2017 +0530 tdf#107340 - Incorrect undo label with Track Changes set Override the GetRewriter() function for the class SwUndoRedlineDelete Change-Id: I4f7080d9d8eb79757e3e915b51f157bee29e9334 Reviewed-on: https://gerrit.libreoffice.org/39472 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx index f934965cb3b9..362d6c8efc02 100644 --- a/sw/source/core/doc/DocumentContentOperationsManager.cxx +++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx @@ -3556,8 +3556,10 @@ bool DocumentContentOperationsManager::DeleteAndJoinWithRedlineImpl( SwPaM & rPa m_rDoc.getIDocumentRedlineAccess().SetRedlineFlags( RedlineFlags::On | RedlineFlags::ShowInsert | RedlineFlags::ShowDelete ); - m_rDoc.GetIDocumentUndoRedo().StartUndo( SwUndoId::DELETE, nullptr ); pUndo = new SwUndoRedlineDelete( rPam, SwUndoId::DELETE ); + const SwRewriter aRewriter = pUndo->GetRewriter(); + const SwRewriter* const pRewriter = &aRewriter; + m_rDoc.GetIDocumentUndoRedo().StartUndo( SwUndoId::DELETE, pRewriter ); m_rDoc.GetIDocumentUndoRedo().AppendUndo( pUndo ); } diff --git a/sw/source/core/inc/UndoRedline.hxx b/sw/source/core/inc/UndoRedline.hxx index 8a62b33937a5..8cf4e63f3f57 100644 --- a/sw/source/core/inc/UndoRedline.hxx +++ b/sw/source/core/inc/UndoRedline.hxx @@ -56,17 +56,22 @@ class SwUndoRedlineDelete : public SwUndoRedline bool bIsDelim : 1; bool bIsBackspace : 1; + OUString m_sRedlineText; + virtual void UndoRedlineImpl(SwDoc & rDoc, SwPaM & rPam) override; virtual void RedoRedlineImpl(SwDoc & rDoc, SwPaM & rPam) override; public: SwUndoRedlineDelete( const SwPaM& rRange, SwUndoId nUserId ); + virtual SwRewriter GetRewriter() const override; bool CanGrouping( const SwUndoRedlineDelete& rPrev ); // SwUndoTableCpyTable needs this information: long NodeDiff() const { return nSttNode - nEndNode; } sal_Int32 ContentStart() const { return nSttContent; } + + void SetRedlineText(const OUString & rText); }; class SwUndoRedlineSort : public SwUndoRedline diff --git a/sw/source/core/undo/unredln.cxx b/sw/source/core/undo/unredln.cxx index 2f9cd4f49b87..2f08ed55d893 100644 --- a/sw/source/core/undo/unredln.cxx +++ b/sw/source/core/undo/unredln.cxx @@ -27,6 +27,7 @@ #include <ndtxt.hxx> #include <UndoCore.hxx> #include <UndoDelete.hxx> +#include <comcore.hrc> #include <rolbck.hxx> #include <redline.hxx> #include <docary.hxx> @@ -146,6 +147,7 @@ SwUndoRedlineDelete::SwUndoRedlineDelete( const SwPaM& rRange, SwUndoId nUsrId ) bCanGroup( false ), bIsDelim( false ), bIsBackspace( false ) { const SwTextNode* pTNd; + SetRedlineText(rRange.GetText()); if( SwUndoId::DELETE == mnUserId && nSttNode == nEndNode && nSttContent + 1 == nEndContent && nullptr != (pTNd = rRange.GetNode().GetTextNode()) ) @@ -163,6 +165,22 @@ SwUndoRedlineDelete::SwUndoRedlineDelete( const SwPaM& rRange, SwUndoId nUsrId ) bCacheComment = false; } +SwRewriter SwUndoRedlineDelete::GetRewriter() const +{ + SwRewriter aResult; + OUString aStr = m_sRedlineText; + aStr = DenoteSpecialCharacters(aStr); + aStr = ShortenString(aStr, nUndoStringLength, SwResId(STR_LDOTS)); + aResult.AddRule(UndoArg1, aStr); + return aResult; +} + + +void SwUndoRedlineDelete::SetRedlineText(const OUString & rText) +{ + m_sRedlineText = rText; +} + void SwUndoRedlineDelete::UndoRedlineImpl(SwDoc & rDoc, SwPaM & rPam) { rDoc.getIDocumentRedlineAccess().DeleteRedline(rPam, true, USHRT_MAX); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits