diff options
Diffstat (limited to 'oox/source/xls/condformatbuffer.cxx')
-rw-r--r-- | oox/source/xls/condformatbuffer.cxx | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/oox/source/xls/condformatbuffer.cxx b/oox/source/xls/condformatbuffer.cxx index 51d9170e1794..1914ed233f46 100644 --- a/oox/source/xls/condformatbuffer.cxx +++ b/oox/source/xls/condformatbuffer.cxx @@ -193,10 +193,9 @@ void CondFormatRule::importCfRule( const AttributeList& rAttribs ) void CondFormatRule::appendFormula( const OUString& rFormula ) { - TokensFormulaContext aContext( true, false ); - aContext.setBaseAddress( mrCondFormat.getRanges().getBaseAddress() ); - getFormulaParser().importFormula( aContext, rFormula ); - maModel.maFormulas.push_back( aContext ); + CellAddress aBaseAddr = mrCondFormat.getRanges().getBaseAddress(); + ApiTokenSequence aTokens = getFormulaParser().importFormula( aBaseAddr, rFormula ); + maModel.maFormulas.push_back( aTokens ); } void CondFormatRule::importCfRule( SequenceInputStream& rStrm ) @@ -216,25 +215,24 @@ void CondFormatRule::importCfRule( SequenceInputStream& rStrm ) OSL_ENSURE( (nFmla1Size > 0) == (rStrm.getRemaining() >= 8), "CondFormatRule::importCfRule - formula size mismatch" ); if( rStrm.getRemaining() >= 8 ) { - TokensFormulaContext aContext( true, false ); - aContext.setBaseAddress( mrCondFormat.getRanges().getBaseAddress() ); - getFormulaParser().importFormula( aContext, rStrm ); - maModel.maFormulas.push_back( aContext ); + CellAddress aBaseAddr = mrCondFormat.getRanges().getBaseAddress(); + ApiTokenSequence aTokens = getFormulaParser().importFormula( aBaseAddr, FORMULATYPE_CONDFORMAT, rStrm ); + maModel.maFormulas.push_back( aTokens ); // second formula OSL_ENSURE( (nFmla2Size >= 0) || (nFmla3Size == 0), "CondFormatRule::importCfRule - missing second formula" ); OSL_ENSURE( (nFmla2Size > 0) == (rStrm.getRemaining() >= 8), "CondFormatRule::importCfRule - formula size mismatch" ); if( rStrm.getRemaining() >= 8 ) { - getFormulaParser().importFormula( aContext, rStrm ); - maModel.maFormulas.push_back( aContext ); + aTokens = getFormulaParser().importFormula( aBaseAddr, FORMULATYPE_CONDFORMAT, rStrm ); + maModel.maFormulas.push_back( aTokens ); // third formula OSL_ENSURE( (nFmla3Size > 0) == (rStrm.getRemaining() >= 8), "CondFormatRule::importCfRule - formula size mismatch" ); if( rStrm.getRemaining() >= 8 ) { - getFormulaParser().importFormula( aContext, rStrm ); - maModel.maFormulas.push_back( aContext ); + aTokens = getFormulaParser().importFormula( aBaseAddr, FORMULATYPE_CONDFORMAT, rStrm ); + maModel.maFormulas.push_back( aTokens ); } } } @@ -419,21 +417,20 @@ void CondFormatRule::importCfRule( BiffInputStream& rStrm, sal_Int32 nPriority ) OSL_ENSURE( (nFmla1Size > 0) || (nFmla2Size == 0), "CondFormatRule::importCfRule - missing first formula" ); if( nFmla1Size > 0 ) { - TokensFormulaContext aContext( true, false ); - aContext.setBaseAddress( mrCondFormat.getRanges().getBaseAddress() ); - getFormulaParser().importFormula( aContext, rStrm, &nFmla1Size ); - maModel.maFormulas.push_back( aContext ); + CellAddress aBaseAddr = mrCondFormat.getRanges().getBaseAddress(); + ApiTokenSequence aTokens = getFormulaParser().importFormula( aBaseAddr, FORMULATYPE_CONDFORMAT, rStrm, &nFmla1Size ); + maModel.maFormulas.push_back( aTokens ); if( nFmla2Size > 0 ) { - getFormulaParser().importFormula( aContext, rStrm, &nFmla2Size ); - maModel.maFormulas.push_back( aContext ); + aTokens = getFormulaParser().importFormula( aBaseAddr, FORMULATYPE_CONDFORMAT, rStrm, &nFmla2Size ); + maModel.maFormulas.push_back( aTokens ); } } } void CondFormatRule::finalizeImport( const Reference< XSheetConditionalEntries >& rxEntries ) { - ConditionOperator eOperator = ::com::sun::star::sheet::ConditionOperator_NONE; + ConditionOperator eOperator = ConditionOperator_NONE; /* Replacement formula for unsupported rule types (text comparison rules, time period rules, cell type rules). The replacement formulas below may @@ -460,7 +457,7 @@ void CondFormatRule::finalizeImport( const Reference< XSheetConditionalEntries > eOperator = CondFormatBuffer::convertToApiOperator( maModel.mnOperator ); break; case XML_expression: - eOperator = ::com::sun::star::sheet::ConditionOperator_FORMULA; + eOperator = ConditionOperator_FORMULA; break; case XML_containsText: OSL_ENSURE( maModel.mnOperator == XML_containsText, "CondFormatRule::finalizeImport - unexpected operator" ); @@ -591,17 +588,17 @@ void CondFormatRule::finalizeImport( const Reference< XSheetConditionalEntries > // set the replacement formula maModel.maFormulas.clear(); appendFormula( aReplaceFormula ); - eOperator = ::com::sun::star::sheet::ConditionOperator_FORMULA; + eOperator = ConditionOperator_FORMULA; } - if( rxEntries.is() && (eOperator != ::com::sun::star::sheet::ConditionOperator_NONE) && !maModel.maFormulas.empty() ) + if( rxEntries.is() && (eOperator != ConditionOperator_NONE) && !maModel.maFormulas.empty() ) { ::std::vector< PropertyValue > aProps; // create condition properties lclAppendProperty( aProps, CREATE_OUSTRING( "Operator" ), eOperator ); - lclAppendProperty( aProps, CREATE_OUSTRING( "Formula1" ), maModel.maFormulas[ 0 ].getTokens() ); + lclAppendProperty( aProps, CREATE_OUSTRING( "Formula1" ), maModel.maFormulas[ 0 ] ); if( maModel.maFormulas.size() >= 2 ) - lclAppendProperty( aProps, CREATE_OUSTRING( "Formula2" ), maModel.maFormulas[ 1 ].getTokens() ); + lclAppendProperty( aProps, CREATE_OUSTRING( "Formula2" ), maModel.maFormulas[ 1 ] ); // style name for the formatting attributes OUString aStyleName = getStyles().createDxfStyle( maModel.mnDxfId ); @@ -744,7 +741,6 @@ void CondFormatBuffer::finalizeImport() ConditionOperator CondFormatBuffer::convertToApiOperator( sal_Int32 nToken ) { - using namespace ::com::sun::star::sheet; switch( nToken ) { case XML_between: return ConditionOperator_BETWEEN; |