diff options
author | Noel <noelgrandin@gmail.com> | 2020-11-30 10:52:22 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-11-30 12:09:54 +0100 |
commit | d05a4cfbdcece491f7385dbeaa7eca03f2fdc1d5 (patch) | |
tree | b67ac6294fb550851e600b7918ce47c64e8ea15c | |
parent | ea8d6cd59670854cb153c4e984cb4044093e5994 (diff) |
fastparser in shapeimport
Change-Id: I11227424647313ff5c5d54126bdc27a17da3932e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106851
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
20 files changed, 529 insertions, 467 deletions
diff --git a/include/xmloff/shapeimport.hxx b/include/xmloff/shapeimport.hxx index b4bc6bf44c3a..dacd947a66d2 100644 --- a/include/xmloff/shapeimport.hxx +++ b/include/xmloff/shapeimport.hxx @@ -186,7 +186,7 @@ public: SvXMLImportContext * create3DLightContext( const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList); /** this should be called for each scene attribute */ - void processSceneAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ); + void processSceneAttribute( sal_Int32 nAttributeToken, const OUString& rValue ); /** this sets the scene attributes at this propertyset */ void setSceneAttributes( const css::uno::Reference< css::beans::XPropertySet >& xPropSet ); diff --git a/xmloff/source/chart/SchXMLChartContext.cxx b/xmloff/source/chart/SchXMLChartContext.cxx index 968bf0cfa76a..02c4df000d36 100644 --- a/xmloff/source/chart/SchXMLChartContext.cxx +++ b/xmloff/source/chart/SchXMLChartContext.cxx @@ -1073,7 +1073,7 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > SchXMLChartContext::cr case XML_ELEMENT(TABLE, XML_TABLE): { SchXMLTableContext * pTableContext = - new SchXMLTableContext( mrImportHelper, GetImport(), maTable ); + new SchXMLTableContext( GetImport(), maTable ); m_bHasTableElement = true; // #i85913# take into account column- and row- mapping for // charts with own data only for those which were not copied diff --git a/xmloff/source/chart/SchXMLPlotAreaContext.cxx b/xmloff/source/chart/SchXMLPlotAreaContext.cxx index 0391b4f4a8d3..2fe188eab45f 100644 --- a/xmloff/source/chart/SchXMLPlotAreaContext.cxx +++ b/xmloff/source/chart/SchXMLPlotAreaContext.cxx @@ -206,37 +206,32 @@ SchXMLPlotAreaContext::SchXMLPlotAreaContext( SchXMLPlotAreaContext::~SchXMLPlotAreaContext() {} -void SchXMLPlotAreaContext::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +void SchXMLPlotAreaContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // parse attributes - sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0; - const SvXMLTokenMap& rAttrTokenMap = mrImportHelper.GetPlotAreaAttrTokenMap(); uno::Reference< chart2::XChartDocument > xNewDoc( GetImport().GetModel(), uno::UNO_QUERY ); - for( sal_Int16 i = 0; i < nAttrCount; i++ ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - OUString aValue = xAttrList->getValueByIndex( i ); - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - - switch( rAttrTokenMap.Get( nPrefix, aLocalName )) + OUString aValue = aIter.toString(); + switch( aIter.getToken() ) { - case XML_TOK_PA_X: - case XML_TOK_PA_Y: - case XML_TOK_PA_WIDTH: - case XML_TOK_PA_HEIGHT: - m_aOuterPositioning.readPositioningAttribute( nPrefix, aLocalName, aValue ); + case XML_ELEMENT(SVG, XML_X): + case XML_ELEMENT(SVG, XML_Y): + case XML_ELEMENT(SVG, XML_WIDTH): + case XML_ELEMENT(SVG, XML_HEIGHT): + m_aOuterPositioning.readPositioningAttribute( aIter.getToken(), aValue ); break; - case XML_TOK_PA_STYLE_NAME: + case XML_ELEMENT(CHART, XML_STYLE_NAME): msAutoStyleName = aValue; break; - case XML_TOK_PA_CHART_ADDRESS: + case XML_ELEMENT(TABLE, XML_CELL_RANGE_ADDRESS): mrChartAddress = lcl_ConvertRange( aValue, xNewDoc ); // indicator for getting data from the outside m_rbHasRangeAtPlotArea = true; break; - case XML_TOK_PA_DS_HAS_LABELS: + case XML_ELEMENT(CHART, XML_DATA_SOURCE_HAS_LABELS): { if( aValue == ::xmloff::token::GetXMLToken( ::xmloff::token::XML_BOTH )) mrColHasLabels = mrRowHasLabels = true; @@ -246,19 +241,21 @@ void SchXMLPlotAreaContext::StartElement( const uno::Reference< xml::sax::XAttri mrColHasLabels = true; } break; - case XML_TOK_PA_TRANSFORM: - case XML_TOK_PA_VRP: - case XML_TOK_PA_VPN: - case XML_TOK_PA_VUP: - case XML_TOK_PA_PROJECTION: - case XML_TOK_PA_DISTANCE: - case XML_TOK_PA_FOCAL_LENGTH: - case XML_TOK_PA_SHADOW_SLANT: - case XML_TOK_PA_SHADE_MODE: - case XML_TOK_PA_AMBIENT_COLOR: - case XML_TOK_PA_LIGHTING_MODE: - maSceneImportHelper.processSceneAttribute( nPrefix, aLocalName, aValue ); + case XML_ELEMENT(DR3D, XML_TRANSFORM): + case XML_ELEMENT(DR3D, XML_VRP): + case XML_ELEMENT(DR3D, XML_VPN): + case XML_ELEMENT(DR3D, XML_VUP): + case XML_ELEMENT(DR3D, XML_PROJECTION): + case XML_ELEMENT(DR3D, XML_DISTANCE): + case XML_ELEMENT(DR3D, XML_FOCAL_LENGTH): + case XML_ELEMENT(DR3D, XML_SHADOW_SLANT): + case XML_ELEMENT(DR3D, XML_SHADE_MODE): + case XML_ELEMENT(DR3D, XML_AMBIENT_COLOR): + case XML_ELEMENT(DR3D, XML_LIGHTING_MODE): + maSceneImportHelper.processSceneAttribute( aIter.getToken(), aValue ); break; + default: + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } } @@ -709,46 +706,43 @@ SchXMLDataPointContext::~SchXMLDataPointContext() { } -void SchXMLDataPointContext::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +void SchXMLDataPointContext::startFastElement (sal_Int32 /*Element*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { - sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0; OUString sAutoStyleName; sal_Int32 nRepeat = 1; OUString sCustomLabelField; - for( sal_Int16 i = 0; i < nAttrCount; i++ ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - - if( nPrefix == XML_NAMESPACE_CHART ) + switch (aIter.getToken()) { - if( IsXMLToken( aLocalName, XML_STYLE_NAME ) ) + case XML_ELEMENT(CHART, XML_STYLE_NAME): { - sAutoStyleName = xAttrList->getValueByIndex( i ); + sAutoStyleName = aIter.toString(); mDataPoint.msStyleName = sAutoStyleName; mDataLabel.msStyleNameOfParent = sAutoStyleName; + break; } - else if( IsXMLToken( aLocalName, XML_REPEATED ) ) + case XML_ELEMENT(CHART, XML_REPEATED): { - nRepeat = xAttrList->getValueByIndex( i ).toInt32(); + nRepeat = aIter.toInt32(); mDataPoint.m_nPointRepeat = nRepeat; mDataLabel.m_nPointRepeat = nRepeat; + break; } - } - else if( nPrefix == XML_NAMESPACE_LO_EXT) - { // Deprecated. New documents use the chart:data-label element // instead in order to store custom label text. - if( IsXMLToken( aLocalName, XML_CUSTOM_LABEL_FIELD) && !mbHasLabelParagraph) - { - sCustomLabelField = xAttrList->getValueByIndex( i ); - mDataPoint.mCustomLabels.push_back(sCustomLabelField); - } - else if (IsXMLToken(aLocalName, XML_HIDE_LEGEND)) + case XML_ELEMENT(LO_EXT, XML_CUSTOM_LABEL_FIELD): + if (!mbHasLabelParagraph) + { + sCustomLabelField = aIter.toString(); + mDataPoint.mCustomLabels.push_back(sCustomLabelField); + } + break; + case XML_ELEMENT(LO_EXT, XML_HIDE_LEGEND): { - bool bHideLegend = xAttrList->getValueByIndex(i).toBoolean(); + bool bHideLegend = aIter.toString().toBoolean(); if (bHideLegend) { uno::Sequence<sal_Int32> deletedLegendEntriesSeq; @@ -762,15 +756,20 @@ void SchXMLDataPointContext::StartElement( const uno::Reference< xml::sax::XAttr deletedLegendEntries.push_back(mDataPoint.m_nPointIndex); xSeriesProp->setPropertyValue("DeletedLegendEntries", uno::makeAny(::oox::ContainerHelper::vectorToSequence(deletedLegendEntries))); } + break; } - else if( IsXMLToken(aLocalName, XML_CUSTOM_LABEL_POS_X ) ) + case XML_ELEMENT(LO_EXT, XML_CUSTOM_LABEL_POS_X): { - mDataPoint.mCustomLabelPos[0] = xAttrList->getValueByIndex(i).toDouble(); + mDataPoint.mCustomLabelPos[0] = aIter.toDouble(); + break; } - else if( IsXMLToken(aLocalName, XML_CUSTOM_LABEL_POS_Y) ) + case XML_ELEMENT(LO_EXT, XML_CUSTOM_LABEL_POS_Y): { - mDataPoint.mCustomLabelPos[1] = xAttrList->getValueByIndex(i).toDouble(); + mDataPoint.mCustomLabelPos[1] = aIter.toDouble(); + break; } + default: + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } } @@ -817,34 +816,43 @@ bool SchXMLPositionAttributesHelper::isAutomatic() const return m_bAutoSize || m_bAutoPosition; } -void SchXMLPositionAttributesHelper::readPositioningAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, std::u16string_view rValue ) +void SchXMLPositionAttributesHelper::readPositioningAttribute( sal_Int32 nAttributeToken, std::u16string_view rValue ) { - if( XML_NAMESPACE_SVG != nPrefix ) + if( !IsTokenInNamespace(nAttributeToken, XML_NAMESPACE_SVG) && !IsTokenInNamespace(nAttributeToken, XML_NAMESPACE_SVG_COMPAT) ) return; - if( IsXMLToken( rLocalName, XML_X ) ) - { - m_rImport.GetMM100UnitConverter().convertMeasureToCore( - m_aPosition.X, rValue ); - m_bHasPositionX = true; - } - else if( IsXMLToken( rLocalName, XML_Y ) ) + switch (nAttributeToken & TOKEN_MASK) { - m_rImport.GetMM100UnitConverter().convertMeasureToCore( - m_aPosition.Y, rValue ); - m_bHasPositionY = true; - } - else if( IsXMLToken( rLocalName, XML_WIDTH ) ) - { - m_rImport.GetMM100UnitConverter().convertMeasureToCore( - m_aSize.Width, rValue ); - m_bHasSizeWidth = true; - } - else if( IsXMLToken( rLocalName, XML_HEIGHT ) ) - { - m_rImport.GetMM100UnitConverter().convertMeasureToCore( - m_aSize.Height, rValue ); - m_bHasSizeHeight = true; + case XML_X: + { + m_rImport.GetMM100UnitConverter().convertMeasureToCore( + m_aPosition.X, rValue ); + m_bHasPositionX = true; + break; + } + case XML_Y: + { + m_rImport.GetMM100UnitConverter().convertMeasureToCore( + m_aPosition.Y, rValue ); + m_bHasPositionY = true; + break; + } + case XML_WIDTH: + { + m_rImport.GetMM100UnitConverter().convertMeasureToCore( + m_aSize.Width, rValue ); + m_bHasSizeWidth = true; + break; + } + case XML_HEIGHT: + { + m_rImport.GetMM100UnitConverter().convertMeasureToCore( + m_aSize.Height, rValue ); + m_bHasSizeHeight = true; + break; + } + default: + XMLOFF_WARN_UNKNOWN_ATTR("xmloff", nAttributeToken, OUString(rValue)); } } @@ -872,19 +880,12 @@ SchXMLCoordinateRegionContext::~SchXMLCoordinateRegionContext() { } -void SchXMLCoordinateRegionContext::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +void SchXMLCoordinateRegionContext::startFastElement (sal_Int32 /*Element*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // parse attributes - sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0; - - for( sal_Int16 i = 0; i < nAttrCount; i++ ) - { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - OUString aValue = xAttrList->getValueByIndex( i ); - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - m_rPositioning.readPositioningAttribute( nPrefix, aLocalName, aValue ); - } + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) + m_rPositioning.readPositioningAttribute( aIter.getToken(), aIter.toString() ); } SchXMLWallFloorContext::SchXMLWallFloorContext( @@ -903,25 +904,20 @@ SchXMLWallFloorContext::~SchXMLWallFloorContext() { } -void SchXMLWallFloorContext::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +void SchXMLWallFloorContext::startFastElement (sal_Int32 /*Element*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { if( !mxWallFloorSupplier.is()) return; - sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0; OUString sAutoStyleName; - for( sal_Int16 i = 0; i < nAttrCount; i++ ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - - if( nPrefix == XML_NAMESPACE_CHART && - IsXMLToken( aLocalName, XML_STYLE_NAME ) ) - { - sAutoStyleName = xAttrList->getValueByIndex( i ); - } + if( aIter.getToken() == XML_ELEMENT(CHART, XML_STYLE_NAME) ) + sAutoStyleName = aIter.toString(); + else + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } // set properties @@ -949,25 +945,20 @@ SchXMLStockContext::~SchXMLStockContext() { } -void SchXMLStockContext::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +void SchXMLStockContext::startFastElement (sal_Int32 /*Element*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { if( !mxStockPropProvider.is()) return; - sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0; OUString sAutoStyleName; - for( sal_Int16 i = 0; i < nAttrCount; i++ ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - - if( nPrefix == XML_NAMESPACE_CHART && - IsXMLToken( aLocalName, XML_STYLE_NAME ) ) - { - sAutoStyleName = xAttrList->getValueByIndex( i ); - } + if( aIter.getToken() == XML_ELEMENT(CHART, XML_STYLE_NAME) ) + sAutoStyleName = aIter.toString(); + else + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } if( sAutoStyleName.isEmpty()) @@ -1199,31 +1190,30 @@ void SetErrorBarPropertiesFromStyleName( const OUString& aStyleName, const uno:: } -void SchXMLStatisticsObjectContext::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +void SchXMLStatisticsObjectContext::startFastElement (sal_Int32 /*Element*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { - sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0; OUString sAutoStyleName; OUString aPosRange; OUString aNegRange; bool bYError = true; /// Default errorbar, to be backward compatible with older files! - for( sal_Int16 i = 0; i < nAttrCount; i++ ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - - if( nPrefix == XML_NAMESPACE_CHART ) + switch (aIter.getToken()) { - if( IsXMLToken( aLocalName, XML_STYLE_NAME ) ) - sAutoStyleName = xAttrList->getValueByIndex( i ); - else if( IsXMLToken( aLocalName, XML_DIMENSION ) ) - bYError = xAttrList->getValueByIndex(i) == "y"; - else if( IsXMLToken( aLocalName, XML_ERROR_UPPER_RANGE) ) - aPosRange = xAttrList->getValueByIndex(i); - else if( IsXMLToken( aLocalName, XML_ERROR_LOWER_RANGE) ) - aNegRange = xAttrList->getValueByIndex(i); + case XML_ELEMENT(CHART, XML_STYLE_NAME): + sAutoStyleName = aIter.toString(); + break; + case XML_ELEMENT(CHART, XML_DIMENSION): + bYError = aIter.toString() == "y"; + break; + case XML_ELEMENT(CHART, XML_ERROR_UPPER_RANGE): + aPosRange = aIter.toString(); + break; + case XML_ELEMENT(CHART, XML_ERROR_LOWER_RANGE): + aNegRange = aIter.toString(); + break; } } diff --git a/xmloff/source/chart/SchXMLPlotAreaContext.hxx b/xmloff/source/chart/SchXMLPlotAreaContext.hxx index 750eacb25ce7..ef5f840cc1a2 100644 --- a/xmloff/source/chart/SchXMLPlotAreaContext.hxx +++ b/xmloff/source/chart/SchXMLPlotAreaContext.hxx @@ -60,7 +60,7 @@ public: explicit SchXMLPositionAttributesHelper( SvXMLImport& rImporter ); ~SchXMLPositionAttributesHelper(); - void readPositioningAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, std::u16string_view rValue ); + void readPositioningAttribute( sal_Int32 nAttributeToken, std::u16string_view rValue ); void readAutomaticPositioningProperties( XMLPropStyleContext const * pPropStyleContext, const SvXMLStylesContext* pStylesCtxt ); bool hasPosSize() const; @@ -100,10 +100,12 @@ public: const css::awt::Size & rChartSize ); virtual ~SchXMLPlotAreaContext() override; - virtual void StartElement( 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 >& AttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; private: @@ -194,11 +196,12 @@ public: bool bSymbolSizeForSeriesIsMissingInFile ); virtual ~SchXMLDataPointContext() override; - virtual void StartElement( 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 >& AttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; }; @@ -209,7 +212,9 @@ public: SvXMLImport& rImport , SchXMLPositionAttributesHelper& rPositioning ); virtual ~SchXMLCoordinateRegionContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; private: SchXMLPositionAttributesHelper& m_rPositioning; @@ -235,7 +240,8 @@ public: css::uno::Reference< css::chart::XDiagram > const & xDiagram, ContextType eContextType ); virtual ~SchXMLWallFloorContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement (sal_Int32 Element, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& Attribs) override; }; class SchXMLStockContext : public SvXMLImportContext @@ -259,7 +265,8 @@ public: css::uno::Reference< css::chart::XDiagram > const & xDiagram, ContextType eContextType ); virtual ~SchXMLStockContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement (sal_Int32 Element, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& Attribs) override; }; class SchXMLStatisticsObjectContext : public SvXMLImportContext @@ -282,7 +289,8 @@ public: virtual ~SchXMLStatisticsObjectContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement (sal_Int32 Element, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& Attribs) override; private: SchXMLImportHelper & mrImportHelper; diff --git a/xmloff/source/chart/SchXMLPropertyMappingContext.cxx b/xmloff/source/chart/SchXMLPropertyMappingContext.cxx index 8303d5bd660f..29810fd185d4 100644 --- a/xmloff/source/chart/SchXMLPropertyMappingContext.cxx +++ b/xmloff/source/chart/SchXMLPropertyMappingContext.cxx @@ -13,6 +13,7 @@ #include <xmloff/xmlimp.hxx> #include <xmloff/namespacemap.hxx> #include <SchXMLImport.hxx> +#include <sal/log.hxx> #include <com/sun/star/chart2/data/XLabeledDataSequence2.hpp> #include <com/sun/star/chart2/data/XDataSource.hpp> @@ -21,6 +22,7 @@ using namespace com::sun::star; using namespace com::sun::star::uno; +using namespace ::xmloff::token; namespace { @@ -60,13 +62,12 @@ Reference< chart2::data::XLabeledDataSequence2 > createAndAddSequenceToSeries( c } -SchXMLPropertyMappingContext::SchXMLPropertyMappingContext( SchXMLImportHelper& rImpHelper, +SchXMLPropertyMappingContext::SchXMLPropertyMappingContext( SvXMLImport& rImport, tSchXMLLSequencesPerIndex & rLSequencesPerIndex, uno::Reference< chart2::XDataSeries > const & xSeries ): SvXMLImportContext( rImport ), - mrImportHelper( rImpHelper ), mxDataSeries(xSeries), mrLSequencesPerIndex(rLSequencesPerIndex) { @@ -77,29 +78,25 @@ SchXMLPropertyMappingContext::~SchXMLPropertyMappingContext() { } -void SchXMLPropertyMappingContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList ) +void SchXMLPropertyMappingContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { OUString aRange; OUString aRole; // parse attributes - sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0; - const SvXMLTokenMap& rAttrTokenMap = mrImportHelper.GetPropMappingAttrTokenMap(); - - for( sal_Int16 i = 0; i < nAttrCount; i++ ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - OUString aValue = xAttrList->getValueByIndex( i ); - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - - switch( rAttrTokenMap.Get( nPrefix, aLocalName )) + OUString aValue = aIter.toString(); + switch( aIter.getToken() ) { - case XML_TOK_PROPERTY_MAPPING_PROPERTY: + case XML_ELEMENT(LO_EXT, XML_PROPERTY): aRole = aValue; break; - case XML_TOK_PROPERTY_MAPPING_RANGE: + case XML_ELEMENT(LO_EXT, XML_CELL_RANGE_ADDRESS): aRange = aValue; break; + default: + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } } diff --git a/xmloff/source/chart/SchXMLPropertyMappingContext.hxx b/xmloff/source/chart/SchXMLPropertyMappingContext.hxx index 31ae90d3dd3e..41154d344d4c 100644 --- a/xmloff/source/chart/SchXMLPropertyMappingContext.hxx +++ b/xmloff/source/chart/SchXMLPropertyMappingContext.hxx @@ -25,7 +25,7 @@ class SchXMLPropertyMappingContext : public SvXMLImportContext { public: - SchXMLPropertyMappingContext( SchXMLImportHelper& rImpHelper, + SchXMLPropertyMappingContext( SvXMLImport& rImport, tSchXMLLSequencesPerIndex& rLSequencesPerIndex, css::uno::Reference< @@ -33,10 +33,10 @@ public: virtual ~SchXMLPropertyMappingContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement (sal_Int32 Element, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& Attribs) override; private: - SchXMLImportHelper& mrImportHelper; css::uno::Reference< css::chart2::XDataSeries > mxDataSeries; tSchXMLLSequencesPerIndex& mrLSequencesPerIndex; diff --git a/xmloff/source/chart/SchXMLRegressionCurveObjectContext.cxx b/xmloff/source/chart/SchXMLRegressionCurveObjectContext.cxx index ec9253a74058..fcb95607b6aa 100644 --- a/xmloff/source/chart/SchXMLRegressionCurveObjectContext.cxx +++ b/xmloff/source/chart/SchXMLRegressionCurveObjectContext.cxx @@ -59,25 +59,16 @@ SchXMLRegressionCurveObjectContext::~SchXMLRegressionCurveObjectContext() { } -void SchXMLRegressionCurveObjectContext::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttributeList ) +void SchXMLRegressionCurveObjectContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { - sal_Int16 nAttributeCount = xAttributeList.is()? xAttributeList->getLength(): 0; OUString sAutoStyleName; - - for( sal_Int16 i = 0; i < nAttributeCount; i++ ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sAttributeName = xAttributeList->getNameByIndex( i ); - OUString aLocalName; - - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttributeName, &aLocalName ); - - if( nPrefix == XML_NAMESPACE_CHART ) - { - if( IsXMLToken( aLocalName, XML_STYLE_NAME ) ) - { - sAutoStyleName = xAttributeList->getValueByIndex( i ); - } - } + if (aIter.getToken() == XML_ELEMENT(CHART, XML_STYLE_NAME) ) + sAutoStyleName = aIter.toString(); + else + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } RegressionStyle aStyle( mxSeries, sAutoStyleName ); @@ -112,48 +103,46 @@ SchXMLEquationContext::SchXMLEquationContext( SchXMLEquationContext::~SchXMLEquationContext() {} -void SchXMLEquationContext::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +void SchXMLEquationContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // parse attributes - sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0; SchXMLImport& rImport = static_cast< SchXMLImport& >(GetImport()); - const SvXMLTokenMap& rAttrTokenMap = mrImportHelper.GetRegEquationAttrTokenMap(); OUString sAutoStyleName; - bool bShowEquation = true; bool bShowRSquare = false; awt::Point aPosition; bool bHasXPos = false; bool bHasYPos = false; - for( sal_Int16 i = 0; i < nAttrCount; i++ ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - OUString aValue = xAttrList->getValueByIndex( i ); - sal_uInt16 nPrefix = rImport.GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - - switch( rAttrTokenMap.Get( nPrefix, aLocalName )) + OUString aValue = aIter.toString(); + switch(aIter.getToken()) { - case XML_TOK_REGEQ_POS_X: + case XML_ELEMENT(SVG, XML_X): + case XML_ELEMENT(SVG_COMPAT, XML_X): rImport.GetMM100UnitConverter().convertMeasureToCore( aPosition.X, aValue ); bHasXPos = true; break; - case XML_TOK_REGEQ_POS_Y: + case XML_ELEMENT(SVG, XML_Y): + case XML_ELEMENT(SVG_COMPAT, XML_Y): rImport.GetMM100UnitConverter().convertMeasureToCore( aPosition.Y, aValue ); bHasYPos = true; break; - case XML_TOK_REGEQ_DISPLAY_EQUATION: + case XML_ELEMENT(CHART, XML_DISPLAY_EQUATION): (void)::sax::Converter::convertBool(bShowEquation, aValue); break; - case XML_TOK_REGEQ_DISPLAY_R_SQUARE: + case XML_ELEMENT(CHART, XML_DISPLAY_R_SQUARE): (void)::sax::Converter::convertBool(bShowRSquare, aValue); break; - case XML_TOK_REGEQ_STYLE_NAME: + case XML_ELEMENT(CHART, XML_STYLE_NAME): sAutoStyleName = aValue; break; + default: + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } } diff --git a/xmloff/source/chart/SchXMLRegressionCurveObjectContext.hxx b/xmloff/source/chart/SchXMLRegressionCurveObjectContext.hxx index 4c3effb3cdf7..f9e815eb9cb8 100644 --- a/xmloff/source/chart/SchXMLRegressionCurveObjectContext.hxx +++ b/xmloff/source/chart/SchXMLRegressionCurveObjectContext.hxx @@ -37,10 +37,12 @@ public: virtual ~SchXMLRegressionCurveObjectContext() override; - virtual void StartElement( 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 >& AttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; private: @@ -61,7 +63,8 @@ public: virtual ~SchXMLEquationContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement (sal_Int32 Element, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& Attribs) override; private: SchXMLImportHelper& mrImportHelper; diff --git a/xmloff/source/chart/SchXMLSeries2Context.cxx b/xmloff/source/chart/SchXMLSeries2Context.cxx index 36aae6c8fdab..572bbba89c42 100644 --- a/xmloff/source/chart/SchXMLSeries2Context.cxx +++ b/xmloff/source/chart/SchXMLSeries2Context.cxx @@ -304,11 +304,10 @@ SchXMLSeries2Context::~SchXMLSeries2Context() SAL_WARN_IF( !maPostponedSequences.empty(), "xmloff.chart", "maPostponedSequences is NULL"); } -void SchXMLSeries2Context::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +void SchXMLSeries2Context::startFastElement (sal_Int32 /*Element*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // parse attributes - sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0; - const SvXMLTokenMap& rAttrTokenMap = mrImportHelper.GetSeriesAttrTokenMap(); mnAttachedAxis = 1; bool bHasRange = false; @@ -316,26 +315,22 @@ void SchXMLSeries2Context::StartElement( const uno::Reference< xml::sax::XAttrib OUString aSeriesLabelString; bool bHideLegend = false; - for( sal_Int16 i = 0; i < nAttrCount; i++ ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - OUString aValue = xAttrList->getValueByIndex( i ); - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - - switch( rAttrTokenMap.Get( nPrefix, aLocalName )) + OUString aValue = aIter.toString(); + switch(aIter.getToken()) { - case XML_TOK_SERIES_CELL_RANGE: + case XML_ELEMENT(CHART, XML_VALUES_CELL_RANGE_ADDRESS): m_aSeriesRange = aValue; bHasRange = true; break; - case XML_TOK_SERIES_LABEL_ADDRESS: + case XML_ELEMENT(CHART, XML_LABEL_CELL_ADDRESS): aSeriesLabelRange = aValue; break; - case XML_TOK_SERIES_LABEL_STRING: + case XML_ELEMENT(LO_EXT, XML_LABEL_STRING): aSeriesLabelString = aValue; break; - case XML_TOK_SERIES_ATTACHED_AXIS: + case XML_ELEMENT(CHART, XML_ATTACHED_AXIS): { sal_Int32 nNumOfAxes = mrAxes.size(); for( sal_Int32 nCurrent = 0; nCurrent < nNumOfAxes; nCurrent++ ) @@ -348,10 +343,10 @@ void SchXMLSeries2Context::StartElement( const uno::Reference< xml::sax::XAttrib } } break; - case XML_TOK_SERIES_STYLE_NAME: + case XML_ELEMENT(CHART, XML_STYLE_NAME): msAutoStyleName = aValue; break; - case XML_TOK_SERIES_CHART_CLASS: + case XML_ELEMENT(CHART, XML_CLASS): { OUString aClassName; sal_uInt16 nClassPrefix = @@ -364,9 +359,11 @@ void SchXMLSeries2Context::StartElement( const uno::Reference< xml::sax::XAttrib maSeriesChartTypeName = aClassName; } break; - case XML_TOK_SERIES_HIDE_LEGEND: + case XML_ELEMENT(LO_EXT, XML_HIDE_LEGEND): bHideLegend = aValue.toBoolean(); break; + default: + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } } @@ -733,7 +730,7 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > SchXMLSeries2Context:: break; case XML_ELEMENT(LO_EXT, XML_PROPERTY_MAPPING): - pContext = new SchXMLPropertyMappingContext( mrImportHelper, + pContext = new SchXMLPropertyMappingContext( GetImport(), mrLSequencesPerIndex, m_xSeries ); break; diff --git a/xmloff/source/chart/SchXMLSeries2Context.hxx b/xmloff/source/chart/SchXMLSeries2Context.hxx index 1bced37cfdeb..6b863bd39a53 100644 --- a/xmloff/source/chart/SchXMLSeries2Context.hxx +++ b/xmloff/source/chart/SchXMLSeries2Context.hxx @@ -85,10 +85,12 @@ public: const css::awt::Size & rChartSize ); virtual ~SchXMLSeries2Context() override; - virtual void StartElement( 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 >& AttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; static void initSeriesPropertySets( SeriesDefaultsAndStyles& rSeriesDefaultsAndStyles diff --git a/xmloff/source/chart/SchXMLTableContext.cxx b/xmloff/source/chart/SchXMLTableContext.cxx index 1c2b912a7717..e00245a2e2c3 100644 --- a/xmloff/source/chart/SchXMLTableContext.cxx +++ b/xmloff/source/chart/SchXMLTableContext.cxx @@ -195,11 +195,9 @@ bool lcl_tableOfRangeMatches( } // anonymous namespace // class SchXMLTableContext -SchXMLTableContext::SchXMLTableContext( SchXMLImportHelper& rImpHelper, - SvXMLImport& rImport, +SchXMLTableContext::SchXMLTableContext( SvXMLImport& rImport, SchXMLTable& aTable ) : SvXMLImportContext( rImport ), - mrImportHelper( rImpHelper ), mrTable( aTable ), mbHasRowPermutation( false ), mbHasColumnPermutation( false ) @@ -237,11 +235,11 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > SchXMLTableContext::cr mrTable.bHasHeaderRow = true; [[fallthrough]]; case XML_ELEMENT(TABLE, XML_TABLE_ROWS): - pContext = new SchXMLTableRowsContext( mrImportHelper, GetImport(), mrTable ); + pContext = new SchXMLTableRowsContext( GetImport(), mrTable ); break; case XML_ELEMENT(TABLE, XML_TABLE_ROW): - pContext = new SchXMLTableRowContext( mrImportHelper, GetImport(), mrTable ); + pContext = new SchXMLTableRowContext( GetImport(), mrTable ); break; default: XMLOFF_WARN_UNKNOWN_ELEMENT("xmloff", nElement); @@ -250,29 +248,26 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > SchXMLTableContext::cr return pContext; } -void SchXMLTableContext::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +void SchXMLTableContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // get table-name - sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0; - for( sal_Int16 i = 0; i < nAttrCount; i++ ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - if ( nPrefix == XML_NAMESPACE_TABLE ) + switch(aIter.getToken()) { - if ( IsXMLToken( aLocalName, XML_NAME ) ) - { - mrTable.aTableNameOfFile = xAttrList->getValueByIndex( i ); - } - else if ( IsXMLToken( aLocalName, XML_PROTECTED ) ) - { - if ( IsXMLToken( xAttrList->getValueByIndex( i ), XML_TRUE ) ) + case XML_ELEMENT(TABLE, XML_NAME): + mrTable.aTableNameOfFile = aIter.toString(); + break; + case XML_ELEMENT(TABLE, XML_PROTECTED): + if ( IsXMLToken( aIter.toString(), XML_TRUE ) ) { mrTable.bProtected = true; } - } + break; + default: + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } } } @@ -419,31 +414,32 @@ SchXMLTableColumnContext::SchXMLTableColumnContext( { } -void SchXMLTableColumnContext::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +void SchXMLTableColumnContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // get number-columns-repeated attribute - sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0; sal_Int32 nRepeated = 1; bool bHidden = false; - for( sal_Int16 i = 0; i < nAttrCount; i++ ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - - if( nPrefix == XML_NAMESPACE_TABLE && - IsXMLToken( aLocalName, XML_NUMBER_COLUMNS_REPEATED ) ) - { - OUString aValue = xAttrList->getValueByIndex( i ); - if( !aValue.isEmpty()) - nRepeated = aValue.toInt32(); - } - else if( nPrefix == XML_NAMESPACE_TABLE && - IsXMLToken( aLocalName, XML_VISIBILITY ) ) + switch(aIter.getToken()) { - OUString aVisibility = xAttrList->getValueByIndex( i ); - bHidden = aVisibility == GetXMLToken( XML_COLLAPSE ); + case XML_ELEMENT(TABLE, XML_NUMBER_COLUMNS_REPEATED): + { + OUString aValue = aIter.toString(); + if( !aValue.isEmpty()) + nRepeated = aValue.toInt32(); + break; + } + case XML_ELEMENT(TABLE, XML_VISIBILITY): + { + OUString aVisibility = aIter.toString(); + bHidden = aVisibility == GetXMLToken( XML_COLLAPSE ); + break; + } + default: + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } } @@ -471,11 +467,9 @@ SchXMLTableColumnContext::~SchXMLTableColumnContext() // classes for rows // class SchXMLTableRowsContext SchXMLTableRowsContext::SchXMLTableRowsContext( - SchXMLImportHelper& rImpHelper, SvXMLImport& rImport, SchXMLTable& aTable ) : SvXMLImportContext( rImport ), - mrImportHelper( rImpHelper ), mrTable( aTable ) { } @@ -491,7 +485,7 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > SchXMLTableRowsContext SvXMLImportContext* pContext = nullptr; if( nElement == XML_ELEMENT(TABLE, XML_TABLE_ROW) ) - pContext = new SchXMLTableRowContext( mrImportHelper, GetImport(), mrTable ); + pContext = new SchXMLTableRowContext( GetImport(), mrTable ); else XMLOFF_WARN_UNKNOWN_ELEMENT("xmloff", nElement); @@ -500,11 +494,9 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > SchXMLTableRowsContext // class SchXMLTableRowContext SchXMLTableRowContext::SchXMLTableRowContext( - SchXMLImportHelper& rImpHelper, SvXMLImport& rImport, SchXMLTable& aTable ) : SvXMLImportContext( rImport ), - mrImportHelper( rImpHelper ), mrTable( aTable ) { mrTable.nColumnIndex = -1; @@ -529,7 +521,7 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > SchXMLTableRowContext: // <table:table-cell> element if( nElement == XML_ELEMENT(TABLE, XML_TABLE_CELL) ) { - pContext = new SchXMLTableCellContext( mrImportHelper, GetImport(), mrTable ); + pContext = new SchXMLTableCellContext( GetImport(), mrTable ); } else { @@ -568,10 +560,9 @@ public: // classes for cells and their content // class SchXMLTableCellContext SchXMLTableCellContext::SchXMLTableCellContext( - SchXMLImportHelper& rImpHelper, SvXMLImport& rImport, + SvXMLImport& rImport, SchXMLTable& aTable) : SvXMLImportContext(rImport) - , mrImportHelper(rImpHelper) , mrTable(aTable) , mbReadText(false) { @@ -581,33 +572,31 @@ SchXMLTableCellContext::~SchXMLTableCellContext() { } -void SchXMLTableCellContext::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +void SchXMLTableCellContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { - sal_Int16 nAttrCount = xAttrList.is()? xAttrList->getLength(): 0; OUString aValue; - OUString aLocalName; OUString aCellContent; SchXMLCellType eValueType = SCH_CELL_TYPE_UNKNOWN; - const SvXMLTokenMap& rAttrTokenMap = mrImportHelper.GetCellAttrTokenMap(); - for( sal_Int16 i = 0; i < nAttrCount; i++ ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sAttrName = xAttrList->getNameByIndex( i ); - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - - switch( rAttrTokenMap.Get( nPrefix, aLocalName )) + switch(aIter.getToken()) { - case XML_TOK_CELL_VAL_TYPE: - aValue = xAttrList->getValueByIndex( i ); + case XML_ELEMENT(OFFICE, XML_VALUE_TYPE): + aValue = aIter.toString(); if( IsXMLToken( aValue, XML_FLOAT ) ) eValueType = SCH_CELL_TYPE_FLOAT; else if( IsXMLToken( aValue, XML_STRING ) ) eValueType = SCH_CELL_TYPE_STRING; break; - case XML_TOK_CELL_VALUE: - aCellContent = xAttrList->getValueByIndex( i ); + case XML_ELEMENT(OFFICE, XML_VALUE): + aCellContent = aIter.toString(); break; + + default: + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } } diff --git a/xmloff/source/chart/SchXMLTableContext.hxx b/xmloff/source/chart/SchXMLTableContext.hxx index 179a071f3046..ed231db352ca 100644 --- a/xmloff/source/chart/SchXMLTableContext.hxx +++ b/xmloff/source/chart/SchXMLTableContext.hxx @@ -39,7 +39,6 @@ namespace com::sun::star { class SchXMLTableContext : public SvXMLImportContext { private: - SchXMLImportHelper& mrImportHelper; SchXMLTable& mrTable; bool mbHasRowPermutation; @@ -48,15 +47,16 @@ private: css::uno::Sequence< sal_Int32 > maColumnPermutation; public: - SchXMLTableContext( SchXMLImportHelper& rImpHelper, - SvXMLImport& rImport, + SchXMLTableContext( SvXMLImport& rImport, SchXMLTable& aTable ); virtual ~SchXMLTableContext() override; virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; void setRowPermutation( const css::uno::Sequence< sal_Int32 > & rPermutation ); @@ -109,7 +109,9 @@ public: SchXMLTableColumnContext( SvXMLImport& rImport, SchXMLTable& aTable ); virtual ~SchXMLTableColumnContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; }; // classes for rows @@ -117,12 +119,10 @@ public: class SchXMLTableRowsContext : public SvXMLImportContext { private: - SchXMLImportHelper& mrImportHelper; SchXMLTable& mrTable; public: - SchXMLTableRowsContext( SchXMLImportHelper& rImpHelper, - SvXMLImport& rImport, + SchXMLTableRowsContext( SvXMLImport& rImport, SchXMLTable& aTable ); virtual ~SchXMLTableRowsContext() override; @@ -134,12 +134,10 @@ public: class SchXMLTableRowContext : public SvXMLImportContext { private: - SchXMLImportHelper& mrImportHelper; SchXMLTable& mrTable; public: - SchXMLTableRowContext( SchXMLImportHelper& rImpHelper, - SvXMLImport& rImport, + SchXMLTableRowContext( SvXMLImport& rImport, SchXMLTable& aTable ); virtual ~SchXMLTableRowContext() override; @@ -153,22 +151,22 @@ public: class SchXMLTableCellContext : public SvXMLImportContext { private: - SchXMLImportHelper& mrImportHelper; SchXMLTable& mrTable; OUString maCellContent; OUString maRangeId; bool mbReadText; public: - SchXMLTableCellContext( SchXMLImportHelper& rImpHelper, - SvXMLImport& rImport, + SchXMLTableCellContext( SvXMLImport& rImport, SchXMLTable& aTable ); virtual ~SchXMLTableCellContext() override; virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; }; diff --git a/xmloff/source/draw/ximp3dobject.cxx b/xmloff/source/draw/ximp3dobject.cxx index 00d0ca472050..b58e7c559578 100644 --- a/xmloff/source/draw/ximp3dobject.cxx +++ b/xmloff/source/draw/ximp3dobject.cxx @@ -70,7 +70,9 @@ SdXML3DObjectContext::~SdXML3DObjectContext() { } -void SdXML3DObjectContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXML3DObjectContext::startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) { uno::Reference< beans::XPropertySet > xPropSet(mxShape, uno::UNO_QUERY); if(xPropSet.is()) @@ -82,7 +84,7 @@ void SdXML3DObjectContext::StartElement(const uno::Reference< xml::sax::XAttribu } // call parent - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } } @@ -131,7 +133,9 @@ SdXML3DCubeObjectShapeContext::~SdXML3DCubeObjectShapeContext() { } -void SdXML3DCubeObjectShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXML3DCubeObjectShapeContext::startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) { // create shape AddShape( "com.sun.star.drawing.Shape3DCubeObject" ); @@ -140,7 +144,7 @@ void SdXML3DCubeObjectShapeContext::StartElement(const uno::Reference< xml::sax: // add, set style and properties from base shape SetStyle(); - SdXML3DObjectContext::StartElement(xAttrList); + SdXML3DObjectContext::startFastElement(nElement, xAttrList); // set local parameters on shape uno::Reference< beans::XPropertySet > xPropSet(mxShape, uno::UNO_QUERY); @@ -211,7 +215,9 @@ SdXML3DSphereObjectShapeContext::~SdXML3DSphereObjectShapeContext() { } -void SdXML3DSphereObjectShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXML3DSphereObjectShapeContext::startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) { // create shape AddShape( "com.sun.star.drawing.Shape3DSphereObject" ); @@ -220,7 +226,7 @@ void SdXML3DSphereObjectShapeContext::StartElement(const uno::Reference< xml::sa // add, set style and properties from base shape SetStyle(); - SdXML3DObjectContext::StartElement(xAttrList); + SdXML3DObjectContext::startFastElement(nElement, xAttrList); // set local parameters on shape uno::Reference< beans::XPropertySet > xPropSet(mxShape, uno::UNO_QUERY); @@ -278,7 +284,9 @@ SdXML3DPolygonBasedShapeContext::~SdXML3DPolygonBasedShapeContext() { } -void SdXML3DPolygonBasedShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXML3DPolygonBasedShapeContext::startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) { uno::Reference< beans::XPropertySet > xPropSet(mxShape, uno::UNO_QUERY); @@ -314,7 +322,7 @@ void SdXML3DPolygonBasedShapeContext::StartElement(const uno::Reference< xml::sa } // call parent - SdXML3DObjectContext::StartElement(xAttrList); + SdXML3DObjectContext::startFastElement(nElement, xAttrList); } @@ -330,7 +338,9 @@ SdXML3DLatheObjectShapeContext::~SdXML3DLatheObjectShapeContext() { } -void SdXML3DLatheObjectShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXML3DLatheObjectShapeContext::startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) { // create shape AddShape( "com.sun.star.drawing.Shape3DLatheObject" ); @@ -338,7 +348,7 @@ void SdXML3DLatheObjectShapeContext::StartElement(const uno::Reference< xml::sax { // add, set style and properties from base shape SetStyle(); - SdXML3DPolygonBasedShapeContext::StartElement(xAttrList); + SdXML3DPolygonBasedShapeContext::startFastElement(nElement, xAttrList); } } @@ -354,14 +364,16 @@ SdXML3DExtrudeObjectShapeContext::~SdXML3DExtrudeObjectShapeContext() { } -void SdXML3DExtrudeObjectShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXML3DExtrudeObjectShapeContext::startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) { AddShape( "com.sun.star.drawing.Shape3DExtrudeObject" ); if(mxShape.is()) { // add, set style and properties from base shape SetStyle(); - SdXML3DPolygonBasedShapeContext::StartElement(xAttrList); + SdXML3DPolygonBasedShapeContext::startFastElement(nElement, xAttrList); } } diff --git a/xmloff/source/draw/ximp3dobject.hxx b/xmloff/source/draw/ximp3dobject.hxx index 5beca9c2ff97..ac40bd88b6ac 100644 --- a/xmloff/source/draw/ximp3dobject.hxx +++ b/xmloff/source/draw/ximp3dobject.hxx @@ -40,7 +40,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXML3DObjectContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; }; // dr3d:3dcube context @@ -57,7 +59,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXML3DCubeObjectShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; }; // dr3d:3dsphere context @@ -74,7 +78,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXML3DSphereObjectShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; }; // polygonbased context @@ -91,7 +97,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXML3DPolygonBasedShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; }; // dr3d:3dlathe context @@ -105,7 +113,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXML3DLatheObjectShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; }; // dr3d:3dextrude context @@ -119,7 +129,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXML3DExtrudeObjectShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; }; #endif // INCLUDED_XMLOFF_SOURCE_DRAW_XIMP3DOBJECT_HXX diff --git a/xmloff/source/draw/ximp3dscene.cxx b/xmloff/source/draw/ximp3dscene.cxx index 247dca10bfb2..b062898256ff 100644 --- a/xmloff/source/draw/ximp3dscene.cxx +++ b/xmloff/source/draw/ximp3dscene.cxx @@ -105,7 +105,9 @@ SdXML3DSceneShapeContext::~SdXML3DSceneShapeContext() { } -void SdXML3DSceneShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXML3DSceneShapeContext::startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) { // create new 3DScene shape and add it to rShapes, use it // as base for the new 3DScene import @@ -125,21 +127,14 @@ void SdXML3DSceneShapeContext::StartElement(const uno::Reference< xml::sax::XAtt } // read attributes for the 3DScene - sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - for(sal_Int16 i=0; i < nAttrCount; i++) - { - OUString sAttrName = xAttrList->getNameByIndex( i ); - OUString aLocalName; - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( sAttrName, &aLocalName ); - OUString sValue = xAttrList->getValueByIndex( i ); - processSceneAttribute( nPrefix, aLocalName, sValue ); - } + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) + processSceneAttribute( aIter.getToken(), aIter.toString() ); // #91047# call parent function is missing here, added it if(mxShape.is()) { // call parent - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } } @@ -243,100 +238,105 @@ SvXMLImportContext * SdXML3DSceneAttributesHelper::create3DLightContext( const c } /** this should be called for each scene attribute */ -void SdXML3DSceneAttributesHelper::processSceneAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) +void SdXML3DSceneAttributesHelper::processSceneAttribute( sal_Int32 nAttributeToken, const OUString& rValue ) { - if( XML_NAMESPACE_DR3D != nPrefix ) + if( !IsTokenInNamespace(nAttributeToken, XML_NAMESPACE_DR3D) ) return; - if( IsXMLToken( rLocalName, XML_TRANSFORM ) ) - { - SdXMLImExTransform3D aTransform(rValue, mrImport.GetMM100UnitConverter()); - if(aTransform.NeedsAction()) - mbSetTransform = aTransform.GetFullHomogenTransform(mxHomMat); - return; - } - else if( IsXMLToken( rLocalName, XML_VRP ) ) + switch(nAttributeToken & TOKEN_MASK) { - ::basegfx::B3DVector aNewVec; - SvXMLUnitConverter::convertB3DVector(aNewVec, rValue); - - if(aNewVec != maVRP) + case XML_TRANSFORM: { - maVRP = aNewVec; - mbVRPUsed = true; + SdXMLImExTransform3D aTransform(rValue, mrImport.GetMM100UnitConverter()); + if(aTransform.NeedsAction()) + mbSetTransform = aTransform.GetFullHomogenTransform(mxHomMat); + return; } - return; - } - else if( IsXMLToken( rLocalName, XML_VPN ) ) - { - ::basegfx::B3DVector aNewVec; - SvXMLUnitConverter::convertB3DVector(aNewVec, rValue); + case XML_VRP: + { + ::basegfx::B3DVector aNewVec; + SvXMLUnitConverter::convertB3DVector(aNewVec, rValue); - if(aNewVec != maVPN) + if(aNewVec != maVRP) + { + maVRP = aNewVec; + mbVRPUsed = true; + } + return; + } + case XML_VPN: { - maVPN = aNewVec; - mbVPNUsed = true; + ::basegfx::B3DVector aNewVec; + SvXMLUnitConverter::convertB3DVector(aNewVec, rValue); + + if(aNewVec != maVPN) + { + maVPN = aNewVec; + mbVPNUsed = true; + } + return; } - return; - } - else if( IsXMLToken( rLocalName, XML_VUP ) ) - { - ::basegfx::B3DVector aNewVec; - SvXMLUnitConverter::convertB3DVector(aNewVec, rValue); + case XML_VUP: + { + ::basegfx::B3DVector aNewVec; + SvXMLUnitConverter::convertB3DVector(aNewVec, rValue); - if(aNewVec != maVUP) + if(aNewVec != maVUP) + { + maVUP = aNewVec; + mbVUPUsed = true; + } + return; + } + case XML_PROJECTION: { - maVUP = aNewVec; - mbVUPUsed = true; + if( IsXMLToken( rValue, XML_PARALLEL ) ) + mxPrjMode = drawing::ProjectionMode_PARALLEL; + else + mxPrjMode = drawing::ProjectionMode_PERSPECTIVE; + return; } - return; - } - else if( IsXMLToken( rLocalName, XML_PROJECTION ) ) - { - if( IsXMLToken( rValue, XML_PARALLEL ) ) - mxPrjMode = drawing::ProjectionMode_PARALLEL; - else - mxPrjMode = drawing::ProjectionMode_PERSPECTIVE; - return; - } - else if( IsXMLToken( rLocalName, XML_DISTANCE ) ) - { - mrImport.GetMM100UnitConverter().convertMeasureToCore(mnDistance, - rValue); - return; - } - else if( IsXMLToken( rLocalName, XML_FOCAL_LENGTH ) ) - { - mrImport.GetMM100UnitConverter().convertMeasureToCore(mnFocalLength, - rValue); - return; - } - else if( IsXMLToken( rLocalName, XML_SHADOW_SLANT ) ) - { - ::sax::Converter::convertNumber(mnShadowSlant, rValue); - return; - } - else if( IsXMLToken( rLocalName, XML_SHADE_MODE ) ) - { - if( IsXMLToken( rValue, XML_FLAT ) ) - mxShadeMode = drawing::ShadeMode_FLAT; - else if( IsXMLToken( rValue, XML_PHONG ) ) - mxShadeMode = drawing::ShadeMode_PHONG; - else if( IsXMLToken( rValue, XML_GOURAUD ) ) - mxShadeMode = drawing::ShadeMode_SMOOTH; - else - mxShadeMode = drawing::ShadeMode_DRAFT; - return; - } - else if( IsXMLToken( rLocalName, XML_AMBIENT_COLOR ) ) - { - ::sax::Converter::convertColor(maAmbientColor, rValue); - return; - } - else if( IsXMLToken( rLocalName, XML_LIGHTING_MODE ) ) - { - (void)::sax::Converter::convertBool(mbLightingMode, rValue); - return; + case XML_DISTANCE: + { + mrImport.GetMM100UnitConverter().convertMeasureToCore(mnDistance, + rValue); + return; + } + case XML_FOCAL_LENGTH: + { + mrImport.GetMM100UnitConverter().convertMeasureToCore(mnFocalLength, + rValue); + return; + } + case XML_SHADOW_SLANT: + { + ::sax::Converter::convertNumber(mnShadowSlant, rValue); + return; + } + case XML_SHADE_MODE: + { + if( IsXMLToken( rValue, XML_FLAT ) ) + mxShadeMode = drawing::ShadeMode_FLAT; + else if( IsXMLToken( rValue, XML_PHONG ) ) + mxShadeMode = drawing::ShadeMode_PHONG; + else if( IsXMLToken( rValue, XML_GOURAUD ) ) + mxShadeMode = drawing::ShadeMode_SMOOTH; + else + mxShadeMode = drawing::ShadeMode_DRAFT; + return; + } + case XML_AMBIENT_COLOR: + { + ::sax::Converter::convertColor(maAmbientColor, rValue); + return; + } + case XML_LIGHTING_MODE: + { + (void)::sax::Converter::convertBool(mbLightingMode, rValue); + return; + } + default: + XMLOFF_WARN_UNKNOWN_ATTR("xmloff", nAttributeToken, rValue); } } diff --git a/xmloff/source/draw/ximp3dscene.hxx b/xmloff/source/draw/ximp3dscene.hxx index 2b8f15705d36..9d06f93990cf 100644 --- a/xmloff/source/draw/ximp3dscene.hxx +++ b/xmloff/source/draw/ximp3dscene.hxx @@ -41,11 +41,13 @@ public: bool bTemporaryShape); virtual ~SdXML3DSceneShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; - virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; + virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, diff --git a/xmloff/source/draw/ximpgrp.cxx b/xmloff/source/draw/ximpgrp.cxx index 8eda3df0697a..6627cfacb692 100644 --- a/xmloff/source/draw/ximpgrp.cxx +++ b/xmloff/source/draw/ximpgrp.cxx @@ -71,7 +71,8 @@ SvXMLImportContextRef SdXMLGroupShapeContext::CreateChildContext( sal_uInt16 nPr return xContext; } -void SdXMLGroupShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>&) +void SdXMLGroupShapeContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/) { // create new group shape and add it to rShapes, use it // as base for the new group import diff --git a/xmloff/source/draw/ximpgrp.hxx b/xmloff/source/draw/ximpgrp.hxx index dfa2478c8ac2..e0c6802b9f08 100644 --- a/xmloff/source/draw/ximpgrp.hxx +++ b/xmloff/source/draw/ximpgrp.hxx @@ -42,7 +42,9 @@ public: virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; }; diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx index e9ff3b51b5cd..15e627ba3953 100644 --- a/xmloff/source/draw/ximpshap.cxx +++ b/xmloff/source/draw/ximpshap.cxx @@ -336,7 +336,8 @@ void SdXMLShapeContext::addGluePoint( const uno::Reference< xml::sax::XAttribute } } -void SdXMLShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>&) +void SdXMLShapeContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/) { GetImport().GetShapeImport()->finishShape( mxShape, mxAttrList, mxShapes ); } @@ -970,7 +971,8 @@ void SdXMLRectShapeContext::processAttribute( sal_uInt16 nPrefix, const OUString SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue ); } -void SdXMLRectShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXMLRectShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // create rectangle shape AddShape("com.sun.star.drawing.RectangleShape"); @@ -999,7 +1001,7 @@ void SdXMLRectShapeContext::StartElement(const uno::Reference< xml::sax::XAttrib } } } - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } @@ -1054,7 +1056,8 @@ void SdXMLLineShapeContext::processAttribute( sal_uInt16 nPrefix, const OUString SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue ); } -void SdXMLLineShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXMLLineShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // #85920# use SetTransformation() to handle import of simple lines. // This is necessary to take into account all anchor positions and @@ -1110,7 +1113,7 @@ void SdXMLLineShapeContext::StartElement(const uno::Reference< xml::sax::XAttrib // set pos, size, shear and rotate and get copy of matrix SetTransformation(); - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } @@ -1198,7 +1201,8 @@ void SdXMLEllipseShapeContext::processAttribute( sal_uInt16 nPrefix, const OUStr SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue ); } -void SdXMLEllipseShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXMLEllipseShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // create rectangle shape AddShape("com.sun.star.drawing.EllipseShape"); @@ -1232,7 +1236,7 @@ void SdXMLEllipseShapeContext::StartElement(const uno::Reference< xml::sax::XAtt } } - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } @@ -1272,7 +1276,8 @@ SdXMLPolygonShapeContext::~SdXMLPolygonShapeContext() { } -void SdXMLPolygonShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXMLPolygonShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // Add, set Style and properties from base shape if(mbClosed) @@ -1339,7 +1344,7 @@ void SdXMLPolygonShapeContext::StartElement(const uno::Reference< xml::sax::XAtt // set pos, size, shear and rotate and get copy of matrix SetTransformation(); - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } @@ -1376,7 +1381,8 @@ void SdXMLPathShapeContext::processAttribute( sal_uInt16 nPrefix, const OUString SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue ); } -void SdXMLPathShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXMLPathShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // create polygon shape if(maD.isEmpty()) @@ -1490,7 +1496,7 @@ void SdXMLPathShapeContext::StartElement(const uno::Reference< xml::sax::XAttrib // set pos, size, shear and rotate SetTransformation(); - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } @@ -1531,7 +1537,8 @@ void SdXMLTextBoxShapeContext::processAttribute( sal_uInt16 nPrefix, const OUStr SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue ); } -void SdXMLTextBoxShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>&) +void SdXMLTextBoxShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // create textbox shape bool bIsPresShape = false; @@ -1676,7 +1683,7 @@ void SdXMLTextBoxShapeContext::StartElement(const uno::Reference< xml::sax::XAtt } } - SdXMLShapeContext::StartElement(mxAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } @@ -1708,7 +1715,8 @@ void SdXMLControlShapeContext::processAttribute( sal_uInt16 nPrefix, const OUStr SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue ); } -void SdXMLControlShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXMLControlShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // create Control shape // add, set style and properties from base shape @@ -1738,7 +1746,7 @@ void SdXMLControlShapeContext::StartElement(const uno::Reference< xml::sax::XAtt // set pos, size, shear and rotate SetTransformation(); - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } @@ -1891,7 +1899,8 @@ void SdXMLConnectorShapeContext::processAttribute( sal_uInt16 nPrefix, const OUS SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue ); } -void SdXMLConnectorShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXMLConnectorShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // For security reasons, do not add empty connectors. There may have been an error in EA2 // that created empty, far set off connectors (e.g. 63 meters below top of document). This @@ -2042,7 +2051,7 @@ void SdXMLConnectorShapeContext::StartElement(const uno::Reference< xml::sax::XA } } - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } @@ -2098,7 +2107,8 @@ void SdXMLMeasureShapeContext::processAttribute( sal_uInt16 nPrefix, const OUStr SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue ); } -void SdXMLMeasureShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXMLMeasureShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // create Measure shape // add, set style and properties from base shape @@ -2123,7 +2133,7 @@ void SdXMLMeasureShapeContext::StartElement(const uno::Reference< xml::sax::XAtt xText->setString( " " ); } - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } void SdXMLMeasureShapeContext::endFastElement(sal_Int32 nElement) @@ -2178,7 +2188,8 @@ void SdXMLPageShapeContext::processAttribute( sal_uInt16 nPrefix, const OUString SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue ); } -void SdXMLPageShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXMLPageShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // create Page shape // add, set style and properties from base shape @@ -2230,7 +2241,7 @@ void SdXMLPageShapeContext::StartElement(const uno::Reference< xml::sax::XAttrib xPropSet->setPropertyValue(aPageNumberStr, uno::makeAny( mnPageNumber )); } - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } @@ -2249,7 +2260,8 @@ SdXMLCaptionShapeContext::~SdXMLCaptionShapeContext() { } -void SdXMLCaptionShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXMLCaptionShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // create Caption shape // add, set style and properties from base shape @@ -2301,7 +2313,7 @@ void SdXMLCaptionShapeContext::StartElement(const uno::Reference< xml::sax::XAtt } } - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } // this is called from the parent group for each unparsed attribute in the attribute list @@ -2356,7 +2368,8 @@ void SdXMLGraphicObjectShapeContext::processAttribute( sal_uInt16 nPrefix, const SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue ); } -void SdXMLGraphicObjectShapeContext::StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& ) +void SdXMLGraphicObjectShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // create graphic object shape OUString service; @@ -2427,7 +2440,7 @@ void SdXMLGraphicObjectShapeContext::StartElement( const css::uno::Reference< cs // set pos, size, shear and rotate SetTransformation(); - SdXMLShapeContext::StartElement(mxAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } void SdXMLGraphicObjectShapeContext::endFastElement(sal_Int32 nElement) @@ -2490,7 +2503,8 @@ SdXMLChartShapeContext::SdXMLChartShapeContext( { } -void SdXMLChartShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>& xAttrList) +void SdXMLChartShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { const bool bIsPresentation = isPresentationShape(); @@ -2544,10 +2558,10 @@ void SdXMLChartShapeContext::StartElement(const uno::Reference< xml::sax::XAttri // set pos, size, shear and rotate SetTransformation(); - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); if( mxChartContext.is() ) - mxChartContext->StartElement( xAttrList ); + mxChartContext->startFastElement( nElement, xAttrList ); } void SdXMLChartShapeContext::endFastElement(sal_Int32 nElement) @@ -2585,7 +2599,8 @@ SdXMLObjectShapeContext::~SdXMLObjectShapeContext() { } -void SdXMLObjectShapeContext::StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& ) +void SdXMLObjectShapeContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/) { // #96717# in theorie, if we don't have a URL we shouldn't even // export this OLE shape. But practically it's too risky right now @@ -2798,7 +2813,8 @@ SdXMLAppletShapeContext::~SdXMLAppletShapeContext() { } -void SdXMLAppletShapeContext::StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& ) +void SdXMLAppletShapeContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/) { AddShape("com.sun.star.drawing.AppletShape"); @@ -2948,21 +2964,19 @@ SdXMLPluginShapeContext::~SdXMLPluginShapeContext() { } -void SdXMLPluginShapeContext::StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList) +void SdXMLPluginShapeContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // watch for MimeType attribute to see if we have a media object - for( sal_Int16 n = 0, nAttrCount = ( xAttrList.is() ? xAttrList->getLength() : 0 ); n < nAttrCount; ++n ) + for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString aLocalName; - sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( xAttrList->getNameByIndex( n ), &aLocalName ); - - if( nPrefix == XML_NAMESPACE_DRAW && IsXMLToken( aLocalName, XML_MIME_TYPE ) ) + if( aIter.getToken() == XML_ELEMENT(DRAW, XML_MIME_TYPE) ) { - if( xAttrList->getValueByIndex( n ) == "application/vnd.sun.star.media" ) + if( aIter.toString() == "application/vnd.sun.star.media" ) mbMedia = true; // leave this loop - n = nAttrCount - 1; + break; } } @@ -3212,7 +3226,8 @@ SdXMLFloatingFrameShapeContext::~SdXMLFloatingFrameShapeContext() { } -void SdXMLFloatingFrameShapeContext::StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& ) +void SdXMLFloatingFrameShapeContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/) { AddShape("com.sun.star.drawing.FrameShape"); @@ -3530,7 +3545,8 @@ SvXMLImportContextRef SdXMLFrameShapeContext::CreateChildContext( sal_uInt16 nPr return xContext; } -void SdXMLFrameShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeList>&) +void SdXMLFrameShapeContext::startFastElement (sal_Int32 /*nElement*/, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/) { // ignore } @@ -3685,7 +3701,8 @@ void SdXMLCustomShapeContext::processAttribute( sal_uInt16 nPrefix, const OUStri SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue ); } -void SdXMLCustomShapeContext::StartElement( const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +void SdXMLCustomShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { // create rectangle shape AddShape("com.sun.star.drawing.CustomShape"); @@ -3718,7 +3735,7 @@ void SdXMLCustomShapeContext::StartElement( const uno::Reference< xml::sax::XAtt { DBG_UNHANDLED_EXCEPTION( "xmloff", "setting enhanced customshape geometry" ); } - SdXMLShapeContext::StartElement(xAttrList); + SdXMLShapeContext::startFastElement(nElement, xAttrList); } void SdXMLCustomShapeContext::endFastElement(sal_Int32 nElement) @@ -3873,7 +3890,8 @@ SdXMLTableShapeContext::~SdXMLTableShapeContext() { } -void SdXMLTableShapeContext::StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) +void SdXMLTableShapeContext::startFastElement (sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { OUString service("com.sun.star.drawing.TableShape"); @@ -3952,7 +3970,7 @@ void SdXMLTableShapeContext::StartElement( const css::uno::Reference< css::xml:: mxTableImportContext = xTableImport->CreateTableContext( xColumnRowRange ); if( mxTableImportContext.is() ) - mxTableImportContext->StartElement( xAttrList ); + mxTableImportContext->startFastElement( nElement, xAttrList ); } } diff --git a/xmloff/source/draw/ximpshap.hxx b/xmloff/source/draw/ximpshap.hxx index 84a76b315d55..ca89d1ffc431 100644 --- a/xmloff/source/draw/ximpshap.hxx +++ b/xmloff/source/draw/ximpshap.hxx @@ -104,7 +104,9 @@ public: bool bTemporaryShape); virtual ~SdXMLShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, @@ -128,7 +130,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes, bool bTemporaryShape); virtual ~SdXMLRectShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; // this is called from the parent group for each unparsed attribute in the attribute list virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override; @@ -150,7 +154,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes, bool bTemporaryShape); virtual ~SdXMLLineShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; // this is called from the parent group for each unparsed attribute in the attribute list virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override; @@ -175,7 +181,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes, bool bTemporaryShape); virtual ~SdXMLEllipseShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; // this is called from the parent group for each unparsed attribute in the attribute list virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override; @@ -195,7 +203,9 @@ public: const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList, css::uno::Reference< css::drawing::XShapes > const & rShapes, bool bClosed, bool bTemporaryShape); virtual ~SdXMLPolygonShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; // this is called from the parent group for each unparsed attribute in the attribute list virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override; @@ -215,7 +225,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes, bool bTemporaryShape); virtual ~SdXMLPathShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; // this is called from the parent group for each unparsed attribute in the attribute list virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override; @@ -234,7 +246,9 @@ public: const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList, css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXMLTextBoxShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; // this is called from the parent group for each unparsed attribute in the attribute list virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override; @@ -254,7 +268,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes, bool bTemporaryShape); virtual ~SdXMLControlShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; // this is called from the parent group for each unparsed attribute in the attribute list virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override; @@ -289,7 +305,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes, bool bTemporaryShape); virtual ~SdXMLConnectorShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; // this is called from the parent group for each unparsed attribute in the attribute list virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override; @@ -310,7 +328,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes, bool bTemporaryShape); virtual ~SdXMLMeasureShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; // this is called from the parent group for each unparsed attribute in the attribute list @@ -330,7 +350,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes, bool bTemporaryShape); virtual ~SdXMLPageShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; // this is called from the parent group for each unparsed attribute in the attribute list virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override; @@ -351,7 +373,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes, bool bTemporaryShape); virtual ~SdXMLCaptionShapeContext() override; - virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; // this is called from the parent group for each unparsed attribute in the attribute list virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override; @@ -372,7 +396,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXMLGraphicObjectShapeContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override; @@ -394,7 +420,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes, bool bTemporaryShape); - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; virtual void SAL_CALL characters( const OUString& rChars ) override; virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, @@ -418,7 +446,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXMLObjectShapeContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( @@ -450,7 +480,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXMLAppletShapeContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, @@ -478,7 +510,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXMLPluginShapeContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, @@ -505,7 +539,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXMLFloatingFrameShapeContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; // this is called from the parent group for each unparsed attribute in the attribute list @@ -538,7 +574,9 @@ public: virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override; @@ -559,7 +597,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes); virtual ~SdXMLCustomShapeContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, @@ -580,7 +620,9 @@ public: css::uno::Reference< css::drawing::XShapes > const & rShapes ); virtual ~SdXMLTableShapeContext() override; - virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override; + virtual void SAL_CALL startFastElement( + sal_Int32 nElement, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; virtual void SAL_CALL endFastElement(sal_Int32 nElement) override; virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override; |