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
// Formula type ===============================================================
/** Enumerates all possible types of a formula. */
enum FormulaType
enum class FormulaType
{
FORMULATYPE_CELL, /// Simple cell formula, or reference to a shared formula name.
FORMULATYPE_ARRAY, /// Array (matrix) formula.
FORMULATYPE_SHAREDFORMULA, /// Shared formula definition.
FORMULATYPE_CONDFORMAT, /// Condition of a conditional format rule.
FORMULATYPE_VALIDATION, /// Condition of a data validation.
FORMULATYPE_DEFINEDNAME /// Definition of a defined name.
Cell, /// Simple cell formula, or reference to a shared formula name.
Array, /// Array (matrix) formula.
SharedFormula, /// Shared formula definition.
CondFormat, /// Condition of a conditional format rule.
Validation /// Condition of a data validation.
};
// Reference helpers ==========================================================
......
......@@ -501,7 +501,7 @@ void CondFormatRule::importCfRule( SequenceInputStream& rStrm )
if( rStrm.getRemaining() >= 8 )
{
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 );
// second formula
......@@ -509,14 +509,14 @@ void CondFormatRule::importCfRule( SequenceInputStream& rStrm )
OSL_ENSURE( (nFmla2Size > 0) == (rStrm.getRemaining() >= 8), "CondFormatRule::importCfRule - formula size mismatch" );
if( rStrm.getRemaining() >= 8 )
{
aTokens = getFormulaParser().importFormula( aBaseAddr, FORMULATYPE_CONDFORMAT, rStrm );
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 )
{
aTokens = getFormulaParser().importFormula( aBaseAddr, FORMULATYPE_CONDFORMAT, rStrm );
aTokens = getFormulaParser().importFormula( aBaseAddr, FormulaType::CondFormat, rStrm );
maModel.maFormulas.push_back( aTokens );
}
}
......
......@@ -594,25 +594,20 @@ void FormulaParserImpl::initializeImport( const ScAddress& rBaseAddr, FormulaTyp
mbRelativeAsOffset = mb2dRefsAs3dRefs = mbSpecialTokens = false;
switch( eType )
{
case FORMULATYPE_CELL:
case FormulaType::Cell:
mbSpecialTokens = true;
break;
case FORMULATYPE_ARRAY:
case FormulaType::Array:
break;
case FORMULATYPE_SHAREDFORMULA:
case FormulaType::SharedFormula:
mbRelativeAsOffset = true;
break;
case FORMULATYPE_CONDFORMAT:
case FormulaType::CondFormat:
mbRelativeAsOffset = true;
break;
case FORMULATYPE_VALIDATION:
case FormulaType::Validation:
mbRelativeAsOffset = true;
break;
case FORMULATYPE_DEFINEDNAME:
mbRelativeAsOffset = true;
// BIFF2-BIFF4: convert 2D references to absolute 3D references
mb2dRefsAs3dRefs = false;
break;
}
maTokenStorage.clear();
......
......@@ -425,7 +425,7 @@ bool SheetDataContext::readCellHeader( SequenceInputStream& rStrm, CellType eCel
ApiTokenSequence SheetDataContext::readCellFormula( SequenceInputStream& rStrm )
{
rStrm.skip( 2 );
return mxFormulaParser->importFormula( maCellData.maCellAddr, FORMULATYPE_CELL, rStrm );
return mxFormulaParser->importFormula( maCellData.maCellAddr, FormulaType::Cell, rStrm );
}
bool SheetDataContext::readFormulaRef( SequenceInputStream& rStrm )
......@@ -535,7 +535,7 @@ void SheetDataContext::importArray( SequenceInputStream& rStrm )
if( readFormulaRef( rStrm ) && maFmlaData.isValidArrayRef( maCellData.maCellAddr ) )
{
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 );
}
}
......@@ -562,7 +562,7 @@ void SheetDataContext::importSharedFmla( SequenceInputStream& rStrm )
{
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 );
}
}
......
......@@ -138,8 +138,8 @@ void DataValidationsContextBase::importDataValidation( SequenceInputStream& rStr
// condition formula(s)
FormulaParser& rParser = rTarget.getFormulaParser();
ScAddress aBaseAddr = aModel.maRanges.GetTopLeftCorner();
aModel.maTokens1 = rParser.importFormula(aBaseAddr, FORMULATYPE_VALIDATION, rStrm);
aModel.maTokens2 = rParser.importFormula(aBaseAddr, FORMULATYPE_VALIDATION, rStrm);
aModel.maTokens1 = 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)
if ((aModel.mnType == XML_list) && getFlag(nFlags, BIFF_DATAVAL_STRINGLIST))
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