sw/source/core/inc/UndoTable.hxx | 1 sw/source/core/undo/untbl.cxx | 57 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+)
New commits: commit 982f8408286bc0519c2d9d73fb4e59142e03f00a Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Mon Mar 22 09:12:36 2021 +0100 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Mon Mar 22 10:36:17 2021 +0100 Related: tdf#133933 sw: show SwUndoTableCpyTable in doc model xml dump Hard to track undo/redo of paste (which is delete+insert) on top of redlines otherwise. Change-Id: I8d33b56559facc4a8ef6b18134c5948ac83b2dcd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112862 Reviewed-by: Miklos Vajna <vmik...@collabora.com> Tested-by: Jenkins diff --git a/sw/source/core/inc/UndoTable.hxx b/sw/source/core/inc/UndoTable.hxx index 472f9fdd65d5..81b4780b9792 100644 --- a/sw/source/core/inc/UndoTable.hxx +++ b/sw/source/core/inc/UndoTable.hxx @@ -289,6 +289,7 @@ public: bool IsEmpty() const; bool InsertRow( SwTable& rTable, const SwSelBoxes& rBoxes, sal_uInt16 nCnt ); + void dumpAsXml(xmlTextWriterPtr pWriter) const override; }; class SwUndoCpyTable : public SwUndo diff --git a/sw/source/core/undo/untbl.cxx b/sw/source/core/undo/untbl.cxx index fdc8b25b0631..a744e8316c89 100644 --- a/sw/source/core/undo/untbl.cxx +++ b/sw/source/core/undo/untbl.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <libxml/xmlwriter.h> + #include <UndoTable.hxx> #include <UndoRedline.hxx> #include <UndoDelete.hxx> @@ -88,6 +90,8 @@ struct UndoTableCpyTable_Entry bool bJoin; // For redlining only explicit UndoTableCpyTable_Entry( const SwTableBox& rBox ); + + void dumpAsXml(xmlTextWriterPtr pWriter) const; }; namespace { @@ -2295,6 +2299,42 @@ UndoTableCpyTable_Entry::UndoTableCpyTable_Entry( const SwTableBox& rBox ) { } +void UndoTableCpyTable_Entry::dumpAsXml(xmlTextWriterPtr pWriter) const +{ + xmlTextWriterStartElement(pWriter, BAD_CAST("UndoTableCpyTable_Entry")); + + xmlTextWriterStartElement(pWriter, BAD_CAST("nBoxIdx")); + xmlTextWriterWriteAttribute(pWriter, BAD_CAST("value"), + BAD_CAST(OString::number(nBoxIdx).getStr())); + xmlTextWriterEndElement(pWriter); + + xmlTextWriterStartElement(pWriter, BAD_CAST("nOffset")); + xmlTextWriterWriteAttribute(pWriter, BAD_CAST("value"), + BAD_CAST(OString::number(nOffset).getStr())); + xmlTextWriterEndElement(pWriter); + + if (pBoxNumAttr) + { + xmlTextWriterStartElement(pWriter, BAD_CAST("pBoxNumAttr")); + pBoxNumAttr->dumpAsXml(pWriter); + xmlTextWriterEndElement(pWriter); + } + + if (pUndo) + { + xmlTextWriterStartElement(pWriter, BAD_CAST("pUndo")); + pUndo->dumpAsXml(pWriter); + xmlTextWriterEndElement(pWriter); + } + + xmlTextWriterStartElement(pWriter, BAD_CAST("bJoin")); + xmlTextWriterWriteAttribute(pWriter, BAD_CAST("value"), + BAD_CAST(OString::boolean(bJoin).getStr())); + xmlTextWriterEndElement(pWriter); + + xmlTextWriterEndElement(pWriter); +} + SwUndoTableCpyTable::SwUndoTableCpyTable(const SwDoc& rDoc) : SwUndo( SwUndoId::TBLCPYTBL, &rDoc ) { @@ -2702,6 +2742,23 @@ bool SwUndoTableCpyTable::InsertRow( SwTable& rTable, const SwSelBoxes& rBoxes, return bRet; } +void SwUndoTableCpyTable::dumpAsXml(xmlTextWriterPtr pWriter) const +{ + xmlTextWriterStartElement(pWriter, BAD_CAST("SwUndoTableCpyTable")); + + for (const auto& pEntry : m_vArr) + { + pEntry->dumpAsXml(pWriter); + } + + if (m_pInsRowUndo) + { + m_pInsRowUndo->dumpAsXml(pWriter); + } + + xmlTextWriterEndElement(pWriter); +} + bool SwUndoTableCpyTable::IsEmpty() const { return !m_pInsRowUndo && m_vArr.empty(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits