Kaydet (Commit) b116ca61 authored tarafından Noel Grandin's avatar Noel Grandin

convert FormulaType to scoped enum

and drop unused FORMULATYPE_DEFINEDNAME enumerator

Change-Id: Iaa2094346a52b9f34e71708ba4b6efe5a1809ad4
üst 04004cc2
...@@ -210,14 +210,13 @@ const sal_uInt16 BIFF_FUNC_WEEKNUM = 465; /// Function identif ...@@ -210,14 +210,13 @@ const sal_uInt16 BIFF_FUNC_WEEKNUM = 465; /// Function identif
// Formula type =============================================================== // Formula type ===============================================================
/** Enumerates all possible types of a formula. */ /** Enumerates all possible types of a formula. */
enum FormulaType enum class FormulaType
{ {
FORMULATYPE_CELL, /// Simple cell formula, or reference to a shared formula name. Cell, /// Simple cell formula, or reference to a shared formula name.
FORMULATYPE_ARRAY, /// Array (matrix) formula. Array, /// Array (matrix) formula.
FORMULATYPE_SHAREDFORMULA, /// Shared formula definition. SharedFormula, /// Shared formula definition.
FORMULATYPE_CONDFORMAT, /// Condition of a conditional format rule. CondFormat, /// Condition of a conditional format rule.
FORMULATYPE_VALIDATION, /// Condition of a data validation. Validation /// Condition of a data validation.
FORMULATYPE_DEFINEDNAME /// Definition of a defined name.
}; };
// Reference helpers ========================================================== // Reference helpers ==========================================================
......
...@@ -501,7 +501,7 @@ void CondFormatRule::importCfRule( SequenceInputStream& rStrm ) ...@@ -501,7 +501,7 @@ void CondFormatRule::importCfRule( SequenceInputStream& rStrm )
if( rStrm.getRemaining() >= 8 ) if( rStrm.getRemaining() >= 8 )
{ {
ScAddress aBaseAddr = mrCondFormat.getRanges().GetTopLeftCorner(); ScAddress aBaseAddr = mrCondFormat.getRanges().GetTopLeftCorner();
ApiTokenSequence aTokens = getFormulaParser().importFormula( aBaseAddr, FORMULATYPE_CONDFORMAT, rStrm ); ApiTokenSequence aTokens = getFormulaParser().importFormula( aBaseAddr, FormulaType::CondFormat, rStrm );
maModel.maFormulas.push_back( aTokens ); maModel.maFormulas.push_back( aTokens );
// second formula // second formula
...@@ -509,14 +509,14 @@ void CondFormatRule::importCfRule( SequenceInputStream& rStrm ) ...@@ -509,14 +509,14 @@ void CondFormatRule::importCfRule( SequenceInputStream& rStrm )
OSL_ENSURE( (nFmla2Size > 0) == (rStrm.getRemaining() >= 8), "CondFormatRule::importCfRule - formula size mismatch" ); OSL_ENSURE( (nFmla2Size > 0) == (rStrm.getRemaining() >= 8), "CondFormatRule::importCfRule - formula size mismatch" );
if( rStrm.getRemaining() >= 8 ) if( rStrm.getRemaining() >= 8 )
{ {
aTokens = getFormulaParser().importFormula( aBaseAddr, FORMULATYPE_CONDFORMAT, rStrm ); aTokens = getFormulaParser().importFormula( aBaseAddr, FormulaType::CondFormat, rStrm );
maModel.maFormulas.push_back( aTokens ); maModel.maFormulas.push_back( aTokens );
// third formula // third formula
OSL_ENSURE( (nFmla3Size > 0) == (rStrm.getRemaining() >= 8), "CondFormatRule::importCfRule - formula size mismatch" ); OSL_ENSURE( (nFmla3Size > 0) == (rStrm.getRemaining() >= 8), "CondFormatRule::importCfRule - formula size mismatch" );
if( rStrm.getRemaining() >= 8 ) if( rStrm.getRemaining() >= 8 )
{ {
aTokens = getFormulaParser().importFormula( aBaseAddr, FORMULATYPE_CONDFORMAT, rStrm ); aTokens = getFormulaParser().importFormula( aBaseAddr, FormulaType::CondFormat, rStrm );
maModel.maFormulas.push_back( aTokens ); maModel.maFormulas.push_back( aTokens );
} }
} }
......
...@@ -594,25 +594,20 @@ void FormulaParserImpl::initializeImport( const ScAddress& rBaseAddr, FormulaTyp ...@@ -594,25 +594,20 @@ void FormulaParserImpl::initializeImport( const ScAddress& rBaseAddr, FormulaTyp
mbRelativeAsOffset = mb2dRefsAs3dRefs = mbSpecialTokens = false; mbRelativeAsOffset = mb2dRefsAs3dRefs = mbSpecialTokens = false;
switch( eType ) switch( eType )
{ {
case FORMULATYPE_CELL: case FormulaType::Cell:
mbSpecialTokens = true; mbSpecialTokens = true;
break; break;
case FORMULATYPE_ARRAY: case FormulaType::Array:
break; break;
case FORMULATYPE_SHAREDFORMULA: case FormulaType::SharedFormula:
mbRelativeAsOffset = true; mbRelativeAsOffset = true;
break; break;
case FORMULATYPE_CONDFORMAT: case FormulaType::CondFormat:
mbRelativeAsOffset = true; mbRelativeAsOffset = true;
break; break;
case FORMULATYPE_VALIDATION: case FormulaType::Validation:
mbRelativeAsOffset = true; mbRelativeAsOffset = true;
break; break;
case FORMULATYPE_DEFINEDNAME:
mbRelativeAsOffset = true;
// BIFF2-BIFF4: convert 2D references to absolute 3D references
mb2dRefsAs3dRefs = false;
break;
} }
maTokenStorage.clear(); maTokenStorage.clear();
......
...@@ -425,7 +425,7 @@ bool SheetDataContext::readCellHeader( SequenceInputStream& rStrm, CellType eCel ...@@ -425,7 +425,7 @@ bool SheetDataContext::readCellHeader( SequenceInputStream& rStrm, CellType eCel
ApiTokenSequence SheetDataContext::readCellFormula( SequenceInputStream& rStrm ) ApiTokenSequence SheetDataContext::readCellFormula( SequenceInputStream& rStrm )
{ {
rStrm.skip( 2 ); rStrm.skip( 2 );
return mxFormulaParser->importFormula( maCellData.maCellAddr, FORMULATYPE_CELL, rStrm ); return mxFormulaParser->importFormula( maCellData.maCellAddr, FormulaType::Cell, rStrm );
} }
bool SheetDataContext::readFormulaRef( SequenceInputStream& rStrm ) bool SheetDataContext::readFormulaRef( SequenceInputStream& rStrm )
...@@ -535,7 +535,7 @@ void SheetDataContext::importArray( SequenceInputStream& rStrm ) ...@@ -535,7 +535,7 @@ void SheetDataContext::importArray( SequenceInputStream& rStrm )
if( readFormulaRef( rStrm ) && maFmlaData.isValidArrayRef( maCellData.maCellAddr ) ) if( readFormulaRef( rStrm ) && maFmlaData.isValidArrayRef( maCellData.maCellAddr ) )
{ {
rStrm.skip( 1 ); rStrm.skip( 1 );
ApiTokenSequence aTokens = mxFormulaParser->importFormula( maCellData.maCellAddr, FORMULATYPE_ARRAY, rStrm ); ApiTokenSequence aTokens = mxFormulaParser->importFormula( maCellData.maCellAddr, FormulaType::Array, rStrm );
mrSheetData.createArrayFormula( maFmlaData.maFormulaRef, aTokens ); mrSheetData.createArrayFormula( maFmlaData.maFormulaRef, aTokens );
} }
} }
...@@ -562,7 +562,7 @@ void SheetDataContext::importSharedFmla( SequenceInputStream& rStrm ) ...@@ -562,7 +562,7 @@ void SheetDataContext::importSharedFmla( SequenceInputStream& rStrm )
{ {
if( readFormulaRef( rStrm ) && maFmlaData.isValidSharedRef( maCellData.maCellAddr ) ) if( readFormulaRef( rStrm ) && maFmlaData.isValidSharedRef( maCellData.maCellAddr ) )
{ {
ApiTokenSequence aTokens = mxFormulaParser->importFormula( maCellData.maCellAddr, FORMULATYPE_SHAREDFORMULA, rStrm ); ApiTokenSequence aTokens = mxFormulaParser->importFormula( maCellData.maCellAddr, FormulaType::SharedFormula, rStrm );
mrSheetData.createSharedFormula( maCellData.maCellAddr, aTokens ); mrSheetData.createSharedFormula( maCellData.maCellAddr, aTokens );
} }
} }
......
...@@ -138,8 +138,8 @@ void DataValidationsContextBase::importDataValidation( SequenceInputStream& rStr ...@@ -138,8 +138,8 @@ void DataValidationsContextBase::importDataValidation( SequenceInputStream& rStr
// condition formula(s) // condition formula(s)
FormulaParser& rParser = rTarget.getFormulaParser(); FormulaParser& rParser = rTarget.getFormulaParser();
ScAddress aBaseAddr = aModel.maRanges.GetTopLeftCorner(); ScAddress aBaseAddr = aModel.maRanges.GetTopLeftCorner();
aModel.maTokens1 = rParser.importFormula(aBaseAddr, FORMULATYPE_VALIDATION, rStrm); aModel.maTokens1 = rParser.importFormula(aBaseAddr, FormulaType::Validation, rStrm);
aModel.maTokens2 = rParser.importFormula(aBaseAddr, FORMULATYPE_VALIDATION, rStrm); aModel.maTokens2 = rParser.importFormula(aBaseAddr, FormulaType::Validation, rStrm);
// process string list of a list validation (convert to list of string tokens) // process string list of a list validation (convert to list of string tokens)
if ((aModel.mnType == XML_list) && getFlag(nFlags, BIFF_DATAVAL_STRINGLIST)) if ((aModel.mnType == XML_list) && getFlag(nFlags, BIFF_DATAVAL_STRINGLIST))
rParser.convertStringToStringList(aModel.maTokens1, ',', true); rParser.convertStringToStringList(aModel.maTokens1, ',', true);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment