sc/source/filter/inc/formulabase.hxx | 2 sc/source/filter/oox/formulabase.cxx | 5 +- sc/source/filter/oox/formulaparser.cxx | 63 ++++-------------------------- sc/source/filter/oox/ooxformulaparser.cxx | 7 +-- 4 files changed, 18 insertions(+), 59 deletions(-)
New commits: commit 58c5a9de2a0b985ef81557271db39c56ceb624f9 Author: Jochen Nitschke <j.nitschke+loger...@ok.de> Date: Thu Jan 12 02:27:09 2017 +0100 tdf#48140 replace CellAddress in xlsx import (4) Change-Id: I52d7a37dd106744052d714e66fd84895aeb0a9b8 Reviewed-on: https://gerrit.libreoffice.org/33001 Reviewed-by: Jochen Nitschke <j.nitschke+loger...@ok.de> Tested-by: Jochen Nitschke <j.nitschke+loger...@ok.de> diff --git a/sc/source/filter/inc/formulabase.hxx b/sc/source/filter/inc/formulabase.hxx index 91c67c8..46ddbfb 100644 --- a/sc/source/filter/inc/formulabase.hxx +++ b/sc/source/filter/inc/formulabase.hxx @@ -609,7 +609,7 @@ public: /** Calls the XFormulaParser::parseFormula() function of the API parser. */ ApiTokenSequence parseFormula( const OUString& rFormula, - const css::table::CellAddress& rRefPos ); + const ScAddress& rRefPos ); private: css::uno::Reference< css::sheet::XFormulaParser > diff --git a/sc/source/filter/oox/formulabase.cxx b/sc/source/filter/oox/formulabase.cxx index 5966c08..b2f0ace 100644 --- a/sc/source/filter/oox/formulabase.cxx +++ b/sc/source/filter/oox/formulabase.cxx @@ -1441,12 +1441,13 @@ ApiParserWrapper::ApiParserWrapper( maParserProps.setProperty( PROP_OpCodeMap, getOoxParserMap() ); } -ApiTokenSequence ApiParserWrapper::parseFormula( const OUString& rFormula, const CellAddress& rRefPos ) +ApiTokenSequence ApiParserWrapper::parseFormula( const OUString& rFormula, const ScAddress& rRefPos ) { ApiTokenSequence aTokenSeq; if( mxParser.is() ) try { - aTokenSeq = mxParser->parseFormula( rFormula, rRefPos ); + aTokenSeq = mxParser->parseFormula( rFormula, + CellAddress(rRefPos.Tab(), rRefPos.Col(), rRefPos.Row()) ); } catch( Exception& ) { diff --git a/sc/source/filter/oox/formulaparser.cxx b/sc/source/filter/oox/formulaparser.cxx index 759c1c7..ff0ce24 100644 --- a/sc/source/filter/oox/formulaparser.cxx +++ b/sc/source/filter/oox/formulaparser.cxx @@ -423,20 +423,11 @@ public: /** Converts an OOXML formula string. */ virtual ApiTokenSequence importOoxFormula( - const CellAddress& rBaseAddress, - const OUString& rFormulaString ); - - virtual ApiTokenSequence importOoxFormulaSc( const ScAddress& rBaseAddress, const OUString& rFormulaString ); /** Imports and converts a BIFF12 token array from the passed stream. */ virtual ApiTokenSequence importBiff12Formula( - const CellAddress& rBaseAddress, - FormulaType eType, - SequenceInputStream& rStrm ); - - virtual ApiTokenSequence importBiff12FormulaSc( const ScAddress& rBaseAddress, FormulaType eType, SequenceInputStream& rStrm ); @@ -449,7 +440,7 @@ protected: typedef ::std::vector< WhiteSpace > WhiteSpaceVec; /** Initializes the formula parser before importing a formula. */ - void initializeImport( const CellAddress& rBaseAddress, FormulaType eType ); + void initializeImport( const ScAddress& rBaseAddress, FormulaType eType ); /** Finalizes the internal token storage after import. */ ApiTokenSequence finalizeImport(); @@ -579,31 +570,18 @@ FormulaParserImpl::FormulaParserImpl( const FormulaParser& rParent ) : maClosingSpaces.reserve( 256 ); } -ApiTokenSequence FormulaParserImpl::importOoxFormula( const CellAddress&, const OUString& ) +ApiTokenSequence FormulaParserImpl::importOoxFormula( const ScAddress&, const OUString& ) { OSL_FAIL( "FormulaParserImpl::importOoxFormula - not implemented" ); return ApiTokenSequence(); } -ApiTokenSequence FormulaParserImpl::importOoxFormulaSc( const ScAddress&, const OUString& ) -{ - OSL_FAIL( "FormulaParserImpl::importOoxFormula - not implemented" ); - return ApiTokenSequence(); -} - -ApiTokenSequence FormulaParserImpl::importBiff12Formula( const CellAddress&, FormulaType, SequenceInputStream& ) -{ - SAL_WARN("sc.filter", "FormulaParserImpl::importBiff12Formula - not implemented" ); - return ApiTokenSequence(); -} - -ApiTokenSequence FormulaParserImpl::importBiff12FormulaSc( const ScAddress&, FormulaType, SequenceInputStream& ) +ApiTokenSequence FormulaParserImpl::importBiff12Formula( const ScAddress&, FormulaType, SequenceInputStream& ) { SAL_WARN("sc.filter", "FormulaParserImpl::importBiff12Formula - not implemented" ); return ApiTokenSequence(); } - OUString FormulaParserImpl::resolveOleTarget( sal_Int32 nRefId, bool bUseRefSheets ) const { const ExternalLink* pExtLink = getExternalLinks().getExternalLink( nRefId, bUseRefSheets ).get(); @@ -613,9 +591,9 @@ OUString FormulaParserImpl::resolveOleTarget( sal_Int32 nRefId, bool bUseRefShee return OUString(); } -void FormulaParserImpl::initializeImport( const CellAddress& rBaseAddr, FormulaType eType ) +void FormulaParserImpl::initializeImport( const ScAddress& rBaseAddr, FormulaType eType ) { - maBaseAddr = ScAddress( rBaseAddr.Column, rBaseAddr.Row, rBaseAddr.Sheet ); + maBaseAddr = rBaseAddr; mbRelativeAsOffset = mb2dRefsAs3dRefs = mbSpecialTokens = false; switch( eType ) { @@ -1226,19 +1204,10 @@ public: explicit OoxFormulaParserImpl( const FormulaParser& rParent ); virtual ApiTokenSequence importOoxFormula( - const CellAddress& rBaseAddr, - const OUString& rFormulaString ) override; - - virtual ApiTokenSequence importBiff12Formula( - const CellAddress& rBaseAddr, - FormulaType eType, - SequenceInputStream& rStrm ) override; - - virtual ApiTokenSequence importOoxFormulaSc( const ScAddress& rBaseAddr, const OUString& rFormulaString ) override; - virtual ApiTokenSequence importBiff12FormulaSc( + virtual ApiTokenSequence importBiff12Formula( const ScAddress& rBaseAddr, FormulaType eType, SequenceInputStream& rStrm ) override; @@ -1288,7 +1257,7 @@ OoxFormulaParserImpl::OoxFormulaParserImpl( const FormulaParser& rParent ) : { } -ApiTokenSequence OoxFormulaParserImpl::importOoxFormula( const CellAddress& rBaseAddr, const OUString& rFormulaString ) +ApiTokenSequence OoxFormulaParserImpl::importOoxFormula( const ScAddress& rBaseAddr, const OUString& rFormulaString ) { if( mbNeedExtRefs ) { @@ -1298,20 +1267,8 @@ ApiTokenSequence OoxFormulaParserImpl::importOoxFormula( const CellAddress& rBas return finalizeTokenArray( maApiParser.parseFormula( rFormulaString, rBaseAddr ) ); } -ApiTokenSequence OoxFormulaParserImpl::importOoxFormulaSc( const ScAddress& rBaseAddr, const OUString& rFormulaString ) -{ - CellAddress aTempAddress( rBaseAddr.Tab(), rBaseAddr.Col(), rBaseAddr.Row() ); - return importOoxFormula(aTempAddress, rFormulaString); -} - // TODO: remove the importBiff12Formula function -ApiTokenSequence OoxFormulaParserImpl::importBiff12FormulaSc( const ScAddress& rBaseAddr, FormulaType eType, SequenceInputStream& rStrm ) -{ - CellAddress aTempAddress( rBaseAddr.Tab(), rBaseAddr.Col(), rBaseAddr.Row() ); - return importBiff12Formula(aTempAddress, eType, rStrm); -} - -ApiTokenSequence OoxFormulaParserImpl::importBiff12Formula( const CellAddress& rBaseAddr, FormulaType eType, SequenceInputStream& rStrm ) +ApiTokenSequence OoxFormulaParserImpl::importBiff12Formula( const ScAddress& rBaseAddr, FormulaType eType, SequenceInputStream& rStrm ) { initializeImport( rBaseAddr, eType ); @@ -1832,12 +1789,12 @@ FormulaParser::~FormulaParser() ApiTokenSequence FormulaParser::importFormula( const ScAddress& rBaseAddress, const OUString& rFormulaString ) const { - return mxImpl->importOoxFormulaSc( rBaseAddress, rFormulaString ); + return mxImpl->importOoxFormula( rBaseAddress, rFormulaString ); } ApiTokenSequence FormulaParser::importFormula( const ScAddress& rBaseAddress, FormulaType eType, SequenceInputStream& rStrm ) const { - return mxImpl->importBiff12FormulaSc( rBaseAddress, eType, rStrm ); + return mxImpl->importBiff12Formula( rBaseAddress, eType, rStrm ); } OUString FormulaParser::importOleTargetLink( const OUString& rFormulaString ) diff --git a/sc/source/filter/oox/ooxformulaparser.cxx b/sc/source/filter/oox/ooxformulaparser.cxx index fc65fde..720c277 100644 --- a/sc/source/filter/oox/ooxformulaparser.cxx +++ b/sc/source/filter/oox/ooxformulaparser.cxx @@ -40,7 +40,7 @@ class OOXMLFormulaParserImpl : private FormulaFinalizer public: explicit OOXMLFormulaParserImpl( const Reference< XMultiServiceFactory >& rxModelFactory ); - Sequence< FormulaToken > parseFormula( const OUString& rFormula, const CellAddress& rReferencePos ); + Sequence< FormulaToken > parseFormula( const OUString& rFormula, const ScAddress& rReferencePos ); protected: virtual const FunctionInfo* resolveBadFuncName( const OUString& rTokenData ) const override; @@ -55,7 +55,7 @@ OOXMLFormulaParserImpl::OOXMLFormulaParserImpl( const Reference< XMultiServiceFa { } -Sequence< FormulaToken > OOXMLFormulaParserImpl::parseFormula( const OUString& rFormula, const CellAddress& rReferencePos ) +Sequence< FormulaToken > OOXMLFormulaParserImpl::parseFormula( const OUString& rFormula, const ScAddress& rReferencePos ) { return finalizeTokenArray( maApiParser.parseFormula( rFormula, rReferencePos ) ); } @@ -151,7 +151,8 @@ Sequence< FormulaToken > SAL_CALL OOXMLFormulaParser::parseFormula( Reference< XMultiServiceFactory > xModelFactory( mxComponent, UNO_QUERY_THROW ); mxParserImpl.reset( new OOXMLFormulaParserImpl( xModelFactory ) ); } - return mxParserImpl->parseFormula( rFormula, rReferencePos ); + return mxParserImpl->parseFormula( rFormula, + ScAddress(rReferencePos.Column, rReferencePos.Row, rReferencePos.Sheet) ); } OUString SAL_CALL OOXMLFormulaParser::printFormula( _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits