diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-08-27 13:05:14 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-08-27 20:48:36 +0200 |
commit | c995359be1b768d9848ebbeac57765e217f5acff (patch) | |
tree | bb4223767b5dc293dde9942972cf310024cde9bc /xmloff | |
parent | 2730ae520da2c47ac1cabaa3ddcc43359aae5875 (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.hxx | 8 | ||||
-rw-r--r-- | xmloff/source/text/XMLTextHeaderFooterContext.cxx | 9 | ||||
-rw-r--r-- | xmloff/source/text/XMLTextMasterPageContext.cxx | 44 |
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 ) |