SwFrmFmts: add a dumpAsXml() method
With this, it's possible to see properties of e.g. fly frames in a document. Change-Id: Iba68156ba7f0149dfea3e0a6367b71b8642a2a80
This commit is contained in:
@@ -81,6 +81,7 @@ public:
|
|||||||
virtual SwFmt* GetFmt(size_t idx) const SAL_OVERRIDE { return (SwFmt*)operator[](idx); }
|
virtual SwFmt* GetFmt(size_t idx) const SAL_OVERRIDE { return (SwFmt*)operator[](idx); }
|
||||||
sal_uInt16 GetPos(const SwFrmFmt* pFmt) const;
|
sal_uInt16 GetPos(const SwFrmFmt* pFmt) const;
|
||||||
bool Contains(const SwFrmFmt* pFmt) const;
|
bool Contains(const SwFrmFmt* pFmt) const;
|
||||||
|
void dumpAsXml(xmlTextWriterPtr w);
|
||||||
/// free's any remaining child objects
|
/// free's any remaining child objects
|
||||||
virtual ~SwFrmFmts();
|
virtual ~SwFrmFmts();
|
||||||
};
|
};
|
||||||
|
@@ -16,7 +16,11 @@
|
|||||||
#include "docufld.hxx"
|
#include "docufld.hxx"
|
||||||
#include "txatbase.hxx"
|
#include "txatbase.hxx"
|
||||||
#include "fmtautofmt.hxx"
|
#include "fmtautofmt.hxx"
|
||||||
|
#include "fmtcntnt.hxx"
|
||||||
#include "charfmt.hxx"
|
#include "charfmt.hxx"
|
||||||
|
#include "frmfmt.hxx"
|
||||||
|
#include "fmtanchr.hxx"
|
||||||
|
#include "fmtsrnd.hxx"
|
||||||
#include "paratr.hxx"
|
#include "paratr.hxx"
|
||||||
#include "redline.hxx"
|
#include "redline.hxx"
|
||||||
#include <swmodule.hxx>
|
#include <swmodule.hxx>
|
||||||
@@ -28,8 +32,10 @@
|
|||||||
#include <editeng/fhgtitem.hxx>
|
#include <editeng/fhgtitem.hxx>
|
||||||
#include <editeng/editobj.hxx>
|
#include <editeng/editobj.hxx>
|
||||||
#include <editeng/outlobj.hxx>
|
#include <editeng/outlobj.hxx>
|
||||||
|
#include <svx/xdef.hxx>
|
||||||
#include <svx/svdpage.hxx>
|
#include <svx/svdpage.hxx>
|
||||||
#include <svx/svdmodel.hxx>
|
#include <svx/svdmodel.hxx>
|
||||||
|
#include <svx/xfillit0.hxx>
|
||||||
#include <tools/datetimeutils.hxx>
|
#include <tools/datetimeutils.hxx>
|
||||||
|
|
||||||
#include <libxml/encoding.h>
|
#include <libxml/encoding.h>
|
||||||
@@ -171,6 +177,7 @@ void SwDoc::dumpAsXml( xmlTextWriterPtr w )
|
|||||||
mpFldTypes->dumpAsXml( writer );
|
mpFldTypes->dumpAsXml( writer );
|
||||||
mpTxtFmtCollTbl->dumpAsXml( writer );
|
mpTxtFmtCollTbl->dumpAsXml( writer );
|
||||||
mpCharFmtTbl->dumpAsXml( writer );
|
mpCharFmtTbl->dumpAsXml( writer );
|
||||||
|
mpSpzFrmFmtTbl->dumpAsXml( writer );
|
||||||
mpNumRuleTbl->dumpAsXml( writer );
|
mpNumRuleTbl->dumpAsXml( writer );
|
||||||
mpRedlineTbl->dumpAsXml( writer );
|
mpRedlineTbl->dumpAsXml( writer );
|
||||||
mpExtraRedlineTbl->dumpAsXml( writer );
|
mpExtraRedlineTbl->dumpAsXml( writer );
|
||||||
@@ -365,8 +372,8 @@ void lcl_dumpSfxItemSet(WriterHelper& writer, const SfxItemSet* pSet)
|
|||||||
css::uno::Any aAny;
|
css::uno::Any aAny;
|
||||||
static_cast<const SvxRsidItem*>(pItem)->QueryValue(aAny);
|
static_cast<const SvxRsidItem*>(pItem)->QueryValue(aAny);
|
||||||
oValue = OString::number(aAny.get<sal_uInt32>());
|
oValue = OString::number(aAny.get<sal_uInt32>());
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case RES_CHRATR_ROTATE: pWhich = "character rotation"; oValue = OString::number(static_cast<const SvxCharRotateItem*>(pItem)->GetValue()); break;
|
case RES_CHRATR_ROTATE: pWhich = "character rotation"; oValue = OString::number(static_cast<const SvxCharRotateItem*>(pItem)->GetValue()); break;
|
||||||
case RES_PARATR_OUTLINELEVEL: pWhich = "paragraph outline level"; oValue = OString::number(static_cast<const SfxUInt16Item*>(pItem)->GetValue()); break;
|
case RES_PARATR_OUTLINELEVEL: pWhich = "paragraph outline level"; oValue = OString::number(static_cast<const SfxUInt16Item*>(pItem)->GetValue()); break;
|
||||||
case RES_PARATR_NUMRULE: pWhich = "paragraph numbering rule"; oValue = OUStringToOString(static_cast<const SwNumRuleItem*>(pItem)->GetValue(), RTL_TEXTENCODING_UTF8); break;
|
case RES_PARATR_NUMRULE: pWhich = "paragraph numbering rule"; oValue = OUStringToOString(static_cast<const SwNumRuleItem*>(pItem)->GetValue(), RTL_TEXTENCODING_UTF8); break;
|
||||||
@@ -378,8 +385,103 @@ void lcl_dumpSfxItemSet(WriterHelper& writer, const SfxItemSet* pSet)
|
|||||||
pWhich = "character font size";
|
pWhich = "character font size";
|
||||||
const SvxFontHeightItem* pFontHeightItem = static_cast<const SvxFontHeightItem*>(pItem);
|
const SvxFontHeightItem* pFontHeightItem = static_cast<const SvxFontHeightItem*>(pItem);
|
||||||
oValue = "nHeight: " + OString::number(pFontHeightItem->GetHeight()) + ", nProp: " + OString::number(pFontHeightItem->GetProp());
|
oValue = "nHeight: " + OString::number(pFontHeightItem->GetHeight()) + ", nProp: " + OString::number(pFontHeightItem->GetProp());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case RES_CNTNT:
|
||||||
|
{
|
||||||
|
pWhich = "frame content";
|
||||||
|
const SwFmtCntnt* pCntnt = static_cast<const SwFmtCntnt*>(pItem);
|
||||||
|
oValue = "node index: " + OString::number(pCntnt->GetCntntIdx()->GetNode().GetIndex());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case RES_FRM_SIZE:
|
||||||
|
{
|
||||||
|
pWhich = "frame size";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case RES_VERT_ORIENT:
|
||||||
|
{
|
||||||
|
pWhich = "frame vertical orientation";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case RES_HORI_ORIENT:
|
||||||
|
{
|
||||||
|
pWhich = "frame horizontal orientation";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case RES_ANCHOR:
|
||||||
|
{
|
||||||
|
pWhich = "frame anchor";
|
||||||
|
const SwFmtAnchor* pAnchor = static_cast<const SwFmtAnchor*>(pItem);
|
||||||
|
const SwPosition* pPosition = pAnchor->GetCntntAnchor();
|
||||||
|
if (pPosition)
|
||||||
|
oValue = "node index: " + OString::number(pPosition->nNode.GetNode().GetIndex()) + ", index: " + OString::number(pPosition->nContent.GetIndex());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case RES_SURROUND:
|
||||||
|
{
|
||||||
|
pWhich = "frame surround";
|
||||||
|
const SwFmtSurround* pSurround = static_cast<const SwFmtSurround*>(pItem);
|
||||||
|
switch (pSurround->GetSurround())
|
||||||
|
{
|
||||||
|
case SURROUND_NONE:
|
||||||
|
oValue = "none";
|
||||||
|
break;
|
||||||
|
case SURROUND_THROUGHT:
|
||||||
|
oValue = "throught";
|
||||||
|
break;
|
||||||
|
case SURROUND_PARALLEL:
|
||||||
|
oValue = "parallel";
|
||||||
|
break;
|
||||||
|
case SURROUND_IDEAL:
|
||||||
|
oValue = "ideal";
|
||||||
|
break;
|
||||||
|
case SURROUND_LEFT:
|
||||||
|
oValue = "left";
|
||||||
|
break;
|
||||||
|
case SURROUND_RIGHT:
|
||||||
|
oValue = "right";
|
||||||
|
break;
|
||||||
|
case SURROUND_END:
|
||||||
|
oValue = "end";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case RES_FOLLOW_TEXT_FLOW:
|
||||||
|
{
|
||||||
|
pWhich = "frame follow text flow";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case RES_WRAP_INFLUENCE_ON_OBJPOS:
|
||||||
|
{
|
||||||
|
pWhich = "frame wrap influence on object position";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case XATTR_FILLSTYLE:
|
||||||
|
{
|
||||||
|
pWhich = "fill style";
|
||||||
|
const XFillStyleItem* pFillStyleItem = static_cast<const XFillStyleItem*>(pItem);
|
||||||
|
switch (pFillStyleItem->GetValue())
|
||||||
|
{
|
||||||
|
case XFILL_NONE:
|
||||||
|
oValue = "none";
|
||||||
|
break;
|
||||||
|
case XFILL_SOLID:
|
||||||
|
oValue = "solid";
|
||||||
|
break;
|
||||||
|
case XFILL_GRADIENT:
|
||||||
|
oValue = "gradient";
|
||||||
|
break;
|
||||||
|
case XFILL_HATCH:
|
||||||
|
oValue = "hatch";
|
||||||
|
break;
|
||||||
|
case XFILL_BITMAP:
|
||||||
|
oValue = "bitmap";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
if (pWhich)
|
if (pWhich)
|
||||||
writer.writeFormatAttribute("which", "%s", BAD_CAST(pWhich));
|
writer.writeFormatAttribute("which", "%s", BAD_CAST(pWhich));
|
||||||
@@ -390,6 +492,26 @@ void lcl_dumpSfxItemSet(WriterHelper& writer, const SfxItemSet* pSet)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SwFrmFmts::dumpAsXml(xmlTextWriterPtr w)
|
||||||
|
{
|
||||||
|
WriterHelper writer(w);
|
||||||
|
if (size())
|
||||||
|
{
|
||||||
|
writer.startElement("swfrmfmts");
|
||||||
|
for (size_t i = 0; i < size(); ++i)
|
||||||
|
{
|
||||||
|
SwFrmFmt* pFmt = static_cast<SwFrmFmt*>(GetFmt(i));
|
||||||
|
writer.startElement("swfrmfmt");
|
||||||
|
OString aName = OUStringToOString(pFmt->GetName(), RTL_TEXTENCODING_UTF8);
|
||||||
|
writer.writeFormatAttribute("name", "%s", BAD_CAST(aName.getStr()));
|
||||||
|
|
||||||
|
lcl_dumpSfxItemSet(writer, &pFmt->GetAttrSet());
|
||||||
|
writer.endElement();
|
||||||
|
}
|
||||||
|
writer.endElement();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void SwCharFmts::dumpAsXml(xmlTextWriterPtr w)
|
void SwCharFmts::dumpAsXml(xmlTextWriterPtr w)
|
||||||
{
|
{
|
||||||
WriterHelper writer(w);
|
WriterHelper writer(w);
|
||||||
|
Reference in New Issue
Block a user