summaryrefslogtreecommitdiff
path: root/xmloff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2020-08-27 13:05:14 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-08-27 20:48:36 +0200
commitc995359be1b768d9848ebbeac57765e217f5acff (patch)
treebb4223767b5dc293dde9942972cf310024cde9bc /xmloff
parent2730ae520da2c47ac1cabaa3ddcc43359aae5875 (diff)
use fastparser in CreateHeaderFooterContext
Change-Id: Ic0a4e4911bb56fd9731e0e9d3850387b1f26b1d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101474 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'xmloff')
-rw-r--r--xmloff/inc/XMLTextHeaderFooterContext.hxx8
-rw-r--r--xmloff/source/text/XMLTextHeaderFooterContext.cxx9
-rw-r--r--xmloff/source/text/XMLTextMasterPageContext.cxx44
3 files changed, 25 insertions, 36 deletions
diff --git a/xmloff/inc/XMLTextHeaderFooterContext.hxx b/xmloff/inc/XMLTextHeaderFooterContext.hxx
index 2a251b8fd37e..86ac28b1f558 100644
--- a/xmloff/inc/XMLTextHeaderFooterContext.hxx
+++ b/xmloff/inc/XMLTextHeaderFooterContext.hxx
@@ -44,9 +44,7 @@ class XMLTextHeaderFooterContext final : public SvXMLImportContext
public:
- XMLTextHeaderFooterContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList,
+ XMLTextHeaderFooterContext( SvXMLImport& rImport,
const css::uno::Reference< css::beans::XPropertySet > & rPageStylePropSet,
bool bFooter, bool bLft, bool bFrst );
@@ -57,7 +55,9 @@ public:
const OUString& rLocalName,
const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList ) override;
- virtual void EndElement() override;
+ virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
+ virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
};
diff --git a/xmloff/source/text/XMLTextHeaderFooterContext.cxx b/xmloff/source/text/XMLTextHeaderFooterContext.cxx
index 38dc32dd1e46..5437cb508f71 100644
--- a/xmloff/source/text/XMLTextHeaderFooterContext.cxx
+++ b/xmloff/source/text/XMLTextHeaderFooterContext.cxx
@@ -32,13 +32,10 @@ using namespace ::com::sun::star::text;
using namespace ::com::sun::star::beans;
-XMLTextHeaderFooterContext::XMLTextHeaderFooterContext( SvXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const uno::Reference<
- xml::sax::XAttributeList > &,
+XMLTextHeaderFooterContext::XMLTextHeaderFooterContext( SvXMLImport& rImport,
const Reference < XPropertySet > & rPageStylePropSet,
bool bFooter, bool bLft, bool bFrst ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
+ SvXMLImportContext( rImport ),
xPropSet( rPageStylePropSet ),
sOn( bFooter ? OUString("FooterIsOn") : OUString("HeaderIsOn") ),
sShareContent( bFooter ? OUString("FooterIsShared") : OUString("HeaderIsShared") ),
@@ -176,7 +173,7 @@ SvXMLImportContextRef XMLTextHeaderFooterContext::CreateChildContext(
return pContext;
}
-void XMLTextHeaderFooterContext::EndElement()
+void XMLTextHeaderFooterContext::endFastElement(sal_Int32 )
{
if( xOldTextCursor.is() )
{
diff --git a/xmloff/source/text/XMLTextMasterPageContext.cxx b/xmloff/source/text/XMLTextMasterPageContext.cxx
index c5b98ea4cc34..ff005f65c5ab 100644
--- a/xmloff/source/text/XMLTextMasterPageContext.cxx
+++ b/xmloff/source/text/XMLTextMasterPageContext.cxx
@@ -178,46 +178,44 @@ XMLTextMasterPageContext::~XMLTextMasterPageContext()
{
}
-SvXMLImportContextRef XMLTextMasterPageContext::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< XAttributeList > & xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > XMLTextMasterPageContext::createFastChildContext(
+ sal_Int32 nElement,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
SvXMLImportContextRef xContext;
- const SvXMLTokenMap& rTokenMap =
- GetImport().GetTextImport()->GetTextMasterPageElemTokenMap();
-
bool bInsert = false, bFooter = false, bLeft = false, bFirst = false;
- switch( rTokenMap.Get( nPrefix, rLocalName ) )
+ switch( nElement )
{
- case XML_TOK_TEXT_MP_HEADER:
+ case XML_ELEMENT(STYLE, XML_HEADER):
if( bInsertHeader && !bHeaderInserted )
{
bInsert = true;
bHeaderInserted = true;
}
break;
- case XML_TOK_TEXT_MP_FOOTER:
+ case XML_ELEMENT(STYLE, XML_FOOTER):
if( bInsertFooter && !bFooterInserted )
{
bInsert = bFooter = true;
bFooterInserted = true;
}
break;
- case XML_TOK_TEXT_MP_HEADER_LEFT:
+ case XML_ELEMENT(STYLE, XML_HEADER_LEFT):
if( bInsertHeaderLeft && bHeaderInserted )
bInsert = bLeft = true;
break;
- case XML_TOK_TEXT_MP_FOOTER_LEFT:
+ case XML_ELEMENT(STYLE, XML_FOOTER_LEFT):
if( bInsertFooterLeft && bFooterInserted )
bInsert = bFooter = bLeft = true;
break;
- case XML_TOK_TEXT_MP_HEADER_FIRST:
+ case XML_ELEMENT(LO_EXT, XML_HEADER_FIRST):
+ case XML_ELEMENT(STYLE, XML_HEADER_FIRST):
if( bInsertHeaderFirst && bHeaderInserted )
bInsert = bFirst = true;
break;
- case XML_TOK_TEXT_MP_FOOTER_FIRST:
+ case XML_ELEMENT(LO_EXT, XML_FOOTER_FIRST):
+ case XML_ELEMENT(STYLE, XML_FOOTER_FIRST):
if( bInsertFooterFirst && bFooterInserted )
bInsert = bFooter = bFirst = true;
break;
@@ -225,28 +223,22 @@ SvXMLImportContextRef XMLTextMasterPageContext::CreateChildContext(
if( bInsert && xStyle.is() )
{
- xContext = CreateHeaderFooterContext( nPrefix, rLocalName,
- xAttrList,
- bFooter, bLeft, bFirst );
+ xContext = CreateHeaderFooterContext( nElement, xAttrList,
+ bFooter, bLeft, bFirst );
}
- return xContext;
+ return xContext.get();
}
SvXMLImportContext *XMLTextMasterPageContext::CreateHeaderFooterContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList,
+ sal_Int32 /*nElement*/,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList > & /*xAttrList*/,
const bool bFooter,
const bool bLeft,
const bool bFirst )
{
Reference < XPropertySet > xPropSet( xStyle, UNO_QUERY );
- return new XMLTextHeaderFooterContext( GetImport(),
- nPrefix, rLocalName,
- xAttrList,
- xPropSet,
- bFooter, bLeft, bFirst );
+ return new XMLTextHeaderFooterContext( GetImport(), xPropSet, bFooter, bLeft, bFirst );
}
void XMLTextMasterPageContext::Finish( bool bOverwrite )