summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2020-07-27 16:33:06 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2020-07-28 22:08:10 +0200
commit3c12f166f96f5f6472457b7fa63effb6a6c6d847 (patch)
tree75e517ce69559857219ff411265d317144986106
parent7e1deb190dcac5cf169e55989769551b326d454e (diff)
Revert "tdf#132944 sw_redlinehide: delete of insert redline"
This reverts commit ad0351b84926075297fb74abbe9b31a0455782af. It turns out that this conflicts with commit 14e87a4b15d31a34e6053f6194688f3aa23af991 "tdf#133967 sw_redlinehide: fix redline deletion of table containing redlines" but oddly enough that fix fixes tdf#132944 as well, but both commmits combined don't work e.g. on node 1083/1084 in the tdf#133967 bugdoc we got no text frame because SwUndoDelete has deleted it, but since it's not merged it would be left alone by the new fix anyway. This fix was quite hacky anyway, so just revert it. Change-Id: Id17f3575c742b8761a8458914a28ae8047360fff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99522 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 4c9b292bb4ff3ad516dad37e2e0dd0ac8bbb4aa0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99580 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
-rw-r--r--sw/source/core/doc/DocumentRedlineManager.cxx22
-rw-r--r--sw/source/core/inc/UndoDelete.hxx2
-rw-r--r--sw/source/core/undo/undel.cxx26
3 files changed, 3 insertions, 47 deletions
diff --git a/sw/source/core/doc/DocumentRedlineManager.cxx b/sw/source/core/doc/DocumentRedlineManager.cxx
index c0e1aa6add8c..6996ad067aef 100644
--- a/sw/source/core/doc/DocumentRedlineManager.cxx
+++ b/sw/source/core/doc/DocumentRedlineManager.cxx
@@ -25,8 +25,6 @@
#include <fmtfld.hxx>
#include <frmtool.hxx>
#include <IDocumentUndoRedo.hxx>
-#include <UndoManager.hxx>
-#include <UndoDelete.hxx>
#include <IDocumentFieldsAccess.hxx>
#include <IDocumentLayoutAccess.hxx>
#include <IDocumentState.hxx>
@@ -891,21 +889,6 @@ namespace
static_cast<SwPaM&>(m_rRedline) = *m_pCursor;
}
};
-
- auto UndoDeleteDisableFrames(SwDoc & rDoc) -> void
- {
- // inside AppendRedline(), a SwUndoDelete was created;
- // prevent it from creating duplicate layout frames on Undo
- auto & rUndo(rDoc.GetUndoManager());
- if (rUndo.DoesUndo())
- {
- SwUndo *const pUndo(rUndo.GetLastUndo());
- assert(pUndo);
- SwUndoDelete *const pUndoDel(dynamic_cast<SwUndoDelete*>(pUndo));
- assert(pUndoDel);
- pUndoDel->DisableMakeFrames(); // tdf#132944
- }
- }
}
namespace sw
@@ -1581,14 +1564,12 @@ DocumentRedlineManager::AppendRedline(SwRangeRedline* pNewRedl, bool const bCall
}
else
m_rDoc.getIDocumentContentOperations().DeleteAndJoin( *pNewRedl );
- UndoDeleteDisableFrames(m_rDoc); // tdf#132944
bCompress = true;
}
if( !bCallDelete && !bDec && *pEnd == *pREnd )
{
m_rDoc.getIDocumentContentOperations().DeleteAndJoin( *pNewRedl );
- UndoDeleteDisableFrames(m_rDoc);
bCompress = true;
}
else if ( bCallDelete || !bDec )
@@ -1608,7 +1589,6 @@ DocumentRedlineManager::AppendRedline(SwRangeRedline* pNewRedl, bool const bCall
{
TemporaryRedlineUpdater const u(m_rDoc, *pNewRedl);
m_rDoc.getIDocumentContentOperations().DeleteAndJoin( *pRedl );
- UndoDeleteDisableFrames(m_rDoc);
n = 0; // re-initialize
}
delete pRedl;
@@ -1633,7 +1613,6 @@ DocumentRedlineManager::AppendRedline(SwRangeRedline* pNewRedl, bool const bCall
{
TemporaryRedlineUpdater const u(m_rDoc, *pNewRedl);
m_rDoc.getIDocumentContentOperations().DeleteAndJoin( aPam );
- UndoDeleteDisableFrames(m_rDoc);
n = 0; // re-initialize
}
bDec = true;
@@ -1656,7 +1635,6 @@ DocumentRedlineManager::AppendRedline(SwRangeRedline* pNewRedl, bool const bCall
{
TemporaryRedlineUpdater const u(m_rDoc, *pNewRedl);
m_rDoc.getIDocumentContentOperations().DeleteAndJoin( aPam );
- UndoDeleteDisableFrames(m_rDoc);
n = 0; // re-initialize
bDec = true;
}
diff --git a/sw/source/core/inc/UndoDelete.hxx b/sw/source/core/inc/UndoDelete.hxx
index ce38a4d99e03..8a0bdabb5d30 100644
--- a/sw/source/core/inc/UndoDelete.hxx
+++ b/sw/source/core/inc/UndoDelete.hxx
@@ -59,7 +59,6 @@ class SwUndoDelete
bool m_bResetPgDesc : 1; // TRUE: reset PgDsc on following node
bool m_bResetPgBrk : 1; // TRUE: reset PgBreak on following node
bool m_bFromTableCopy : 1; // TRUE: called by SwUndoTableCpyTable
- bool m_bDisableMakeFrames : 1;
bool SaveContent( const SwPosition* pStt, const SwPosition* pEnd,
SwTextNode* pSttTextNd, SwTextNode* pEndTextNd );
@@ -100,7 +99,6 @@ public:
// SwUndoTableCpyTable needs this information:
bool IsDelFullPara() const { return m_bDelFullPara; }
- void DisableMakeFrames() { m_bDisableMakeFrames = true; };
};
#endif // INCLUDED_SW_SOURCE_CORE_INC_UNDODELETE_HXX
diff --git a/sw/source/core/undo/undel.cxx b/sw/source/core/undo/undel.cxx
index d225d1eb2868..0fd6651e8901 100644
--- a/sw/source/core/undo/undel.cxx
+++ b/sw/source/core/undo/undel.cxx
@@ -186,7 +186,6 @@ SwUndoDelete::SwUndoDelete(
m_bResetPgDesc( false ),
m_bResetPgBrk( false ),
m_bFromTableCopy( bCalledByTableCpy )
- , m_bDisableMakeFrames(false)
{
m_bCacheComment = false;
@@ -1052,26 +1051,7 @@ void SwUndoDelete::UndoImpl(::sw::UndoRedoContext & rContext)
SetSaveData(rDoc, *m_pRedlSaveData);
sal_uLong delFullParaEndNode(m_nEndNode);
- if (m_bDisableMakeFrames) // tdf#132944
- {
- assert(!m_bDelFullPara);
- SwTextNode *const pEndNode(aIdx.GetNodes()[m_nEndNode]->GetTextNode());
- SwIterator<SwTextFrame, SwTextNode, sw::IteratorMode::UnwrapMulti> aIter(*pEndNode);
- for (SwTextFrame* pFrame = aIter.First(); pFrame; pFrame = aIter.Next())
- {
- o3tl::sorted_vector<SwRootFrame *> layouts;
- if (pFrame->getRootFrame()->IsHideRedlines())
- {
- assert(pFrame->GetTextNodeFirst() == pEndNode); // can't be merged with previous
- layouts.insert(pFrame->getRootFrame());
- }
- for (SwRootFrame const*const pLayout : layouts)
- {
- pEndNode->DelFrames(pLayout); // SwUndoRedlineDelete will create it
- }
- }
- }
- else if (m_bDelFullPara && m_pRedlSaveData)
+ if (m_bDelFullPara && m_pRedlSaveData)
{
SwTextNode * pFirstMergedDeletedTextNode(nullptr);
SwTextNode *const pNextNode = FindFirstAndNextNode(rDoc, *this,
@@ -1118,7 +1098,7 @@ void SwUndoDelete::UndoImpl(::sw::UndoRedoContext & rContext)
}
// create frames after SetSaveData has recreated redlines
- if (0 != m_nNode && !m_bDisableMakeFrames)
+ if (0 != m_nNode)
{
// tdf#121031 if the start node is a text node, it already has a frame;
// if it's a table, it does not
@@ -1134,7 +1114,7 @@ void SwUndoDelete::UndoImpl(::sw::UndoRedoContext & rContext)
::MakeFrames(&rDoc, start, end);
}
- if (pMovedNode && !m_bDisableMakeFrames)
+ if (pMovedNode)
{ // probably better do this after creating all frames
lcl_MakeAutoFrames(*rDoc.GetSpzFrameFormats(), pMovedNode->GetIndex());
}