summaryrefslogtreecommitdiff
path: root/sw/source/core/txtnode/txatbase.cxx
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-02-26 09:30:59 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-02-26 09:31:31 +0100
commita4dbfa82fdf8e4473e342a358feff05df35260f7 (patch)
tree8649389690f3fcfa3d649366bc8a1dd31076fb43 /sw/source/core/txtnode/txatbase.cxx
parent463f7be3f7d315789ecfbcbe874205995dbd3524 (diff)
Extract SwTxtAttr::dumpAsXml() from SwTxtNode
Change-Id: I20914ec147b2af096bd40ec0e4da7567a44abaaa
Diffstat (limited to 'sw/source/core/txtnode/txatbase.cxx')
-rw-r--r--sw/source/core/txtnode/txatbase.cxx43
1 files changed, 43 insertions, 0 deletions
diff --git a/sw/source/core/txtnode/txatbase.cxx b/sw/source/core/txtnode/txatbase.cxx
index 7fe27c238cef..061cb257a63b 100644
--- a/sw/source/core/txtnode/txatbase.cxx
+++ b/sw/source/core/txtnode/txatbase.cxx
@@ -17,6 +17,8 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <boost/optional.hpp>
+#include <libxml/xmlwriter.h>
#include <svl/itempool.hxx>
#include <txatbase.hxx>
#include <fmtfld.hxx>
@@ -73,4 +75,45 @@ sal_Int32* SwTxtAttrEnd::GetEnd()
return & m_nEnd;
}
+void SwTxtAttr::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+ xmlTextWriterStartElement(pWriter, BAD_CAST("swTxtAttr"));
+
+ xmlTextWriterWriteAttribute(pWriter, BAD_CAST("start"), BAD_CAST(OString::number(m_nStart).getStr()));
+ if (End())
+ xmlTextWriterWriteAttribute(pWriter, BAD_CAST("end"), BAD_CAST(OString::number(*End()).getStr()));
+ xmlTextWriterWriteAttribute(pWriter, BAD_CAST("whichId"), BAD_CAST(OString::number(Which()).getStr()));
+ const char* pWhich = 0;
+ boost::optional<OString> oValue;
+ switch (Which())
+ {
+ case RES_TXTATR_AUTOFMT:
+ pWhich = "autofmt";
+ break;
+ case RES_TXTATR_ANNOTATION:
+ pWhich = "annotation";
+ break;
+ case RES_TXTATR_FLYCNT:
+ pWhich = "fly content";
+ break;
+ case RES_TXTATR_CHARFMT:
+ {
+ pWhich = "character format";
+ if (SwCharFmt* pCharFmt = GetCharFmt().GetCharFmt())
+ oValue = "name: " + OUStringToOString(pCharFmt->GetName(), RTL_TEXTENCODING_UTF8);
+ break;
+ }
+ default:
+ break;
+ }
+ if (pWhich)
+ xmlTextWriterWriteAttribute(pWriter, BAD_CAST("whichId"), BAD_CAST(pWhich));
+ if (oValue)
+ xmlTextWriterWriteAttribute(pWriter, BAD_CAST("value"), BAD_CAST(oValue->getStr()));
+ if (Which() == RES_TXTATR_AUTOFMT)
+ GetAutoFmt().dumpAsXml(pWriter);
+
+ xmlTextWriterEndElement(pWriter);
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */