Kaydet (Commit) 6aeaa963 authored tarafından Miklos Vajna's avatar Miklos Vajna

sw: remove now unused WriterHelper

This concludes the ongoing various dumpXml() cleanups of mine since
2014-11-24 in the sw doc model xml dumper.

Change-Id: I8e9f7c8d9443df3763b7d3073541dbe03b662f4c
üst ddfde577
...@@ -230,7 +230,6 @@ $(eval $(call gb_Library_add_exception_objects,sw,\ ...@@ -230,7 +230,6 @@ $(eval $(call gb_Library_add_exception_objects,sw,\
sw/source/core/docnode/ndtbl \ sw/source/core/docnode/ndtbl \
sw/source/core/docnode/ndtbl1 \ sw/source/core/docnode/ndtbl1 \
sw/source/core/docnode/node \ sw/source/core/docnode/node \
sw/source/core/docnode/nodedump \
sw/source/core/docnode/node2lay \ sw/source/core/docnode/node2lay \
sw/source/core/docnode/nodes \ sw/source/core/docnode/nodes \
sw/source/core/docnode/observablethread \ sw/source/core/docnode/observablethread \
......
...@@ -108,7 +108,7 @@ public: ...@@ -108,7 +108,7 @@ public:
bool Contains(Value const& p) const bool Contains(Value const& p) const
{ return std::find(begin(), end(), p) != end(); } { return std::find(begin(), end(), p) != end(); }
void dumpAsXml(xmlTextWriterPtr) const {}; void dumpAsXml(struct _xmlTextWriter* /*pWriter*/) const {};
}; };
template<typename Value> template<typename Value>
...@@ -142,39 +142,39 @@ public: ...@@ -142,39 +142,39 @@ public:
class SW_DLLPUBLIC SwFrmFmts : public SwFmtsModifyBase<SwFrmFmt*> class SW_DLLPUBLIC SwFrmFmts : public SwFmtsModifyBase<SwFrmFmt*>
{ {
public: public:
void dumpAsXml(xmlTextWriterPtr w, const char* pName) const; void dumpAsXml(struct _xmlTextWriter* pWriter, const char* pName) const;
}; };
class SwCharFmts : public SwFmtsModifyBase<SwCharFmt*> class SwCharFmts : public SwFmtsModifyBase<SwCharFmt*>
{ {
public: public:
void dumpAsXml(xmlTextWriterPtr w) const; void dumpAsXml(struct _xmlTextWriter* pWriter) const;
}; };
class SwTxtFmtColls : public SwFmtsModifyBase<SwTxtFmtColl*> class SwTxtFmtColls : public SwFmtsModifyBase<SwTxtFmtColl*>
{ {
public: public:
SwTxtFmtColls() : SwFmtsModifyBase( DestructorPolicy::KeepElements ) {} SwTxtFmtColls() : SwFmtsModifyBase( DestructorPolicy::KeepElements ) {}
void dumpAsXml(xmlTextWriterPtr w) const; void dumpAsXml(struct _xmlTextWriter* pWriter) const;
}; };
/// Array of Undo-history. /// Array of Undo-history.
class SW_DLLPUBLIC SwSectionFmts : public SwFmtsModifyBase<SwSectionFmt*> class SW_DLLPUBLIC SwSectionFmts : public SwFmtsModifyBase<SwSectionFmt*>
{ {
public: public:
void dumpAsXml(xmlTextWriterPtr w) const; void dumpAsXml(struct _xmlTextWriter* pWriter) const;
}; };
class SwFldTypes : public SwVectorModifyBase<SwFieldType*> { class SwFldTypes : public SwVectorModifyBase<SwFieldType*> {
public: public:
void dumpAsXml(xmlTextWriterPtr w) const; void dumpAsXml(struct _xmlTextWriter* pWriter) const;
}; };
class SwTOXTypes : public SwVectorModifyBase<SwTOXType*> {}; class SwTOXTypes : public SwVectorModifyBase<SwTOXType*> {};
class SW_DLLPUBLIC SwNumRuleTbl : public SwVectorModifyBase<SwNumRule*> { class SW_DLLPUBLIC SwNumRuleTbl : public SwVectorModifyBase<SwNumRule*> {
public: public:
void dumpAsXml(xmlTextWriterPtr w) const; void dumpAsXml(struct _xmlTextWriter* pWriter) const;
}; };
struct CompareSwRedlineTbl struct CompareSwRedlineTbl
...@@ -249,7 +249,7 @@ public: ...@@ -249,7 +249,7 @@ public:
void DeleteAndDestroy( sal_uInt16 nPos, sal_uInt16 nLen = 1 ); void DeleteAndDestroy( sal_uInt16 nPos, sal_uInt16 nLen = 1 );
void DeleteAndDestroyAll(); void DeleteAndDestroyAll();
void dumpAsXml(xmlTextWriterPtr w) const; void dumpAsXml(struct _xmlTextWriter* pWriter) const;
sal_uInt16 GetSize() const { return m_aExtraRedlines.size(); } sal_uInt16 GetSize() const { return m_aExtraRedlines.size(); }
SwExtraRedline* GetRedline( sal_uInt16 uIndex ) const { return m_aExtraRedlines.operator[]( uIndex ); } SwExtraRedline* GetRedline( sal_uInt16 uIndex ) const { return m_aExtraRedlines.operator[]( uIndex ); }
......
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "doc.hxx"
#include "drawdoc.hxx"
#include <IDocumentDrawModelAccess.hxx>
#include <IDocumentFieldsAccess.hxx>
#include <IDocumentState.hxx>
#include <UndoManager.hxx>
#include "ndtxt.hxx"
#include "MarkManager.hxx"
#include "switerator.hxx"
#include "docufld.hxx"
#include "txatbase.hxx"
#include "redline.hxx"
#include <swmodule.hxx>
#include <svl/itemiter.hxx>
#include <tools/datetimeutils.hxx>
#include <libxml/xmlwriter.h>
using namespace com::sun::star;
namespace
{
// Small helper class to ensure that we write to nodes.xml if nothing
// has been explicitly specified.
// Always use at the beginning of dumpAsXml().
// Also, there are some functions to save typing.
class WriterHelper
{
public:
WriterHelper( xmlTextWriterPtr );
~WriterHelper();
void startElement( const char* element );
void endElement();
void writeFormatAttribute( const char* attribute, const char* format, ... )
#ifdef LIBXML_ATTR_FORMAT
LIBXML_ATTR_FORMAT(3,4)
#endif
;
private:
xmlTextWriterPtr writer;
bool owns;
};
WriterHelper::WriterHelper( xmlTextWriterPtr w )
: writer( w )
, owns( false )
{
if( writer == NULL )
{
writer = xmlNewTextWriterFilename( "nodes.xml", 0 );
xmlTextWriterStartDocument( writer, NULL, NULL, NULL );
owns = true;
}
}
WriterHelper::~WriterHelper()
{
if( owns )
{
xmlTextWriterEndDocument( writer );
xmlFreeTextWriter( writer );
}
}
void WriterHelper::startElement( const char* element )
{
xmlTextWriterStartElement( writer, BAD_CAST( element ));
}
void WriterHelper::endElement()
{
xmlTextWriterEndElement( writer );
}
void WriterHelper::writeFormatAttribute( const char* attribute, const char* format, ... )
{
va_list va;
va_start( va, format );
xmlTextWriterWriteVFormatAttribute( writer, BAD_CAST( attribute ), format, va );
va_end( va );
}
}
void SwFldTypes::dumpAsXml( xmlTextWriterPtr w ) const
{
WriterHelper writer(w);
writer.startElement("swfldtypes");
sal_uInt16 nCount = size();
for (sal_uInt16 nType = 0; nType < nCount; ++nType)
{
const SwFieldType *pCurType = (*this)[nType];
SwIterator<SwFmtFld, SwFieldType> aIter(*pCurType);
for (const SwFmtFld* pCurFldFmt = aIter.First(); pCurFldFmt; pCurFldFmt = aIter.Next())
{
writer.startElement("swfmtfld");
writer.writeFormatAttribute("ptr", "%p", pCurFldFmt);
writer.writeFormatAttribute("pTxtAttr", "%p", pCurFldFmt->GetTxtFld());
const char* name = "FIXME_unhandledfield";
switch(pCurFldFmt->GetField()->GetTyp()->Which())
{
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->GetField()->GetTyp()->Which());
break;
}
writer.startElement(name);
writer.writeFormatAttribute("ptr", "%p", pCurFldFmt->GetField());
const SwPostItField* pField = NULL;
if (pCurFldFmt->GetField()->GetTyp()->Which() == RES_POSTITFLD)
pField = dynamic_cast<const SwPostItField*>(pCurFldFmt->GetField());
if (pField)
{
OString txt8 = OUStringToOString(pField->GetName(), RTL_TEXTENCODING_UTF8);
writer.writeFormatAttribute("name", "%s", BAD_CAST( txt8.getStr()));
}
writer.endElement();
writer.endElement();
}
}
writer.endElement();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -17,7 +17,13 @@ ...@@ -17,7 +17,13 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 . * the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/ */
#include <fldbas.hxx>
#include <float.h> #include <float.h>
#include <math.h>
#include <libxml/xmlwriter.h>
#include <rtl/math.hxx> #include <rtl/math.hxx>
#include <svl/zforlist.hxx> #include <svl/zforlist.hxx>
#include <svl/zformat.hxx> #include <svl/zformat.hxx>
...@@ -26,7 +32,6 @@ ...@@ -26,7 +32,6 @@
#include <doc.hxx> #include <doc.hxx>
#include <editsh.hxx> #include <editsh.hxx>
#include <frame.hxx> #include <frame.hxx>
#include <fldbas.hxx>
#include <flddat.hxx> #include <flddat.hxx>
#include <ndtxt.hxx> #include <ndtxt.hxx>
#include <fmtfld.hxx> #include <fmtfld.hxx>
...@@ -41,8 +46,7 @@ ...@@ -41,8 +46,7 @@
#include <comcore.hrc> #include <comcore.hrc>
#include <docary.hxx> #include <docary.hxx>
#include <authfld.hxx> #include <authfld.hxx>
#include <switerator.hxx>
#include <math.h>
using namespace ::com::sun::star; using namespace ::com::sun::star;
using namespace nsSwDocInfoSubType; using namespace nsSwDocInfoSubType;
...@@ -150,6 +154,36 @@ bool SwFieldType::PutValue( const uno::Any& , sal_uInt16 ) ...@@ -150,6 +154,36 @@ bool SwFieldType::PutValue( const uno::Any& , sal_uInt16 )
return false; return false;
} }
void SwFldTypes::dumpAsXml(xmlTextWriterPtr pWriter) const
{
xmlTextWriterStartElement(pWriter, BAD_CAST("swFldTypes"));
sal_uInt16 nCount = size();
for (sal_uInt16 nType = 0; nType < nCount; ++nType)
{
const SwFieldType *pCurType = (*this)[nType];
SwIterator<SwFmtFld, SwFieldType> aIter(*pCurType);
for (const SwFmtFld* pCurFldFmt = aIter.First(); pCurFldFmt; pCurFldFmt = aIter.Next())
{
xmlTextWriterStartElement(pWriter, BAD_CAST("swFmtFld"));
xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("ptr"), "%p", pCurFldFmt);
xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("txtFld"), "%p", pCurFldFmt->GetTxtFld());
xmlTextWriterStartElement(pWriter, BAD_CAST("swField"));
xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("symbol"), "%s", BAD_CAST(typeid(*pCurFldFmt->GetField()).name()));
xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("ptr"), "%p", pCurFldFmt->GetField());
if (pCurFldFmt->GetField()->GetTyp()->Which() == RES_POSTITFLD)
{
const SwPostItField* pField = static_cast<const SwPostItField*>(pCurFldFmt->GetField());
xmlTextWriterWriteAttribute(pWriter, BAD_CAST("name"), BAD_CAST(pField->GetName().toUtf8().getStr()));
}
xmlTextWriterEndElement(pWriter);
xmlTextWriterEndElement(pWriter);
}
}
xmlTextWriterEndElement(pWriter);
}
// Base class for all fields. // Base class for all fields.
// A field (multiple can exist) references a field type (can exists only once) // A field (multiple can exist) references a field type (can exists only once)
SwField::SwField( SwField::SwField(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment