diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2023-05-04 19:57:47 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2023-05-05 08:48:14 +0200 |
commit | 5d66979a58363e0362b13c637b7eade0fc28505d (patch) | |
tree | 57175db12a2462c42c49ba9c445786ebd76456af | |
parent | d543eb2d8e45999a3d8fa6134f0d98f08acb8037 (diff) |
sw layout xml dump: extract SwFlyFrame::dumpAsXml() from SwFrame
Ideally SwFrame should not really know anything about fly frames.
Change-Id: Idc10a3c8130a961b01a0abbf6f52b093937fd0dd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151401
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r-- | sw/inc/anchoredobject.hxx | 2 | ||||
-rw-r--r-- | sw/source/core/inc/flyfrm.hxx | 2 | ||||
-rw-r--r-- | sw/source/core/layout/fly.cxx | 27 | ||||
-rw-r--r-- | sw/source/core/text/xmldump.cxx | 8 |
4 files changed, 29 insertions, 10 deletions
diff --git a/sw/inc/anchoredobject.hxx b/sw/inc/anchoredobject.hxx index 114380d6f04d..ea8104882b4d 100644 --- a/sw/inc/anchoredobject.hxx +++ b/sw/inc/anchoredobject.hxx @@ -485,7 +485,7 @@ class SW_DLLPUBLIC SwAnchoredObject /** Dump a bunch of useful data to an XML representation to ease layout understanding, debugging and testing. */ - virtual void dumpAsXml( xmlTextWriterPtr pWriter ) const; + virtual void dumpAsXml( xmlTextWriterPtr pWriter = nullptr ) const; /** The element name to show in the XML dump. */ virtual const char* getElementName( ) const { return "SwAnchoredObject"; } diff --git a/sw/source/core/inc/flyfrm.hxx b/sw/source/core/inc/flyfrm.hxx index cc6d969401bf..d3815a82835a 100644 --- a/sw/source/core/inc/flyfrm.hxx +++ b/sw/source/core/inc/flyfrm.hxx @@ -289,7 +289,7 @@ public: virtual const SwFlyFrameFormat *GetFormat() const override; virtual SwFlyFrameFormat *GetFormat() override; - virtual void dumpAsXml( xmlTextWriterPtr writer ) const override { SwLayoutFrame::dumpAsXml( writer ); }; + virtual void dumpAsXml(xmlTextWriterPtr writer = nullptr) const override; virtual void Calc(vcl::RenderContext* pRenderContext) const override; diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx index 387095bbdeed..6d80daf74efc 100644 --- a/sw/source/core/layout/fly.cxx +++ b/sw/source/core/layout/fly.cxx @@ -3075,6 +3075,33 @@ SwFlyFrameFormat * SwFlyFrame::GetFormat() return static_cast< SwFlyFrameFormat * >( GetDep() ); } +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); + + SwAnchoredObject::dumpAsXml(writer); + + (void)xmlTextWriterEndElement(writer); +} + void SwFlyFrame::Calc(vcl::RenderContext* pRenderContext) const { if ( !m_bValidContentPos ) diff --git a/sw/source/core/text/xmldump.cxx b/sw/source/core/text/xmldump.cxx index 39231f410e56..4c66104c12af 100644 --- a/sw/source/core/text/xmldump.cxx +++ b/sw/source/core/text/xmldump.cxx @@ -174,9 +174,6 @@ void SwFrame::dumpAsXml( xmlTextWriterPtr writer ) const switch ( GetType( ) ) { - case SwFrameType::Fly: - name = "fly"; - break; case SwFrameType::Section: name = "section"; break; @@ -298,11 +295,6 @@ void SwFrame::dumpAsXml( xmlTextWriterPtr writer ) const else { dumpChildrenAsXml( writer ); - if (IsFlyFrame()) - { - auto pFlyFrame = static_cast<const SwFlyFrame*>(this); - pFlyFrame->SwAnchoredObject::dumpAsXml(writer); - } } (void)xmlTextWriterEndElement( writer ); } |