sw/inc/IDocumentRedlineAccess.hxx             |    2 +
 sw/source/core/doc/DocumentRedlineManager.cxx |   40 ++++++++++++++++++++++++++
 sw/source/core/doc/docfmt.cxx                 |    3 -
 sw/source/core/inc/DocumentRedlineManager.hxx |    2 +
 4 files changed, 45 insertions(+), 2 deletions(-)

New commits:
commit 3abffbf11658874d84b92bb0fd19b7fd55a643a3
Author:     Miklos Vajna <vmik...@collabora.com>
AuthorDate: Mon Feb 24 08:24:01 2025 +0100
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Mon Feb 24 09:26:44 2025 +0100

    sw doc model xml dump: show the redline manager's flags
    
    I'm looking at moving that RedlineFlags::On to the view.
    
    Change-Id: I9cd4d41108a19097d2bed0e1660c084ac7fe8c7a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182076
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>

diff --git a/sw/inc/IDocumentRedlineAccess.hxx 
b/sw/inc/IDocumentRedlineAccess.hxx
index 9d97eb43ff7e..264c23e29895 100644
--- a/sw/inc/IDocumentRedlineAccess.hxx
+++ b/sw/inc/IDocumentRedlineAccess.hxx
@@ -235,6 +235,8 @@ public:
     virtual void UpdateRedlineContentNode(/*[in]*/ SwRedlineTable::size_type 
nStartPos,
                                           /*[in]*/ SwRedlineTable::size_type 
nEndPos) const = 0;
 
+    virtual void dumpAsXml(xmlTextWriterPtr pWriter) const = 0;
+
 
 protected:
      virtual ~IDocumentRedlineAccess() {};
diff --git a/sw/source/core/doc/DocumentRedlineManager.cxx 
b/sw/source/core/doc/DocumentRedlineManager.cxx
index 1c6ba5ccd482..319bedb5b919 100644
--- a/sw/source/core/doc/DocumentRedlineManager.cxx
+++ b/sw/source/core/doc/DocumentRedlineManager.cxx
@@ -2887,6 +2887,46 @@ void 
DocumentRedlineManager::UpdateRedlineContentNode(SwRedlineTable::size_type
     }
 }
 
+void DocumentRedlineManager::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+    (void)xmlTextWriterStartElement(pWriter, 
BAD_CAST("DocumentRedlineManager"));
+    (void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("ptr"), "%p", 
this);
+
+    if (meRedlineFlags != RedlineFlags::NONE)
+    {
+        (void)xmlTextWriterStartElement(pWriter, BAD_CAST("meRedlineFlags"));
+        if (meRedlineFlags & RedlineFlags::On)
+        {
+            (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("On"), 
BAD_CAST("true"));
+        }
+        if (meRedlineFlags & RedlineFlags::Ignore)
+        {
+            (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("Ignore"), 
BAD_CAST("true"));
+        }
+        if (meRedlineFlags & RedlineFlags::ShowInsert)
+        {
+            (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("ShowInsert"), 
BAD_CAST("true"));
+        }
+        if (meRedlineFlags & RedlineFlags::ShowDelete)
+        {
+            (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("ShowDelete"), 
BAD_CAST("true"));
+        }
+        if (meRedlineFlags & RedlineFlags::DeleteRedlines)
+        {
+            (void)xmlTextWriterWriteAttribute(pWriter, 
BAD_CAST("DeleteRedlines"), BAD_CAST("true"));
+        }
+        if (meRedlineFlags & RedlineFlags::DontCombineRedlines)
+        {
+            (void)xmlTextWriterWriteAttribute(pWriter, 
BAD_CAST("DontCombineRedlines"), BAD_CAST("true"));
+        }
+        (void)xmlTextWriterEndElement(pWriter);
+    }
+    maRedlineTable.dumpAsXml(pWriter);
+    maExtraRedlineTable.dumpAsXml(pWriter);
+
+    (void)xmlTextWriterEndElement(pWriter);
+}
+
 bool DocumentRedlineManager::HasRedline( const SwPaM& rPam, RedlineType nType, 
bool bStartOrEndInRange ) const
 {
     SwPosition currentStart(*rPam.Start());
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index 755ee2541fde..4bc2a178809a 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -2003,8 +2003,7 @@ void SwDoc::dumpAsXml(xmlTextWriterPtr pWriter) const
     mpSectionFormatTable->dumpAsXml(pWriter);
     mpTableFrameFormatTable->dumpAsXml(pWriter, "tableFrameFormatTable");
     mpNumRuleTable->dumpAsXml(pWriter);
-    getIDocumentRedlineAccess().GetRedlineTable().dumpAsXml(pWriter);
-    getIDocumentRedlineAccess().GetExtraRedlineTable().dumpAsXml(pWriter);
+    getIDocumentRedlineAccess().dumpAsXml(pWriter);
     if (const SdrModel* pModel = getIDocumentDrawModelAccess().GetDrawModel())
         pModel->dumpAsXml(pWriter);
 
diff --git a/sw/source/core/inc/DocumentRedlineManager.hxx 
b/sw/source/core/inc/DocumentRedlineManager.hxx
index a164dbbeab7f..48bc454f2fd9 100644
--- a/sw/source/core/inc/DocumentRedlineManager.hxx
+++ b/sw/source/core/inc/DocumentRedlineManager.hxx
@@ -137,6 +137,8 @@ public:
         /*[in]*/ SwRedlineTable::size_type nStartPos,
         /*[in]*/ SwRedlineTable::size_type nEndPos) const override;
 
+    void dumpAsXml(xmlTextWriterPtr pWriter) const override;
+
     //Non Interface methods;
 
     /** Set comment-text for Redline. It then comes in via AppendRedLine.

Reply via email to