[Libreoffice-commits] core.git: 3 commits - sw/inc sw/source

Miklos Vajna vmiklos at collabora.co.uk
Thu Oct 3 07:15:21 PDT 2013


 sw/inc/docary.hxx                   |    2 
 sw/source/core/docnode/nodedump.cxx |  100 +++++++++++++++++++++++++++---------
 2 files changed, 78 insertions(+), 24 deletions(-)

New commits:
commit 7f71207891bcf47496643551e6474c265a7ad8e9
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Oct 3 15:18:52 2013 +0200

    sw doc model dump: also output the SfxItemSet of paragraph styles
    
    Change-Id: Ie85b8e6669f3b0d3bef48d56934c8ec07d858b8a

diff --git a/sw/source/core/docnode/nodedump.cxx b/sw/source/core/docnode/nodedump.cxx
index 6fbe63e..59a6a1a 100644
--- a/sw/source/core/docnode/nodedump.cxx
+++ b/sw/source/core/docnode/nodedump.cxx
@@ -18,9 +18,11 @@
 #include "fmtautofmt.hxx"
 #include "charfmt.hxx"
 #include <svl/itemiter.hxx>
+#include <svl/intitem.hxx>
 
 #include <libxml/encoding.h>
 #include <libxml/xmlwriter.h>
+#include <boost/optional.hpp>
 
 namespace
 {
@@ -282,6 +284,35 @@ void SwCharFmts::dumpAsXml(xmlTextWriterPtr w)
     }
 }
 
+void lcl_dumpSfxItemSet(WriterHelper& writer, const SfxItemSet* pSet)
+{
+    SfxItemIter aIter(*pSet);
+    const SfxPoolItem* pItem = aIter.FirstItem();
+    while (pItem)
+    {
+        writer.startElement("item");
+        writer.writeFormatAttribute("whichId", TMP_FORMAT, pItem->Which());
+        const char* pWhich = 0;
+        boost::optional<sal_Int32> oValue;
+        switch (pItem->Which())
+        {
+            case RES_CHRATR_POSTURE: pWhich = "posture"; break;
+            case RES_CHRATR_WEIGHT: pWhich = "weight"; break;
+            case RES_CHRATR_CJK_POSTURE: pWhich = "cjk posture"; break;
+            case RES_CHRATR_CJK_WEIGHT: pWhich = "cjk weight"; break;
+            case RES_CHRATR_CTL_POSTURE: pWhich = "ctl posture"; break;
+            case RES_CHRATR_CTL_WEIGHT: pWhich = "ctl weight"; break;
+            case RES_PARATR_OUTLINELEVEL: pWhich = "outline level"; oValue = static_cast<const SfxUInt16Item*>(pItem)->GetValue(); break;
+        }
+        if (pWhich)
+            writer.writeFormatAttribute("which", "%s", BAD_CAST(pWhich));
+        if (oValue)
+            writer.writeFormatAttribute("value", TMP_FORMAT, *oValue);
+        pItem = aIter.NextItem();
+        writer.endElement();
+    }
+}
+
 void SwTxtFmtColls::dumpAsXml(xmlTextWriterPtr w)
 {
     WriterHelper writer(w);
@@ -294,6 +325,8 @@ void SwTxtFmtColls::dumpAsXml(xmlTextWriterPtr w)
             writer.startElement("swtxtfmtcoll");
             OString aName = OUStringToOString(pColl->GetName(), RTL_TEXTENCODING_UTF8);
             writer.writeFormatAttribute("name", "%s", BAD_CAST(aName.getStr()));
+
+            lcl_dumpSfxItemSet(writer, &pColl->GetAttrSet());
             writer.endElement();
         }
         writer.endElement();
@@ -341,27 +374,7 @@ void SwTxtNode::dumpAsXml( xmlTextWriterPtr w )
             {
                 boost::shared_ptr<SfxItemSet> const pSet(pHint->GetAutoFmt().GetStyleHandle());
                 writer.startElement("autofmt");
-                SfxItemIter aIter(*pSet);
-                const SfxPoolItem* pItem = aIter.FirstItem();
-                while (pItem)
-                {
-                    writer.startElement("item");
-                    writer.writeFormatAttribute("whichId", TMP_FORMAT, pItem->Which());
-                    pWhich = 0;
-                    switch (pItem->Which())
-                    {
-                        case RES_CHRATR_POSTURE: pWhich = "posture"; break;
-                        case RES_CHRATR_WEIGHT: pWhich = "weight"; break;
-                        case RES_CHRATR_CJK_POSTURE: pWhich = "cjk posture"; break;
-                        case RES_CHRATR_CJK_WEIGHT: pWhich = "cjk weight"; break;
-                        case RES_CHRATR_CTL_POSTURE: pWhich = "ctl posture"; break;
-                        case RES_CHRATR_CTL_WEIGHT: pWhich = "ctl weight"; break;
-                    }
-                    if (pWhich)
-                        writer.writeFormatAttribute("which", "%s", BAD_CAST(pWhich));
-                    pItem = aIter.NextItem();
-                    writer.endElement();
-                }
+                lcl_dumpSfxItemSet(writer, pSet.get());
                 writer.endElement();
             }
 
