sc/source/filter/xml/XMLTableShapesContext.cxx | 11 -- sc/source/filter/xml/XMLTableShapesContext.hxx | 7 - sc/source/filter/xml/XMLTableSourceContext.cxx | 65 +++++------- sc/source/filter/xml/XMLTableSourceContext.hxx | 12 -- sc/source/filter/xml/xmlcoli.cxx | 106 ++++++++----------- sc/source/filter/xml/xmlcoli.hxx | 24 +--- sc/source/filter/xml/xmlcondformat.cxx | 7 - sc/source/filter/xml/xmlcondformat.hxx | 5 sc/source/filter/xml/xmllabri.cxx | 67 +++++------- sc/source/filter/xml/xmllabri.hxx | 23 ++-- sc/source/filter/xml/xmlsceni.cxx | 109 ++++++++------------ sc/source/filter/xml/xmlsceni.hxx | 12 -- sc/source/filter/xml/xmltabi.cxx | 135 +++++++++++-------------- sc/source/filter/xml/xmltabi.hxx | 12 -- 14 files changed, 259 insertions(+), 336 deletions(-)
New commits: commit a9588baca8137f51e2ca72e40b1f448b0e1885d1 Author: Mohammed Abdul Azeem <azeemmys...@gmail.com> Date: Fri Jul 21 00:42:03 2017 +0530 Moving legacy contexts to FastContexts: ScXMLTableShapesContext ScXMLTableSourceContext ScXMLTableColContext ScXMLTableColsContext ScXMLConditionalFormatsContext ScXMLTableProtectionContext Change-Id: I36704c7f51cd5d13b3c0ebf9bc07b172c1576f3e Reviewed-on: https://gerrit.libreoffice.org/40246 Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Jenkins <c...@libreoffice.org> diff --git a/sc/source/filter/xml/XMLTableShapesContext.cxx b/sc/source/filter/xml/XMLTableShapesContext.cxx index 4aa69c0b65cd..35ca7bace2a9 100644 --- a/sc/source/filter/xml/XMLTableShapesContext.cxx +++ b/sc/source/filter/xml/XMLTableShapesContext.cxx @@ -25,10 +25,9 @@ using namespace com::sun::star; ScXMLTableShapesContext::ScXMLTableShapesContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */ ) : - ScXMLImportContext( rImport, nPrfx, rLName ) + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& /* xAttrList */ ) : + ScXMLImportContext( rImport ) { // here are no attributes } @@ -59,8 +58,4 @@ SvXMLImportContext *ScXMLTableShapesContext::CreateChildContext( sal_uInt16 nPre return pContext; } -void ScXMLTableShapesContext::EndElement() -{ -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/filter/xml/XMLTableShapesContext.hxx b/sc/source/filter/xml/XMLTableShapesContext.hxx index db9a3f3b2f20..93d85e3a47d6 100644 --- a/sc/source/filter/xml/XMLTableShapesContext.hxx +++ b/sc/source/filter/xml/XMLTableShapesContext.hxx @@ -27,17 +27,14 @@ class ScXMLTableShapesContext : public ScXMLImportContext { public: - ScXMLTableShapesContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList); + ScXMLTableShapesContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList); virtual ~ScXMLTableShapesContext() override; virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; - - virtual void EndElement() override; }; #endif diff --git a/sc/source/filter/xml/XMLTableSourceContext.cxx b/sc/source/filter/xml/XMLTableSourceContext.cxx index 8909adb7f0b4..7d0c936a0346 100644 --- a/sc/source/filter/xml/XMLTableSourceContext.cxx +++ b/sc/source/filter/xml/XMLTableSourceContext.cxx @@ -32,10 +32,9 @@ using namespace com::sun::star; using namespace xmloff::token; ScXMLTableSourceContext::ScXMLTableSourceContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList) : - ScXMLImportContext( rImport, nPrfx, rLName ), + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList) : + ScXMLImportContext( rImport ), sLink(), sTableName(), sFilterName(), @@ -43,37 +42,36 @@ ScXMLTableSourceContext::ScXMLTableSourceContext( ScXMLImport& rImport, nRefresh(0), nMode(sheet::SheetLinkMode_NORMAL) { - sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0); - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName )); - const OUString& sValue(xAttrList->getValueByIndex( i )); - if(nPrefix == XML_NAMESPACE_XLINK) - { - if (IsXMLToken(aLocalName, XML_HREF)) - sLink = GetScImport().GetAbsoluteReference(sValue); - } - else if (nPrefix == XML_NAMESPACE_TABLE) + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); + + for (auto &aIter : *pAttribList) { - if (IsXMLToken(aLocalName, XML_TABLE_NAME)) - sTableName = sValue; - else if (IsXMLToken(aLocalName, XML_FILTER_NAME)) - sFilterName = sValue; - else if (IsXMLToken(aLocalName, XML_FILTER_OPTIONS)) - sFilterOptions = sValue; - else if (IsXMLToken(aLocalName, XML_MODE)) + switch (aIter.getToken()) { - if (IsXMLToken(sValue, XML_COPY_RESULTS_ONLY)) + case XML_ELEMENT( XLINK, XML_HREF ): + sLink = GetScImport().GetAbsoluteReference(aIter.toString()); + break; + case XML_ELEMENT( TABLE, XML_TABLE_NAME ): + sTableName = aIter.toString(); + break; + case XML_ELEMENT( TABLE, XML_FILTER_NAME): + sFilterName = aIter.toString(); + break; + case XML_ELEMENT( TABLE, XML_FILTER_OPTIONS ): + sFilterOptions = aIter.toString(); + break; + case XML_ELEMENT( TABLE, XML_MODE ): + if (IsXMLToken(aIter, XML_COPY_RESULTS_ONLY)) nMode = sheet::SheetLinkMode_VALUE; - } - else if (IsXMLToken(aLocalName, XML_REFRESH_DELAY)) - { + break; + case XML_ELEMENT( TABLE, XML_REFRESH_DELAY ): double fTime; - if (::sax::Converter::convertDuration( fTime, sValue )) + if (::sax::Converter::convertDuration( fTime, aIter.toString() )) nRefresh = std::max( (sal_Int32)(fTime * 86400.0), (sal_Int32)0 ); + break; } } } @@ -83,14 +81,13 @@ ScXMLTableSourceContext::~ScXMLTableSourceContext() { } -SvXMLImportContext *ScXMLTableSourceContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */ ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLTableSourceContext::createFastChildContext( + sal_Int32 /*nElement*/, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) { - return new SvXMLImportContext( GetImport(), nPrefix, rLName ); + return new SvXMLImportContext( GetImport() ); } -void ScXMLTableSourceContext::EndElement() +void SAL_CALL ScXMLTableSourceContext::endFastElement( sal_Int32 /*nElement*/ ) { if (!sLink.isEmpty()) { diff --git a/sc/source/filter/xml/XMLTableSourceContext.hxx b/sc/source/filter/xml/XMLTableSourceContext.hxx index 31791c0f4a08..32805d92b933 100644 --- a/sc/source/filter/xml/XMLTableSourceContext.hxx +++ b/sc/source/filter/xml/XMLTableSourceContext.hxx @@ -35,17 +35,15 @@ class ScXMLTableSourceContext : public ScXMLImportContext css::sheet::SheetLinkMode nMode; public: - ScXMLTableSourceContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList); + ScXMLTableSourceContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList); virtual ~ScXMLTableSourceContext() override; - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( + sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; - virtual void EndElement() override; + virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override; }; #endif diff --git a/sc/source/filter/xml/xmlcoli.cxx b/sc/source/filter/xml/xmlcoli.cxx index 2b90f841284d..ac61900a426b 100644 --- a/sc/source/filter/xml/xmlcoli.cxx +++ b/sc/source/filter/xml/xmlcoli.cxx @@ -40,47 +40,43 @@ using namespace com::sun::star; using namespace xmloff::token; ScXMLTableColContext::ScXMLTableColContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) : - ScXMLImportContext( rImport, nPrfx, rLName ), + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList ) : + ScXMLImportContext( rImport ), sVisibility(GetXMLToken(XML_VISIBLE)) { nColCount = 1; - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetTableColAttrTokenMap(); - - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_TABLE_COL_ATTR_REPEATED: + switch (aIter.getToken()) + { + case XML_ELEMENT( TABLE, XML_NUMBER_COLUMNS_REPEATED ): { - nColCount = std::max<sal_Int32>(sValue.toInt32(), 1); + nColCount = std::max<sal_Int32>(aIter.toInt32(), 1); nColCount = std::min<sal_Int32>(nColCount, MAXCOLCOUNT); } break; - case XML_TOK_TABLE_COL_ATTR_STYLE_NAME: + case XML_ELEMENT( TABLE, XML_STYLE_NAME ): { - sStyleName = sValue; + sStyleName = aIter.toString(); } break; - case XML_TOK_TABLE_COL_ATTR_VISIBILITY: + case XML_ELEMENT( TABLE, XML_VISIBILITY ): { - sVisibility = sValue; + sVisibility = aIter.toString(); } break; - case XML_TOK_TABLE_COL_ATTR_DEFAULT_CELL_STYLE_NAME: + case XML_ELEMENT( TABLE, XML_DEFAULT_CELL_STYLE_NAME ): { - sCellStyleName = sValue; + sCellStyleName = aIter.toString(); } break; + } } } } @@ -89,14 +85,13 @@ ScXMLTableColContext::~ScXMLTableColContext() { } -SvXMLImportContext *ScXMLTableColContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& /* xAttrList */ ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLTableColContext::createFastChildContext( + sal_Int32 /*nElement*/, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) { - return new SvXMLImportContext( GetImport(), nPrefix, rLName ); + return new SvXMLImportContext( GetImport() ); } -void ScXMLTableColContext::EndElement() +void SAL_CALL ScXMLTableColContext::endFastElement( sal_Int32 /*nElement*/ ) { ScXMLImport& rXMLImport = GetScImport(); SCTAB nSheet = rXMLImport.GetTables().GetCurrentSheet(); @@ -152,11 +147,10 @@ void ScXMLTableColContext::EndElement() } ScXMLTableColsContext::ScXMLTableColsContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + sal_Int32 /*nElement*/, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, const bool bTempHeader, const bool bTempGroup) : - ScXMLImportContext( rImport, nPrfx, rLName ), + ScXMLImportContext( rImport ), nHeaderStartCol(0), nHeaderEndCol(0), nGroupStartCol(0), @@ -171,20 +165,14 @@ ScXMLTableColsContext::ScXMLTableColsContext( ScXMLImport& rImport, else if (bGroup) { nGroupStartCol = rImport.GetTables().GetCurrentColCount(); - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - for( sal_Int16 i=0; i < nAttrCount; ++i ) + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName ); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - if (nPrefix == XML_NAMESPACE_TABLE && IsXMLToken(aLocalName, XML_DISPLAY)) - { - if (IsXMLToken(sValue, XML_FALSE)) - bGroupDisplay = false; - } + auto &aIter( pAttribList->find( XML_ELEMENT( TABLE, XML_DISPLAY ) ) ); + if ( aIter != pAttribList->end() && IsXMLToken(aIter, XML_FALSE) ) + bGroupDisplay = false; } } } @@ -193,45 +181,39 @@ ScXMLTableColsContext::~ScXMLTableColsContext() { } -SvXMLImportContext *ScXMLTableColsContext::CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLTableColsContext::createFastChildContext( + sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) { SvXMLImportContext *pContext = nullptr; - const SvXMLTokenMap& rTokenMap = GetScImport().GetTableColsElemTokenMap(); - switch( rTokenMap.Get( nPrefix, rLName ) ) + switch (nElement) { - case XML_TOK_TABLE_COLS_COL_GROUP: - pContext = new ScXMLTableColsContext( GetScImport(), nPrefix, - rLName, xAttrList, + case XML_ELEMENT( TABLE, XML_TABLE_COLUMN_GROUP ): + pContext = new ScXMLTableColsContext( GetScImport(), nElement, xAttrList, false, true ); break; - case XML_TOK_TABLE_COLS_HEADER_COLS: - pContext = new ScXMLTableColsContext( GetScImport(), nPrefix, - rLName, xAttrList, + case XML_ELEMENT( TABLE, XML_TABLE_HEADER_COLUMNS ): + pContext = new ScXMLTableColsContext( GetScImport(), nElement, xAttrList, true, false ); break; - case XML_TOK_TABLE_COLS_COLS: - pContext = new ScXMLTableColsContext( GetScImport(), nPrefix, - rLName, xAttrList, + case XML_ELEMENT( TABLE, XML_TABLE_COLUMNS ): + pContext = new ScXMLTableColsContext( GetScImport(), nElement, xAttrList, false, false ); break; - case XML_TOK_TABLE_COLS_COL: - pContext = new ScXMLTableColContext( GetScImport(), nPrefix, - rLName, xAttrList//, + case XML_ELEMENT( TABLE, XML_TABLE_COLUMN ): + pContext = new ScXMLTableColContext( GetScImport(), nElement, xAttrList//, //this ); break; } if( !pContext ) - pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName ); + pContext = new SvXMLImportContext( GetImport() ); return pContext; } -void ScXMLTableColsContext::EndElement() +void SAL_CALL ScXMLTableColsContext::endFastElement( sal_Int32 /*nElement*/ ) { ScXMLImport& rXMLImport = GetScImport(); if (bHeader) diff --git a/sc/source/filter/xml/xmlcoli.hxx b/sc/source/filter/xml/xmlcoli.hxx index 85aaa640eecc..9b7d2a2a9378 100644 --- a/sc/source/filter/xml/xmlcoli.hxx +++ b/sc/source/filter/xml/xmlcoli.hxx @@ -33,17 +33,15 @@ class ScXMLTableColContext : public ScXMLImportContext public: - ScXMLTableColContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ); + ScXMLTableColContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList ); virtual ~ScXMLTableColContext() override; - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( + sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; - virtual void EndElement() override; + virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override; }; class ScXMLTableColsContext : public ScXMLImportContext @@ -58,18 +56,16 @@ class ScXMLTableColsContext : public ScXMLImportContext public: - ScXMLTableColsContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList, + ScXMLTableColsContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList, const bool bHeader, const bool bGroup); virtual ~ScXMLTableColsContext() override; - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( + sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; - virtual void EndElement() override; + virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override; }; #endif diff --git a/sc/source/filter/xml/xmlcondformat.cxx b/sc/source/filter/xml/xmlcondformat.cxx index 91b0d6e7e5c1..921fe8d8e233 100644 --- a/sc/source/filter/xml/xmlcondformat.cxx +++ b/sc/source/filter/xml/xmlcondformat.cxx @@ -21,9 +21,8 @@ #include "XMLConverter.hxx" #include "stylehelper.hxx" -ScXMLConditionalFormatsContext::ScXMLConditionalFormatsContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName): - ScXMLImportContext( rImport, nPrfx, rLName ) +ScXMLConditionalFormatsContext::ScXMLConditionalFormatsContext( ScXMLImport& rImport, sal_Int32 /*nElement*/ ): + ScXMLImportContext( rImport ) { GetScImport().SetNewCondFormatData(); GetScImport().GetDocument()->SetCondFormList(new ScConditionalFormatList(), GetScImport().GetTables().GetCurrentSheet()); @@ -46,7 +45,7 @@ SvXMLImportContext* ScXMLConditionalFormatsContext::CreateChildContext( sal_uInt return pContext; } -void ScXMLConditionalFormatsContext::EndElement() +void SAL_CALL ScXMLConditionalFormatsContext::endFastElement( sal_Int32 /*nElement*/ ) { ScDocument* pDoc = GetScImport().GetDocument(); diff --git a/sc/source/filter/xml/xmlcondformat.hxx b/sc/source/filter/xml/xmlcondformat.hxx index 593d65f45b55..d2639da97364 100644 --- a/sc/source/filter/xml/xmlcondformat.hxx +++ b/sc/source/filter/xml/xmlcondformat.hxx @@ -26,14 +26,13 @@ struct ScIconSetFormatData; class ScXMLConditionalFormatsContext : public ScXMLImportContext { public: - ScXMLConditionalFormatsContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName ); + ScXMLConditionalFormatsContext( ScXMLImport& rImport, sal_Int32 nElement ); virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; - virtual void EndElement() override; + virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override; }; class ScXMLConditionalFormatContext : public ScXMLImportContext diff --git a/sc/source/filter/xml/xmllabri.cxx b/sc/source/filter/xml/xmllabri.cxx index d895157866aa..2c8d31e105e0 100644 --- a/sc/source/filter/xml/xmllabri.cxx +++ b/sc/source/filter/xml/xmllabri.cxx @@ -21,6 +21,7 @@ #include <xmloff/nmspmap.hxx> #include <xmloff/xmltoken.hxx> #include "xmlimprt.hxx" +#include <xmloff/xmlnmspe.hxx> #include <o3tl/make_unique.hxx> @@ -41,55 +42,49 @@ ScXMLLabelRangesContext::~ScXMLLabelRangesContext() GetScImport().UnlockSolarMutex(); } -SvXMLImportContext* ScXMLLabelRangesContext::CreateChildContext( - sal_uInt16 nPrefix, - const OUString& rLName, - const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLLabelRangesContext::createFastChildContext( + sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) { SvXMLImportContext* pContext(nullptr); - const SvXMLTokenMap& rTokenMap(GetScImport().GetLabelRangesElemTokenMap()); - switch( rTokenMap.Get( nPrefix, rLName ) ) + switch (nElement) { - case XML_TOK_LABEL_RANGE_ELEM: - pContext = new ScXMLLabelRangeContext( GetScImport(), nPrefix, rLName, xAttrList ); + case XML_ELEMENT( TABLE, XML_LABEL_RANGE ): + pContext = new ScXMLLabelRangeContext( GetScImport(), nElement, xAttrList ); break; } if( !pContext ) - pContext = new SvXMLImportContext( GetImport(), nPrefix, rLName ); + pContext = new SvXMLImportContext( GetImport() ); return pContext; } ScXMLLabelRangeContext::ScXMLLabelRangeContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const uno::Reference< xml::sax::XAttributeList >& xAttrList ) : - ScXMLImportContext( rImport, nPrfx, rLName ), + sal_Int32 /*nElement*/, + const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) : + ScXMLImportContext( rImport ), bColumnOrientation( false ) { - sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0); - const SvXMLTokenMap& rAttrTokenMap(GetScImport().GetLabelRangeAttrTokenMap()); - - for( sal_Int16 nIndex = 0; nIndex < nAttrCount; ++nIndex ) + if ( xAttrList.is() ) { - const OUString& sAttrName (xAttrList->getNameByIndex( nIndex )); - const OUString& sValue (xAttrList->getValueByIndex( nIndex )); - OUString aLocalName; - sal_uInt16 nPrefix (GetScImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_LABEL_RANGE_ATTR_LABEL_RANGE: - sLabelRangeStr = sValue; - break; - case XML_TOK_LABEL_RANGE_ATTR_DATA_RANGE: - sDataRangeStr = sValue; - break; - case XML_TOK_LABEL_RANGE_ATTR_ORIENTATION: - bColumnOrientation = IsXMLToken(sValue, XML_COLUMN ); - break; + switch (aIter.getToken()) + { + case XML_ELEMENT( TABLE, XML_LABEL_CELL_RANGE_ADDRESS ): + sLabelRangeStr = aIter.toString(); + break; + case XML_ELEMENT( TABLE, XML_DATA_CELL_RANGE_ADDRESS ): + sDataRangeStr = aIter.toString(); + break; + case XML_ELEMENT( TABLE, XML_ORIENTATION ): + bColumnOrientation = IsXMLToken(aIter, XML_COLUMN ); + break; + } } } } @@ -98,15 +93,13 @@ ScXMLLabelRangeContext::~ScXMLLabelRangeContext() { } -SvXMLImportContext* ScXMLLabelRangeContext::CreateChildContext( - sal_uInt16 nPrefix, - const OUString& rLName, - const uno::Reference< xml::sax::XAttributeList >& /* xAttrList */ ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLLabelRangeContext::createFastChildContext( + sal_Int32 /*nElement*/, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) { - return new SvXMLImportContext( GetImport(), nPrefix, rLName ); + return new SvXMLImportContext( GetImport() ); } -void ScXMLLabelRangeContext::EndElement() +void SAL_CALL ScXMLLabelRangeContext::endFastElement( sal_Int32 /*nElement*/ ) { // Label ranges must be stored as strings until all sheets are loaded // (like named expressions). diff --git a/sc/source/filter/xml/xmllabri.hxx b/sc/source/filter/xml/xmllabri.hxx index aab26fb46e5d..f4e3db7bc0cf 100644 --- a/sc/source/filter/xml/xmllabri.hxx +++ b/sc/source/filter/xml/xmllabri.hxx @@ -33,10 +33,10 @@ public: ); virtual ~ScXMLLabelRangesContext() override; - virtual SvXMLImportContext* CreateChildContext( - sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL + createFastChildContext( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; }; @@ -50,18 +50,17 @@ private: public: ScXMLLabelRangeContext( ScXMLImport& rImport, - sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList>& xAttrList ); virtual ~ScXMLLabelRangeContext() override; - virtual SvXMLImportContext* CreateChildContext( - sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL + createFastChildContext( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; - virtual void EndElement() override; + virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override; }; #endif diff --git a/sc/source/filter/xml/xmlsceni.cxx b/sc/source/filter/xml/xmlsceni.cxx index 246317b3fe0b..024863fe50c0 100644 --- a/sc/source/filter/xml/xmlsceni.cxx +++ b/sc/source/filter/xml/xmlsceni.cxx @@ -28,6 +28,7 @@ #include <xmloff/xmltkmap.hxx> #include <xmloff/nmspmap.hxx> #include <xmloff/xmltoken.hxx> +#include <xmloff/xmlnmspe.hxx> #include <sax/tools/converter.hxx> @@ -36,10 +37,9 @@ using namespace xmloff::token; ScXMLTableScenarioContext::ScXMLTableScenarioContext( ScXMLImport& rImport, - sal_uInt16 nPrfx, - const OUString& rLName, - const uno::Reference< xml::sax::XAttributeList >& xAttrList ): - ScXMLImportContext( rImport, nPrfx, rLName ), + sal_Int32 /*nElement*/, + const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ): + ScXMLImportContext( rImport ), aBorderColor( COL_BLACK ), bDisplayBorder( true ), bCopyBack( true ), @@ -49,66 +49,49 @@ ScXMLTableScenarioContext::ScXMLTableScenarioContext( bProtected( false ) { rImport.LockSolarMutex(); - sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0); - const SvXMLTokenMap& rAttrTokenMap(GetScImport().GetTableScenarioAttrTokenMap()); - for( sal_Int16 i = 0; i < nAttrCount; ++i ) + + if ( xAttrList.is() ) { - const OUString& sAttrName(xAttrList->getNameByIndex( i )); - OUString aLocalName; - sal_uInt16 nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName )); - const OUString& sValue(xAttrList->getValueByIndex( i )); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + for (auto &aIter : *pAttribList) { - case XML_TOK_TABLE_SCENARIO_ATTR_DISPLAY_BORDER: - { - bDisplayBorder = IsXMLToken(sValue, XML_TRUE); - } - break; - case XML_TOK_TABLE_SCENARIO_ATTR_BORDER_COLOR: - { - sal_Int32 nColor(0); - ::sax::Converter::convertColor(nColor, sValue); - aBorderColor.SetColor(nColor); - } - break; - case XML_TOK_TABLE_SCENARIO_ATTR_COPY_BACK: - { - bCopyBack = IsXMLToken(sValue, XML_TRUE); - } - break; - case XML_TOK_TABLE_SCENARIO_ATTR_COPY_STYLES: - { - bCopyStyles = IsXMLToken(sValue, XML_TRUE); - } - break; - case XML_TOK_TABLE_SCENARIO_ATTR_COPY_FORMULAS: - { - bCopyFormulas = IsXMLToken(sValue, XML_TRUE); - } - break; - case XML_TOK_TABLE_SCENARIO_ATTR_IS_ACTIVE: - { - bIsActive = IsXMLToken(sValue, XML_TRUE); - } - break; - case XML_TOK_TABLE_SCENARIO_ATTR_SCENARIO_RANGES: + switch (aIter.getToken()) { + case XML_ELEMENT( TABLE, XML_DISPLAY_BORDER ): + bDisplayBorder = IsXMLToken(aIter, XML_TRUE); + break; + case XML_ELEMENT( TABLE, XML_BORDER_COLOR ): + { + sal_Int32 nColor(0); + ::sax::Converter::convertColor(nColor, aIter.toString()); + aBorderColor.SetColor(nColor); + } + break; + case XML_ELEMENT( TABLE, XML_COPY_BACK ): + bCopyBack = IsXMLToken(aIter, XML_TRUE); + break; + case XML_ELEMENT( TABLE, XML_COPY_STYLES ): + bCopyStyles = IsXMLToken(aIter, XML_TRUE); + break; + case XML_ELEMENT( TABLE, XML_COPY_FORMULAS ): + bCopyFormulas = IsXMLToken(aIter, XML_TRUE); + break; + case XML_ELEMENT( TABLE, XML_IS_ACTIVE ): + bIsActive = IsXMLToken(aIter, XML_TRUE); + break; + case XML_ELEMENT( TABLE, XML_SCENARIO_RANGES ): ScRangeStringConverter::GetRangeListFromString( - aScenarioRanges, sValue, GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO ); - } - break; - case XML_TOK_TABLE_SCENARIO_ATTR_COMMENT: - { - sComment = sValue; - } - break; - case XML_TOK_TABLE_SCENARIO_ATTR_PROTECTED: - { - bProtected = IsXMLToken(sValue, XML_TRUE); + aScenarioRanges, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO ); + break; + case XML_ELEMENT( TABLE, XML_COMMENT ): + sComment = aIter.toString(); + break; + case XML_ELEMENT( TABLE, XML_PROTECTED ): + bProtected = IsXMLToken(aIter, XML_TRUE); + break; } - break; } } } @@ -118,15 +101,13 @@ ScXMLTableScenarioContext::~ScXMLTableScenarioContext() GetScImport().UnlockSolarMutex(); } -SvXMLImportContext *ScXMLTableScenarioContext::CreateChildContext( - sal_uInt16 nPrefix, - const OUString& rLName, - const uno::Reference< xml::sax::XAttributeList >& /* xAttrList */ ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLTableScenarioContext::createFastChildContext( + sal_Int32 /*nElement*/, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) { - return new SvXMLImportContext( GetImport(), nPrefix, rLName ); + return new SvXMLImportContext( GetImport() ); } -void ScXMLTableScenarioContext::EndElement() +void SAL_CALL ScXMLTableScenarioContext::endFastElement( sal_Int32 /*nElement*/ ) { SCTAB nCurrTable( GetScImport().GetTables().GetCurrentSheet() ); ScDocument* pDoc(GetScImport().GetDocument()); diff --git a/sc/source/filter/xml/xmlsceni.hxx b/sc/source/filter/xml/xmlsceni.hxx index 0d971502486a..6aa3474aef37 100644 --- a/sc/source/filter/xml/xmlsceni.hxx +++ b/sc/source/filter/xml/xmlsceni.hxx @@ -42,17 +42,15 @@ private: public: - ScXMLTableScenarioContext( ScXMLImport& rImport, sal_uInt16 nPrfx, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ); + ScXMLTableScenarioContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList ); virtual ~ScXMLTableScenarioContext() override; - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( + sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; - virtual void EndElement() override; + virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override; }; #endif diff --git a/sc/source/filter/xml/xmltabi.cxx b/sc/source/filter/xml/xmltabi.cxx index 0bad32e4004d..28bfbe66a5c5 100644 --- a/sc/source/filter/xml/xmltabi.cxx +++ b/sc/source/filter/xml/xmltabi.cxx @@ -215,7 +215,7 @@ ScXMLTableContext::~ScXMLTableContext() SvXMLImportContext *ScXMLTableContext::CreateChildContext( sal_uInt16 nPrefix, const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) + const css::uno::Reference<css::xml::sax::XAttributeList>& /*xAttrList*/ ) { const SvXMLTokenMap& rTokenMap(GetScImport().GetTableElemTokenMap()); sal_uInt16 nToken = rTokenMap.Get(nPrefix, rLName); @@ -228,38 +228,6 @@ SvXMLImportContext *ScXMLTableContext::CreateChildContext( sal_uInt16 nPrefix, switch (nToken) { - case XML_TOK_TABLE_COL_GROUP: - pContext = new ScXMLTableColsContext( GetScImport(), nPrefix, - rLName, xAttrList, - false, true ); - break; - case XML_TOK_TABLE_HEADER_COLS: - pContext = new ScXMLTableColsContext( GetScImport(), nPrefix, - rLName, xAttrList, - true, false ); - break; - case XML_TOK_TABLE_COLS: - pContext = new ScXMLTableColsContext( GetScImport(), nPrefix, - rLName, xAttrList, - false, false ); - break; - case XML_TOK_TABLE_COL: - pContext = new ScXMLTableColContext( GetScImport(), nPrefix, - rLName, xAttrList ); - break; - case XML_TOK_TABLE_PROTECTION: - case XML_TOK_TABLE_PROTECTION_EXT: - pContext = new ScXMLTableProtectionContext( GetScImport(), nPrefix, rLName, xAttrList ); - break; - case XML_TOK_TABLE_SOURCE: - pContext = new ScXMLTableSourceContext( GetScImport(), nPrefix, rLName, xAttrList); - break; - case XML_TOK_TABLE_SCENARIO: - pContext = new ScXMLTableScenarioContext( GetScImport(), nPrefix, rLName, xAttrList); - break; - case XML_TOK_TABLE_SHAPES: - pContext = new ScXMLTableShapesContext( GetScImport(), nPrefix, rLName, xAttrList); - break; case XML_TOK_TABLE_FORMS: { GetScImport().GetFormImport()->startPage(GetScImport().GetTables().GetCurrentXDrawPage()); @@ -275,9 +243,6 @@ SvXMLImportContext *ScXMLTableContext::CreateChildContext( sal_uInt16 nPrefix, pContext = new XMLEventsImportContext( GetImport(), nPrefix, rLName, xSupplier ); } break; - case XML_TOK_TABLE_CONDFORMATS: - pContext = new ScXMLConditionalFormatsContext( GetScImport(), nPrefix, rLName ); - break; default: ; } @@ -328,6 +293,26 @@ uno::Reference< xml::sax::XFastContextHandler > SAL_CALL new ScXMLNamedExpressionsContext::SheetLocalInserter(GetScImport(), nTab)); } break; + case XML_ELEMENT( TABLE, XML_TABLE_COLUMN_GROUP ): + pContext = new ScXMLTableColsContext( GetScImport(), nElement, xAttrList, + false, true ); + break; + case XML_ELEMENT( TABLE, XML_TABLE_HEADER_COLUMNS ): + pContext = new ScXMLTableColsContext( GetScImport(), nElement, xAttrList, + true, false ); + break; + case XML_ELEMENT( TABLE, XML_TABLE_COLUMNS ): + pContext = new ScXMLTableColsContext( GetScImport(), nElement, xAttrList, + false, false ); + break; + case XML_ELEMENT( TABLE, XML_TABLE_COLUMN ): + pContext = new ScXMLTableColContext( GetScImport(), nElement, xAttrList ); + break; + case XML_ELEMENT( TABLE, XML_TABLE_PROTECTION ): + case XML_ELEMENT( LO_EXT, XML_TABLE_PROTECTION ): + case XML_ELEMENT( OFFICE_EXT, XML_TABLE_PROTECTION ): + pContext = new ScXMLTableProtectionContext( GetScImport(), nElement, xAttrList ); + break; case XML_ELEMENT( TABLE, XML_TABLE_ROW_GROUP ): pContext = new ScXMLTableRowsContext( GetScImport(), xAttrList, false, true ); @@ -343,6 +328,18 @@ uno::Reference< xml::sax::XFastContextHandler > SAL_CALL case XML_ELEMENT( TABLE, XML_TABLE_ROW ): pContext = new ScXMLTableRowContext( GetScImport(),xAttrList ); break; + case XML_ELEMENT( TABLE, XML_TABLE_SOURCE ): + pContext = new ScXMLTableSourceContext( GetScImport(), nElement, xAttrList); + break; + case XML_ELEMENT( TABLE, XML_SCENARIO ): + pContext = new ScXMLTableScenarioContext( GetScImport(), nElement, xAttrList); + break; + case XML_ELEMENT( TABLE, XML_SHAPES ): + pContext = new ScXMLTableShapesContext( GetScImport(), nElement, xAttrList); + break; + case XML_ELEMENT( CALC_EXT, XML_CONDITIONAL_FORMATS ): + pContext = new ScXMLConditionalFormatsContext( GetScImport(), nElement ); + break; default: pContext = new SvXMLImportContext( GetImport() ); } @@ -432,11 +429,10 @@ void SAL_CALL ScXMLTableContext::endFastElement(sal_Int32 /*nElement*/) } ScXMLTableProtectionContext::ScXMLTableProtectionContext( - ScXMLImport& rImport, sal_uInt16 nPrefix, const OUString& rLName, - const Reference<XAttributeList>& xAttrList ) : - ScXMLImportContext( rImport, nPrefix, rLName ) + ScXMLImport& rImport, sal_Int32 /*nElement*/, + const Reference< xml::sax::XFastAttributeList>& xAttrList ) : + ScXMLImportContext( rImport ) { - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetTableProtectionAttrTokenMap(); bool bSelectProtectedCells = false; bool bSelectUnprotectedCells = false; bool bInsertColumns = false; @@ -444,41 +440,42 @@ ScXMLTableProtectionContext::ScXMLTableProtectionContext( bool bDeleteColumns = false; bool bDeleteRows = false; - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - - for (sal_Int16 i = 0; i < nAttrCount; ++i) + if ( xAttrList.is() ) { - const OUString& aAttrName = xAttrList->getNameByIndex(i); - const OUString aValue = xAttrList->getValueByIndex(i); - - OUString aLocalName; - sal_uInt16 nLocalPrefix = GetScImport().GetNamespaceMap().GetKeyByAttrName( - aAttrName, &aLocalName); + sax_fastparser::FastAttributeList *pAttribList = + sax_fastparser::FastAttributeList::castToFastAttributeList( xAttrList ); - switch (rAttrTokenMap.Get(nLocalPrefix, aLocalName)) + for (auto &aIter : *pAttribList) { - case XML_TOK_TABLE_SELECT_PROTECTED_CELLS: - case XML_TOK_TABLE_SELECT_PROTECTED_CELLS_EXT: - bSelectProtectedCells = IsXMLToken(aValue, XML_TRUE); + sal_Int32 nToken = aIter.getToken(); + switch (nToken) + + { + case XML_ELEMENT( TABLE, XML_SELECT_PROTECTED_CELLS ): + case XML_ELEMENT( OFFICE_EXT, XML_SELECT_PROTECTED_CELLS ): + case XML_ELEMENT( LO_EXT, XML_SELECT_PROTECTED_CELLS ): + bSelectProtectedCells = IsXMLToken(aIter, XML_TRUE); break; - case XML_TOK_TABLE_SELECT_UNPROTECTED_CELLS: - case XML_TOK_TABLE_SELECT_UNPROTECTED_CELLS_EXT: - bSelectUnprotectedCells = IsXMLToken(aValue, XML_TRUE); + case XML_ELEMENT( TABLE, XML_SELECT_UNPROTECTED_CELLS ): + case XML_ELEMENT( OFFICE_EXT, XML_SELECT_UNPROTECTED_CELLS ): + case XML_ELEMENT( LO_EXT, XML_SELECT_UNPROTECTED_CELLS ): + bSelectUnprotectedCells = IsXMLToken(aIter, XML_TRUE); break; - case XML_TOK_TABLE_INSERT_COLUMNS_EXT: - bInsertColumns = IsXMLToken(aValue, XML_TRUE); + case XML_ELEMENT( LO_EXT, XML_INSERT_COLUMNS ): + bInsertColumns = IsXMLToken(aIter, XML_TRUE); break; - case XML_TOK_TABLE_INSERT_ROWS_EXT: - bInsertRows = IsXMLToken(aValue, XML_TRUE); + case XML_ELEMENT( LO_EXT, XML_INSERT_ROWS ): + bInsertRows = IsXMLToken(aIter, XML_TRUE); break; - case XML_TOK_TABLE_DELETE_COLUMNS_EXT: - bDeleteColumns = IsXMLToken(aValue, XML_TRUE); + case XML_ELEMENT( LO_EXT, XML_DELETE_COLUMNS ): + bDeleteColumns = IsXMLToken(aIter, XML_TRUE); break; - case XML_TOK_TABLE_DELETE_ROWS_EXT: - bDeleteRows = IsXMLToken(aValue, XML_TRUE); + case XML_ELEMENT( LO_EXT, XML_DELETE_ROWS ): + bDeleteRows = IsXMLToken(aIter, XML_TRUE); break; default: - SAL_WARN("sc", "unknown attribute: " << aAttrName); + SAL_WARN("sc", "unknown attribute: " << nToken); + } } } @@ -495,14 +492,10 @@ ScXMLTableProtectionContext::~ScXMLTableProtectionContext() { } -SvXMLImportContext* ScXMLTableProtectionContext::CreateChildContext( - sal_uInt16 /*nPrefix*/, const OUString& /*rLocalName*/, const Reference<XAttributeList>& /*xAttrList*/ ) +uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLTableProtectionContext::createFastChildContext( + sal_Int32 /*nElement*/, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) { return nullptr; } -void ScXMLTableProtectionContext::EndElement() -{ -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/filter/xml/xmltabi.hxx b/sc/source/filter/xml/xmltabi.hxx index d36f4d843f77..9f9775ec0876 100644 --- a/sc/source/filter/xml/xmltabi.hxx +++ b/sc/source/filter/xml/xmltabi.hxx @@ -67,17 +67,13 @@ public: class ScXMLTableProtectionContext : public ScXMLImportContext { public: - ScXMLTableProtectionContext( ScXMLImport& rImport, sal_uInt16 nPrefix, - const OUString& rLName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ); + ScXMLTableProtectionContext( ScXMLImport& rImport, sal_Int32 nElement, + const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList ); virtual ~ScXMLTableProtectionContext() override; - virtual SvXMLImportContext *CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override; - - virtual void EndElement() override; + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( + sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; }; #endif _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits