From ec7d261772d55c5328d0ca2c87f1f9399882ecd5 Mon Sep 17 00:00:00 2001
From: Miklos Vajna <vmiklos@collabora.co.uk>
Date: Mon, 3 Nov 2014 13:15:59 +0100
Subject: sw doc model dump: show parameters of fieldmarks

Change-Id: I3596df5736620488948cc3a138d63a0cb9676ee8
---
 sw/source/core/docnode/nodedump.cxx | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

(limited to 'sw')

diff --git a/sw/source/core/docnode/nodedump.cxx b/sw/source/core/docnode/nodedump.cxx
index 122bcd4ef4ea..90e356b64fd2 100644
--- a/sw/source/core/docnode/nodedump.cxx
+++ b/sw/source/core/docnode/nodedump.cxx
@@ -55,6 +55,7 @@
 #include <libxml/xmlwriter.h>
 #include <boost/optional.hpp>
 #include <rtl/strbuf.hxx>
+#include <comphelper/anytostring.hxx>
 
 using namespace com::sun::star;
 
@@ -244,6 +245,26 @@ void MarkManager::dumpAsXml( xmlTextWriterPtr w ) const
             writer.writeFormatAttribute("endOffset", TMP_FORMAT_I32, pMark->GetMarkEnd().nContent.GetIndex());
             OString txt8 = OUStringToOString(pMark->GetName(), RTL_TEXTENCODING_UTF8);
             writer.writeFormatAttribute("name", "%s", BAD_CAST( txt8.getStr()));
+
+            if (sw::mark::IFieldmark* pFieldmark = dynamic_cast<sw::mark::IFieldmark*>(pMark.get()))
+            {
+                sw::mark::IFieldmark::parameter_map_t* pParameters = pFieldmark->GetParameters();
+                if (pParameters)
+                {
+                    writer.startElement("parameters");
+                    for (sw::mark::IFieldmark::parameter_map_t::iterator parameter = pParameters->begin(); parameter != pParameters->end(); ++parameter)
+                    {
+                        writer.startElement("parameter");
+                        OString aName = OUStringToOString(parameter->first, RTL_TEXTENCODING_UTF8);
+                        writer.writeFormatAttribute("name", "%s", BAD_CAST(aName.getStr()));
+                        OString aValue = OUStringToOString(comphelper::anyToString(parameter->second), RTL_TEXTENCODING_UTF8);
+                        writer.writeFormatAttribute("value", "%s", BAD_CAST(aValue.getStr()));
+                        writer.endElement();
+                    }
+                    writer.endElement();
+                }
+            }
+
             writer.endElement();
         }
         writer.endElement();
-- 
cgit