commit 5a1e73615e5fe0c1737afdc184444f971d80ab20
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Oct 3 14:58:14 2013 +0200

    sw: include names of character and paragraph styles in doc model dump
    
    Change-Id: Ib766fa7753e52ad81f5fe976d0e6c3e1f688a826

diff --git a/sw/inc/docary.hxx b/sw/inc/docary.hxx
index 6b9636e..db4a419 100644
--- a/sw/inc/docary.hxx
+++ b/sw/inc/docary.hxx
@@ -88,6 +88,7 @@ public:
     virtual SwFmt* GetFmt(size_t idx) const { return (SwFmt*)operator[](idx); }
     sal_uInt16 GetPos(const SwCharFmt* pFmt) const;
     bool Contains(const SwCharFmt* pFmt) const;
+    void dumpAsXml(xmlTextWriterPtr w);
     /// free's any remaining child objects
     virtual ~SwCharFmts();
 };
@@ -98,6 +99,7 @@ public:
     virtual size_t GetFmtCount() const { return size(); }
     virtual SwFmt* GetFmt(size_t idx) const { return (SwFmt*)operator[](idx); }
     sal_uInt16 GetPos(const SwTxtFmtColl* pFmt) const;
+    void dumpAsXml(xmlTextWriterPtr w);
     virtual ~SwTxtFmtColls() {}
 };
 
diff --git a/sw/source/core/docnode/nodedump.cxx b/sw/source/core/docnode/nodedump.cxx
index 0600ebc..6fbe63e 100644
--- a/sw/source/core/docnode/nodedump.cxx
+++ b/sw/source/core/docnode/nodedump.cxx
@@ -16,6 +16,7 @@
 #include "docufld.hxx"
 #include "txatbase.hxx"
 #include "fmtautofmt.hxx"
+#include "charfmt.hxx"
 #include <svl/itemiter.hxx>
 
 #include <libxml/encoding.h>
@@ -110,6 +111,8 @@ void SwDoc::dumpAsXml( xmlTextWriterPtr w )
     m_pNodes->dumpAsXml( writer );
     mpMarkManager->dumpAsXml( writer );
     mpFldTypes->dumpAsXml( writer );
+    mpTxtFmtCollTbl->dumpAsXml( writer );
+    mpCharFmtTbl->dumpAsXml( writer );
     writer.endElement();
 }
 
@@ -261,6 +264,42 @@ void SwStartNode::dumpAsXml( xmlTextWriterPtr w )
     // writer.endElement(); - it is a start node, so don't end, will make xml better nested
 }
 
+void SwCharFmts::dumpAsXml(xmlTextWriterPtr w)
+{
+    WriterHelper writer(w);
+    if (size())
+    {
+        writer.startElement("swcharfmts");
+        for (size_t i = 0; i < size(); ++i)
+        {
+            SwCharFmt* pFmt = static_cast<SwCharFmt*>(GetFmt(i));
+            writer.startElement("swcharfmt");
+            OString aName = OUStringToOString(pFmt->GetName(), RTL_TEXTENCODING_UTF8);
+            writer.writeFormatAttribute("name", "%s", BAD_CAST(aName.getStr()));
+            writer.endElement();
+        }
+        writer.endElement();
+    }
+}
+
+void SwTxtFmtColls::dumpAsXml(xmlTextWriterPtr w)
+{
+    WriterHelper writer(w);
+    if (size())
+    {
+        writer.startElement("swtxtfmtcolls");
+        for (size_t i = 0; i < size(); ++i)
+        {
+            SwTxtFmtColl* pColl = static_cast<SwTxtFmtColl*>(GetFmt(i));
+            writer.startElement("swtxtfmtcoll");
+            OString aName = OUStringToOString(pColl->GetName(), RTL_TEXTENCODING_UTF8);
+            writer.writeFormatAttribute("name", "%s", BAD_CAST(aName.getStr()));
+            writer.endElement();
+        }
+        writer.endElement();
+    }
+}
+
 void SwTxtNode::dumpAsXml( xmlTextWriterPtr w )
 {
     WriterHelper writer( w );
commit 087a8cb10058acdd1bd5071ca3d4725fe585dd7d
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Oct 3 14:32:03 2013 +0200

    SwFldTypes::dumpAsXml: handle RES_{PAGENUMBER,DATETIME}FLD
    
    Change-Id: Iccdf53d285ed36c59c7dab4050f1c56b0e326c91

diff --git a/sw/source/core/docnode/nodedump.cxx b/sw/source/core/docnode/nodedump.cxx
index d415784..0600ebc 100644
--- a/sw/source/core/docnode/nodedump.cxx
+++ b/sw/source/core/docnode/nodedump.cxx
@@ -155,9 +155,9 @@ void SwFldTypes::dumpAsXml( xmlTextWriterPtr w )
             const char* name = "???";
             switch(pCurFldFmt->GetFld()->GetTyp()->Which())
             {
-                case RES_POSTITFLD:
-                    name = "swpostitfield";
-                    break;
+                case RES_PAGENUMBERFLD: name = "swpagenumberfield"; break;
+                case RES_POSTITFLD: name = "swpostitfield"; break;
+                case RES_DATETIMEFLD: name = "swdatetimefield"; break;
                 default:
                     SAL_INFO("sw.core", "unhandled field type " << pCurFldFmt->GetFld()->GetTyp()->Which());
                     break;


More information about the Libreoffice-commits mailing list