summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-01-22 09:16:39 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-01-22 09:18:28 +0100
commite17847e0ce5602b0cdf312ba2c72bd99aa7b72b2 (patch)
tree4b9d4104d3132ad0ec23c500b63d2a9cf1c09cbb
parent3adaad3e36d0adc444f1085fceb7f4e5b43cfeef (diff)
Factor out SfxStringItem::dumpAsXml() from sw
Change-Id: If218d83297bfdd39471d5502c0639248c96af9c6
-rw-r--r--include/svl/stritem.hxx2
-rw-r--r--svl/source/items/stritem.cxx10
-rw-r--r--sw/source/core/docnode/nodedump.cxx29
3 files changed, 16 insertions, 25 deletions
diff --git a/include/svl/stritem.hxx b/include/svl/stritem.hxx
index 8d6da4fdcc01..eb0fea36a5ae 100644
--- a/include/svl/stritem.hxx
+++ b/include/svl/stritem.hxx
@@ -41,6 +41,8 @@ public:
virtual SvStream & Store(SvStream & rStream, sal_uInt16) const SAL_OVERRIDE;
virtual SfxPoolItem * Clone(SfxItemPool * = 0) const SAL_OVERRIDE;
+
+ void dumpAsXml(struct _xmlTextWriter* pWriter) const;
};
#endif // INCLUDED_SVL_STRITEM_HXX
diff --git a/svl/source/items/stritem.cxx b/svl/source/items/stritem.cxx
index dd94154bbe8e..dea5550102c9 100644
--- a/svl/source/items/stritem.cxx
+++ b/svl/source/items/stritem.cxx
@@ -19,7 +19,7 @@
#include <svl/stritem.hxx>
#include <stringio.hxx>
-
+#include <libxml/xmlwriter.h>
// class SfxStringItem
@@ -53,4 +53,12 @@ SfxPoolItem * SfxStringItem::Clone(SfxItemPool *) const
return new SfxStringItem(*this);
}
+void SfxStringItem::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+ xmlTextWriterStartElement(pWriter, BAD_CAST("sfxStringItem"));
+ xmlTextWriterWriteAttribute(pWriter, BAD_CAST("whichId"), BAD_CAST(OString::number(Which()).getStr()));
+ xmlTextWriterWriteAttribute(pWriter, BAD_CAST("value"), BAD_CAST(GetValue().toUtf8().getStr()));
+ xmlTextWriterEndElement(pWriter);
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/docnode/nodedump.cxx b/sw/source/core/docnode/nodedump.cxx
index 671729966d2a..eb7af267cd3e 100644
--- a/sw/source/core/docnode/nodedump.cxx
+++ b/sw/source/core/docnode/nodedump.cxx
@@ -502,6 +502,10 @@ void lcl_dumpSfxItemSet(WriterHelper& writer, const SfxItemSet* pSet)
case RES_PAGEDESC:
static_cast<const SwFmtPageDesc*>(pItem)->dumpAsXml(writer);
break;
+ case RES_FRMATR_CONDITIONAL_STYLE_NAME:
+ case RES_FRMATR_STYLE_NAME:
+ static_cast<const SfxStringItem*>(pItem)->dumpAsXml(writer);
+ break;
default: bDone = false; break;
}
if (bDone)
@@ -512,31 +516,8 @@ void lcl_dumpSfxItemSet(WriterHelper& writer, const SfxItemSet* pSet)
writer.startElement("item");
writer.writeFormatAttribute("whichId", TMP_FORMAT, pItem->Which());
- const char* pWhich = 0;
- boost::optional<OString> oValue;
- switch (pItem->Which())
- {
- case RES_FRMATR_STYLE_NAME:
- {
- pWhich = "frame style name";
- const SfxStringItem* pStringItem = static_cast<const SfxStringItem*>(pItem);
- oValue = "name: " + OUStringToOString(pStringItem->GetValue(), RTL_TEXTENCODING_UTF8);
- break;
- }
- case RES_FRMATR_CONDITIONAL_STYLE_NAME:
- {
- pWhich = "frame conditional style name";
- const SfxStringItem* pStringItem = static_cast<const SfxStringItem*>(pItem);
- oValue = "name: " + OUStringToOString(pStringItem->GetValue(), RTL_TEXTENCODING_UTF8);
- break;
- }
- }
- if (pWhich)
- writer.writeFormatAttribute("which", "%s", BAD_CAST(pWhich));
- if (oValue)
- writer.writeFormatAttribute("value", "%s", BAD_CAST(oValue->getStr()));
- pItem = aIter.NextItem();
writer.endElement();
+ pItem = aIter.NextItem();
}
}