sw/source/core/layout/fly.cxx     |   17 +----------------
 sw/source/core/layout/hffrm.cxx   |   10 ++--------
 sw/source/core/layout/pagechg.cxx |    5 +----
 sw/source/core/layout/wsfrm.cxx   |   21 +++++++++++++++++++++
 4 files changed, 25 insertions(+), 28 deletions(-)

New commits:
commit 80940d0fe5ab266ddf3000e5fdffcd9b8e0a1d86
Author:     Miklos Vajna <vmik...@collabora.com>
AuthorDate: Thu Aug 24 20:01:48 2023 +0200
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Fri Aug 25 08:06:44 2023 +0200

    sw layout xml dump: merge some copy&paste into a SwFrame::dumpAsXml()
    
    The idea is that each SwFrame subclass just dumps its own members, the
    rest of the dumper should be shared, not copy&pasted.
    
    Change-Id: I6ca837770f787f519071ed2f679353bd3f4b7b4d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156060
    Tested-by: Jenkins
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>

diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx
index 039aeb549f77..f00b97aa31e1 100644
--- a/sw/source/core/layout/fly.cxx
+++ b/sw/source/core/layout/fly.cxx
@@ -3173,22 +3173,7 @@ void SwFlyFrame::dumpAsXml(xmlTextWriterPtr writer) const
     (void)xmlTextWriterStartElement(writer, reinterpret_cast<const 
xmlChar*>("fly"));
     dumpAsXmlAttributes(writer);
 
-    (void)xmlTextWriterStartElement(writer, BAD_CAST("infos"));
-    dumpInfosAsXml(writer);
-    (void)xmlTextWriterEndElement(writer);
-    const SwSortedObjs* pAnchored = GetDrawObjs();
-    if (pAnchored && pAnchored->size() > 0)
-    {
-        (void)xmlTextWriterStartElement(writer, BAD_CAST("anchored"));
-
-        for (SwAnchoredObject* pObject : *pAnchored)
-        {
-            pObject->dumpAsXml(writer);
-        }
-
-        (void)xmlTextWriterEndElement(writer);
-    }
-    dumpChildrenAsXml(writer);
+    SwLayoutFrame::dumpAsXml(writer);
 
     SwAnchoredObject::dumpAsXml(writer);
 
diff --git a/sw/source/core/layout/hffrm.cxx b/sw/source/core/layout/hffrm.cxx
index e15b308176df..58ce1d8d4a2b 100644
--- a/sw/source/core/layout/hffrm.cxx
+++ b/sw/source/core/layout/hffrm.cxx
@@ -770,10 +770,7 @@ void SwHeaderFrame::dumpAsXml(xmlTextWriterPtr writer) 
const
     (void)xmlTextWriterStartElement(writer, reinterpret_cast<const 
xmlChar*>("header"));
     dumpAsXmlAttributes(writer);
 
-    (void)xmlTextWriterStartElement(writer, BAD_CAST("infos"));
-    dumpInfosAsXml(writer);
-    (void)xmlTextWriterEndElement(writer);
-    dumpChildrenAsXml(writer);
+    SwHeadFootFrame::dumpAsXml(writer);
 
     (void)xmlTextWriterEndElement(writer);
 }
@@ -783,10 +780,7 @@ void SwFooterFrame::dumpAsXml(xmlTextWriterPtr writer) 
const
     (void)xmlTextWriterStartElement(writer, reinterpret_cast<const 
xmlChar*>("footer"));
     dumpAsXmlAttributes(writer);
 
-    (void)xmlTextWriterStartElement(writer, BAD_CAST("infos"));
-    dumpInfosAsXml(writer);
-    (void)xmlTextWriterEndElement(writer);
-    dumpChildrenAsXml(writer);
+    SwHeadFootFrame::dumpAsXml(writer);
 
     (void)xmlTextWriterEndElement(writer);
 }
diff --git a/sw/source/core/layout/pagechg.cxx 
b/sw/source/core/layout/pagechg.cxx
index 48c0c5ec7267..dd3132fdf206 100644
--- a/sw/source/core/layout/pagechg.cxx
+++ b/sw/source/core/layout/pagechg.cxx
@@ -179,10 +179,7 @@ void SwBodyFrame::dumpAsXml(xmlTextWriterPtr writer) const
     (void)xmlTextWriterStartElement(writer, reinterpret_cast<const 
xmlChar*>("body"));
     dumpAsXmlAttributes(writer);
 
-    (void)xmlTextWriterStartElement(writer, BAD_CAST("infos"));
-    dumpInfosAsXml(writer);
-    (void)xmlTextWriterEndElement(writer);
-    dumpChildrenAsXml(writer);
+    SwLayoutFrame::dumpAsXml(writer);
 
     (void)xmlTextWriterEndElement(writer);
 }
diff --git a/sw/source/core/layout/wsfrm.cxx b/sw/source/core/layout/wsfrm.cxx
index 86c61595dcd5..195618aa5b7b 100644
--- a/sw/source/core/layout/wsfrm.cxx
+++ b/sw/source/core/layout/wsfrm.cxx
@@ -292,6 +292,27 @@ void TransformableSwFrame::transform(const 
basegfx::B2DHomMatrix& aTransform)
     maFramePrintAreaTransformation *= aTransform;
 }
 
+void SwFrame::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+    (void)xmlTextWriterStartElement(pWriter, BAD_CAST("infos"));
+    dumpInfosAsXml(pWriter);
+    (void)xmlTextWriterEndElement(pWriter);
+
+    if ( m_pDrawObjs && m_pDrawObjs->size() > 0 )
+    {
+        (void)xmlTextWriterStartElement( pWriter, BAD_CAST( "anchored" ) );
+
+        for (SwAnchoredObject* pObject : *m_pDrawObjs)
+        {
+            pObject->dumpAsXml( pWriter );
+        }
+
+        (void)xmlTextWriterEndElement( pWriter );
+    }
+
+    dumpChildrenAsXml(pWriter);
+}
+
 SwFrame::SwFrame( sw::BroadcastingModify *pMod, SwFrame* pSib )
 :   SwClient( pMod ),
     mpRoot( pSib ? pSib->getRootFrame() : nullptr ),

Reply via email to