[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