sc/inc/column.hxx | 10 ++++---- sc/inc/formulacell.hxx | 6 ++-- sc/inc/rangenam.hxx | 15 +++++++----- sc/inc/table.hxx | 10 ++++---- sc/inc/tokenstringcontext.hxx | 2 - sc/source/core/data/column.cxx | 36 ++++++++++++++++------------- sc/source/core/data/column2.cxx | 24 +++++++++++++------ sc/source/core/data/documen2.cxx | 4 ++- sc/source/core/data/documen4.cxx | 10 ++++---- sc/source/core/data/document.cxx | 14 +++++++---- sc/source/core/data/formulacell.cxx | 14 +++++------ sc/source/core/data/table2.cxx | 15 ++++++------ sc/source/core/data/table4.cxx | 10 ++++---- sc/source/core/tool/rangenam.cxx | 11 ++++---- sc/source/core/tool/tokenstringcontext.cxx | 4 +-- 15 files changed, 108 insertions(+), 77 deletions(-)
New commits: commit 01a55d560509d9fb8027a330040510e767f895a2 Author: Kohei Yoshida <[email protected]> Date: Tue Feb 4 15:36:35 2014 -0500 Cover all the other "compile all formula cells" methods. Change-Id: I434aeb97a32d4b70846c7b3a7c701f90f43bad8a diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx index 3c8a641..ee73c3f 100644 --- a/sc/inc/column.hxx +++ b/sc/inc/column.hxx @@ -336,10 +336,10 @@ public: void SetTableOpDirty( const ScRange& ); void CalcAll(); void CalcAfterLoad( sc::CompileFormulaContext& rCxt ); - void CompileAll(); - void CompileXML( ScProgress& rProgress ); + void CompileAll( sc::CompileFormulaContext& rCxt ); + void CompileXML( sc::CompileFormulaContext& rCxt, ScProgress& rProgress ); - bool CompileErrorCells(sal_uInt16 nErrCode); + bool CompileErrorCells( sc::CompileFormulaContext& rCxt, sal_uInt16 nErrCode ); void ResetChanged( SCROW nStartRow, SCROW nEndRow ); @@ -462,10 +462,10 @@ public: void SetDirtyIfPostponed(); void BroadcastRecalcOnRefMove(); - void CompileDBFormula(); + void CompileDBFormula( sc::CompileFormulaContext& rCxt ); void CompileDBFormula( sc::CompileFormulaContext& rCxt, bool bCreateFormulaString ); void CompileNameFormula( sc::CompileFormulaContext& rCxt, bool bCreateFormulaString ); - void CompileColRowNameFormula(); + void CompileColRowNameFormula( sc::CompileFormulaContext& rCxt ); sal_Int32 GetMaxStringLen( SCROW nRowStart, SCROW nRowEnd, rtl_TextEncoding eCharSet ) const; sal_Int32 GetMaxNumberStringLen( sal_uInt16& nPrecision, diff --git a/sc/inc/formulacell.hxx b/sc/inc/formulacell.hxx index bd4f128..e901c6e 100644 --- a/sc/inc/formulacell.hxx +++ b/sc/inc/formulacell.hxx @@ -229,7 +229,7 @@ public: void CompileTokenArray( bool bNoListening = false ); void CompileTokenArray( sc::CompileFormulaContext& rCxt, bool bNoListening = false ); - void CompileXML( ScProgress& rProgress ); // compile temporary string tokens + void CompileXML( sc::CompileFormulaContext& rCxt, ScProgress& rProgress ); // compile temporary string tokens void CalcAfterLoad( sc::CompileFormulaContext& rCxt ); bool MarkUsedExternalReferences(); void Interpret(); @@ -292,10 +292,10 @@ public: bool IsRunning() const; void SetRunning( bool bVal ); - void CompileDBFormula(); + void CompileDBFormula( sc::CompileFormulaContext& rCxt ); void CompileDBFormula( sc::CompileFormulaContext& rCxt, bool bCreateFormulaString ); void CompileNameFormula( sc::CompileFormulaContext& rCxt, bool bCreateFormulaString ); - void CompileColRowNameFormula(); + void CompileColRowNameFormula( sc::CompileFormulaContext& rCxt ); ScFormulaCell* GetPrevious() const; ScFormulaCell* GetNext() const; void SetPrevious( ScFormulaCell* pF ); diff --git a/sc/inc/rangenam.hxx b/sc/inc/rangenam.hxx index 6113709..5d4aebe 100644 --- a/sc/inc/rangenam.hxx +++ b/sc/inc/rangenam.hxx @@ -35,10 +35,13 @@ class ScDocument; class ScTokenArray; namespace sc { - struct RefUpdateContext; - struct RefUpdateInsertTabContext; - struct RefUpdateDeleteTabContext; - struct RefUpdateMoveTabContext; + +struct RefUpdateContext; +struct RefUpdateInsertTabContext; +struct RefUpdateDeleteTabContext; +struct RefUpdateMoveTabContext; +class CompileFormulaContext; + } typedef sal_uInt16 RangeType; @@ -151,7 +154,7 @@ public: SCROW GetMaxRow() const; SCCOL GetMaxCol() const; - void CompileUnresolvedXML(); + void CompileUnresolvedXML( sc::CompileFormulaContext& rCxt ); #if DEBUG_FORMULA_COMPILER void Dump() const; @@ -201,7 +204,7 @@ public: /** Compile those names that couldn't be resolved during loading and inserting because they may have referred a name that was inserted later. */ - void CompileUnresolvedXML(); + void CompileUnresolvedXML( sc::CompileFormulaContext& rCxt ); SC_DLLPUBLIC const_iterator begin() const; SC_DLLPUBLIC const_iterator end() const; diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx index 330ca2c..522fde8 100644 --- a/sc/inc/table.hxx +++ b/sc/inc/table.hxx @@ -521,10 +521,10 @@ public: void SetTableOpDirty( const ScRange& ); void CalcAll(); void CalcAfterLoad( sc::CompileFormulaContext& rCxt ); - void CompileAll(); - void CompileXML( ScProgress& rProgress ); + void CompileAll( sc::CompileFormulaContext& rCxt ); + void CompileXML( sc::CompileFormulaContext& rCxt, ScProgress& rProgress ); - bool CompileErrorCells(sal_uInt16 nErrCode); + bool CompileErrorCells( sc::CompileFormulaContext& rCxt, sal_uInt16 nErrCode ); void UpdateReference( sc::RefUpdateContext& rCxt, ScDocument* pUndoDoc = NULL, @@ -1012,10 +1012,10 @@ private: const ScMarkData& rMark) const; bool GetNextMarkedCell( SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark ) const; bool TestTabRefAbs(SCTAB nTable) const; - void CompileDBFormula(); + void CompileDBFormula( sc::CompileFormulaContext& rCxt ); void CompileDBFormula( sc::CompileFormulaContext& rCxt, bool bCreateFormulaString ); void CompileNameFormula( sc::CompileFormulaContext& rCxt, bool bCreateFormulaString ); - void CompileColRowNameFormula(); + void CompileColRowNameFormula( sc::CompileFormulaContext& rCxt ); void RebuildFormulaGroups(); void StartListening( const ScAddress& rAddress, SvtListener* pListener ); diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx index ba0e72d..e358588 100644 --- a/sc/source/core/data/column.cxx +++ b/sc/source/core/data/column.cxx @@ -2836,24 +2836,30 @@ struct CalcAllHandler } }; -struct CompileAllHandler +class CompileAllHandler { + sc::CompileFormulaContext& mrCxt; +public: + CompileAllHandler( sc::CompileFormulaContext& rCxt ) : mrCxt(rCxt) {} + void operator() (size_t /*nRow*/, ScFormulaCell* pCell) { // for unconditional compilation // bCompile=true and pCode->nError=0 pCell->GetCode()->SetCodeError(0); pCell->SetCompile(true); - pCell->CompileTokenArray(); + pCell->CompileTokenArray(mrCxt); } }; class CompileXMLHandler { + sc::CompileFormulaContext& mrCxt; ScProgress& mrProgress; const ScColumn& mrCol; public: - CompileXMLHandler(ScProgress& rProgress, const ScColumn& rCol) : + CompileXMLHandler( sc::CompileFormulaContext& rCxt, ScProgress& rProgress, const ScColumn& rCol) : + mrCxt(rCxt), mrProgress(rProgress), mrCol(rCol) {} @@ -2865,23 +2871,24 @@ public: else pCell->SetDirtyVar(); - pCell->CompileXML(mrProgress); + pCell->CompileXML(mrCxt, mrProgress); } }; class CompileErrorCellsHandler { + sc::CompileFormulaContext& mrCxt; ScColumn& mrColumn; sc::CellStoreType::iterator miPos; sal_uInt16 mnErrCode; FormulaGrammar::Grammar meGram; bool mbCompiled; public: - CompileErrorCellsHandler(ScColumn& rColumn, sal_uInt16 nErrCode, FormulaGrammar::Grammar eGram) : + CompileErrorCellsHandler( sc::CompileFormulaContext& rCxt, ScColumn& rColumn, sal_uInt16 nErrCode ) : + mrCxt(rCxt), mrColumn(rColumn), miPos(mrColumn.GetCellStore().begin()), mnErrCode(nErrCode), - meGram(eGram), mbCompiled(false) { } @@ -2901,9 +2908,8 @@ public: miPos = aPos.first; sc::SharedFormulaUtil::unshareFormulaCell(aPos, *pCell); pCell->GetCode()->SetCodeError(0); - OUStringBuffer aBuf; - pCell->GetFormula(aBuf, meGram); - pCell->Compile(aBuf.makeStringAndClear(), false, meGram); + OUString aFormula = pCell->GetFormula(mrCxt); + pCell->Compile(mrCxt, aFormula, false); mrColumn.JoinNewFormulaCell(aPos, *pCell); mbCompiled = true; @@ -3169,22 +3175,22 @@ void ScColumn::CalcAll() sc::ProcessFormula(maCells, aFunc); } -void ScColumn::CompileAll() +void ScColumn::CompileAll( sc::CompileFormulaContext& rCxt ) { - CompileAllHandler aFunc; + CompileAllHandler aFunc(rCxt); sc::ProcessFormula(maCells, aFunc); } -void ScColumn::CompileXML( ScProgress& rProgress ) +void ScColumn::CompileXML( sc::CompileFormulaContext& rCxt, ScProgress& rProgress ) { - CompileXMLHandler aFunc(rProgress, *this); + CompileXMLHandler aFunc(rCxt, rProgress, *this); sc::ProcessFormula(maCells, aFunc); RegroupFormulaCells(); } -bool ScColumn::CompileErrorCells(sal_uInt16 nErrCode) +bool ScColumn::CompileErrorCells( sc::CompileFormulaContext& rCxt, sal_uInt16 nErrCode ) { - CompileErrorCellsHandler aHdl(*this, nErrCode, pDocument->GetGrammar()); + CompileErrorCellsHandler aHdl(rCxt, *this, nErrCode); sc::ProcessFormula(maCells, aHdl); return aHdl.isCompiled(); } diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx index 2d69ae4..5a1e19d 100644 --- a/sc/source/core/data/column2.cxx +++ b/sc/source/core/data/column2.cxx @@ -3194,11 +3194,17 @@ void ScColumn::EndListening( sc::EndListeningContext& rCxt, SCROW nRow, SvtListe namespace { -struct CompileDBFormulaHandler +class CompileDBFormulaHandler { + sc::CompileFormulaContext& mrCxt; + +public: + CompileDBFormulaHandler( sc::CompileFormulaContext& rCxt ) : + mrCxt(rCxt) {} + void operator() (size_t, ScFormulaCell* p) { - p->CompileDBFormula(); + p->CompileDBFormula(mrCxt); } }; @@ -3234,17 +3240,21 @@ public: struct CompileColRowNameFormulaHandler { + sc::CompileFormulaContext& mrCxt; +public: + CompileColRowNameFormulaHandler( sc::CompileFormulaContext& rCxt ) : mrCxt(rCxt) {} + void operator() (size_t, ScFormulaCell* p) { - p->CompileColRowNameFormula(); + p->CompileColRowNameFormula(mrCxt); } }; } -void ScColumn::CompileDBFormula() +void ScColumn::CompileDBFormula( sc::CompileFormulaContext& rCxt ) { - CompileDBFormulaHandler aFunc; + CompileDBFormulaHandler aFunc(rCxt); sc::ProcessFormula(maCells, aFunc); RegroupFormulaCells(); } @@ -3262,9 +3272,9 @@ void ScColumn::CompileNameFormula( sc::CompileFormulaContext& rCxt, bool bCreate sc::ProcessFormula(maCells, aFunc); } -void ScColumn::CompileColRowNameFormula() +void ScColumn::CompileColRowNameFormula( sc::CompileFormulaContext& rCxt ) { - CompileColRowNameFormulaHandler aFunc; + CompileColRowNameFormulaHandler aFunc(rCxt); sc::ProcessFormula(maCells, aFunc); RegroupFormulaCells(); } diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx index 45ea69b..e1f6ab5 100644 --- a/sc/source/core/data/documen2.cxx +++ b/sc/source/core/data/documen2.cxx @@ -96,6 +96,7 @@ #include "scopetools.hxx" #include "formulagroup.hxx" #include "documentlinkmgr.hxx" +#include <tokenstringcontext.hxx> using namespace com::sun::star; @@ -1002,7 +1003,8 @@ sal_uLong ScDocument::TransferTab( ScDocument* pSrcDoc, SCTAB nSrcPos, // Readjust self-contained absolute references to this sheet maTabs[nDestPos]->TestTabRefAbs(nSrcPos); - maTabs[nDestPos]->CompileAll(); + sc::CompileFormulaContext aFormulaCxt(this); + maTabs[nDestPos]->CompileAll(aFormulaCxt); } SetNoListening( false ); diff --git a/sc/source/core/data/documen4.cxx b/sc/source/core/data/documen4.cxx index 67327f9..1087b3f 100644 --- a/sc/source/core/data/documen4.cxx +++ b/sc/source/core/data/documen4.cxx @@ -539,11 +539,12 @@ bool ScDocument::ReplaceStyle(const SvxSearchItem& rSearchItem, void ScDocument::CompileDBFormula() { + sc::CompileFormulaContext aCxt(this); TableContainer::iterator it = maTabs.begin(); for (;it != maTabs.end(); ++it) { if (*it) - (*it)->CompileDBFormula(); + (*it)->CompileDBFormula(aCxt); } } @@ -571,11 +572,12 @@ void ScDocument::CompileNameFormula( bool bCreateFormulaString ) void ScDocument::CompileColRowNameFormula() { + sc::CompileFormulaContext aCxt(this); TableContainer::iterator it = maTabs.begin(); for (;it != maTabs.end(); ++it) { if (*it) - (*it)->CompileColRowNameFormula(); + (*it)->CompileColRowNameFormula(aCxt); } } diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 4b8f9d3..1fb89cc 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -3698,10 +3698,11 @@ void ScDocument::CalcAll() void ScDocument::CompileAll() { + sc::CompileFormulaContext aCxt(this); TableContainer::iterator it = maTabs.begin(); for (; it != maTabs.end(); ++it) if (*it) - (*it)->CompileAll(); + (*it)->CompileAll(aCxt); SetDirty(); } @@ -3713,17 +3714,19 @@ void ScDocument::CompileXML() ScProgress aProgress( GetDocumentShell(), ScGlobal::GetRscString( STR_PROGRESS_CALCULATING ), GetXMLImportedFormulaCount() ); + sc::CompileFormulaContext aCxt(this); + // set AutoNameCache to speed up automatic name lookup OSL_ENSURE( !pAutoNameCache, "AutoNameCache already set" ); pAutoNameCache = new ScAutoNameCache( this ); if (pRangeName) - pRangeName->CompileUnresolvedXML(); + pRangeName->CompileUnresolvedXML(aCxt); TableContainer::iterator it = maTabs.begin(); for (; it != maTabs.end(); ++it) if (*it) - (*it)->CompileXML( aProgress ); + (*it)->CompileXML(aCxt, aProgress); DELETEZ( pAutoNameCache ); // valid only during CompileXML, where cell contents don't change @@ -3736,6 +3739,7 @@ void ScDocument::CompileXML() bool ScDocument::CompileErrorCells(sal_uInt16 nErrCode) { bool bCompiled = false; + sc::CompileFormulaContext aCxt(this); TableContainer::iterator it = maTabs.begin(), itEnd = maTabs.end(); for (; it != itEnd; ++it) { @@ -3743,7 +3747,7 @@ bool ScDocument::CompileErrorCells(sal_uInt16 nErrCode) if (!pTab) continue; - if (pTab->CompileErrorCells(nErrCode)) + if (pTab->CompileErrorCells(aCxt, nErrCode)) bCompiled = true; } diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx index 939b6f8..a1e9ec1 100644 --- a/sc/source/core/data/formulacell.cxx +++ b/sc/source/core/data/formulacell.cxx @@ -1111,7 +1111,7 @@ void ScFormulaCell::CompileTokenArray( sc::CompileFormulaContext& rCxt, bool bNo } } -void ScFormulaCell::CompileXML( ScProgress& rProgress ) +void ScFormulaCell::CompileXML( sc::CompileFormulaContext& rCxt, ScProgress& rProgress ) { if ( cMatrixFlag == MM_REFERENCE ) { // is already token code via ScDocFunc::EnterMatrix, ScDocument::InsertMatrixFormula @@ -1125,8 +1125,8 @@ void ScFormulaCell::CompileXML( ScProgress& rProgress ) bool bWasInFormulaTree = pDocument->IsInFormulaTree( this); if (bWasInFormulaTree) pDocument->RemoveFromFormulaTree( this); - ScCompiler aComp( pDocument, aPos, *pCode); - aComp.SetGrammar(eTempGrammar); + rCxt.setGrammar(eTempGrammar); + ScCompiler aComp(rCxt, aPos, *pCode); OUString aFormula, aFormulaNmsp; aComp.CreateStringFromXMLTokenArray( aFormula, aFormulaNmsp ); pDocument->DecXMLImportedFormulaCount( aFormula.getLength() ); @@ -3342,7 +3342,7 @@ void ScFormulaCell::SetRunning( bool bVal ) bRunning = bVal; } -void ScFormulaCell::CompileDBFormula() +void ScFormulaCell::CompileDBFormula( sc::CompileFormulaContext& rCxt ) { for( FormulaToken* p = pCode->First(); p; p = pCode->Next() ) { @@ -3350,7 +3350,7 @@ void ScFormulaCell::CompileDBFormula() || (p->GetOpCode() == ocName && p->GetIndex() >= SC_START_INDEX_DB_COLL) ) { bCompile = true; - CompileTokenArray(); + CompileTokenArray(rCxt); SetDirty(); break; } @@ -3455,7 +3455,7 @@ void ScFormulaCell::CompileNameFormula( sc::CompileFormulaContext& rCxt, bool bC } } -void ScFormulaCell::CompileColRowNameFormula() +void ScFormulaCell::CompileColRowNameFormula( sc::CompileFormulaContext& rCxt ) { pCode->Reset(); for ( FormulaToken* p = pCode->First(); p; p = pCode->Next() ) @@ -3463,7 +3463,7 @@ void ScFormulaCell::CompileColRowNameFormula() if ( p->GetOpCode() == ocColRowName ) { bCompile = true; - CompileTokenArray(); + CompileTokenArray(rCxt); SetDirty(); break; } diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx index eb11a5d..d566e91 100644 --- a/sc/source/core/data/table2.cxx +++ b/sc/source/core/data/table2.cxx @@ -1731,35 +1731,36 @@ void ScTable::CalcAll() } -void ScTable::CompileAll() +void ScTable::CompileAll( sc::CompileFormulaContext& rCxt ) { - for (SCCOL i=0; i <= MAXCOL; i++) aCol[i].CompileAll(); + for (SCCOL i = 0; i <= MAXCOL; ++i) + aCol[i].CompileAll(rCxt); if(mpCondFormatList) mpCondFormatList->CompileAll(); } -void ScTable::CompileXML( ScProgress& rProgress ) +void ScTable::CompileXML( sc::CompileFormulaContext& rCxt, ScProgress& rProgress ) { if (mpRangeName) - mpRangeName->CompileUnresolvedXML(); + mpRangeName->CompileUnresolvedXML(rCxt); for (SCCOL i=0; i <= MAXCOL; i++) { - aCol[i].CompileXML( rProgress ); + aCol[i].CompileXML(rCxt, rProgress); } if(mpCondFormatList) mpCondFormatList->CompileXML(); } -bool ScTable::CompileErrorCells(sal_uInt16 nErrCode) +bool ScTable::CompileErrorCells( sc::CompileFormulaContext& rCxt, sal_uInt16 nErrCode ) { bool bCompiled = false; for (SCCOL i = 0; i <= MAXCOL; ++i) { - if (aCol[i].CompileErrorCells(nErrCode)) + if (aCol[i].CompileErrorCells(rCxt, nErrCode)) bCompiled = true; } diff --git a/sc/source/core/data/table4.cxx b/sc/source/core/data/table4.cxx index 610103e..d37620a 100644 --- a/sc/source/core/data/table4.cxx +++ b/sc/source/core/data/table4.cxx @@ -2176,9 +2176,10 @@ bool ScTable::TestTabRefAbs(SCTAB nTable) const return false; } -void ScTable::CompileDBFormula() +void ScTable::CompileDBFormula( sc::CompileFormulaContext& rCxt ) { - for (SCCOL i=0; i<=MAXCOL; i++) aCol[i].CompileDBFormula(); + for (SCCOL i = 0; i <= MAXCOL; ++i) + aCol[i].CompileDBFormula(rCxt); } void ScTable::CompileDBFormula( sc::CompileFormulaContext& rCxt, bool bCreateFormulaString ) @@ -2193,9 +2194,10 @@ void ScTable::CompileNameFormula( sc::CompileFormulaContext& rCxt, bool bCreateF aCol[i].CompileNameFormula(rCxt, bCreateFormulaString); } -void ScTable::CompileColRowNameFormula() +void ScTable::CompileColRowNameFormula( sc::CompileFormulaContext& rCxt ) { - for (SCCOL i=0; i<=MAXCOL; i++) aCol[i].CompileColRowNameFormula(); + for (SCCOL i = 0; i <= MAXCOL; ++i) + aCol[i].CompileColRowNameFormula(rCxt); } SCSIZE ScTable::GetPatternCount( SCCOL nCol ) const diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx index d5b576f..2c82e85 100644 --- a/sc/source/core/tool/rangenam.cxx +++ b/sc/source/core/tool/rangenam.cxx @@ -34,6 +34,7 @@ #include "refupdat.hxx" #include "document.hxx" #include "refupdatecontext.hxx" +#include <tokenstringcontext.hxx> #include "formula/errorcodes.hxx" @@ -181,14 +182,14 @@ void ScRangeData::CompileRangeData( const OUString& rSymbol, bool bSetError ) } } -void ScRangeData::CompileUnresolvedXML() +void ScRangeData::CompileUnresolvedXML( sc::CompileFormulaContext& rCxt ) { if (pCode->GetCodeError() == errNoName) { // Reconstruct the symbol/formula and then recompile. OUString aSymbol; - ScCompiler aComp( pDoc, aPos, *pCode); - aComp.SetGrammar( eTempGrammar); + rCxt.setGrammar(eTempGrammar); + ScCompiler aComp(rCxt, aPos, *pCode); aComp.CreateStringFromTokenArray( aSymbol); // Don't let the compiler set an error for unknown names on final // compile, errors are handled by the interpreter thereafter. @@ -764,11 +765,11 @@ void ScRangeName::UpdateGrow(const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY) itr->second->UpdateGrow(rArea, nGrowX, nGrowY); } -void ScRangeName::CompileUnresolvedXML() +void ScRangeName::CompileUnresolvedXML( sc::CompileFormulaContext& rCxt ) { DataType::iterator itr = maData.begin(), itrEnd = maData.end(); for (; itr != itrEnd; ++itr) - itr->second->CompileUnresolvedXML(); + itr->second->CompileUnresolvedXML(rCxt); } ScRangeName::const_iterator ScRangeName::begin() const commit b2f55245376ef4da079d4d2336c1bef701894009 Author: Kohei Yoshida <[email protected]> Date: Tue Feb 4 14:27:51 2014 -0500 We can infer current grammar from the document. Change-Id: Ia44bc612e9128adfc9be0d44ea8368215de950ba diff --git a/sc/inc/tokenstringcontext.hxx b/sc/inc/tokenstringcontext.hxx index af97d99..3740f60 100644 --- a/sc/inc/tokenstringcontext.hxx +++ b/sc/inc/tokenstringcontext.hxx @@ -55,7 +55,7 @@ class CompileFormulaContext void updateTabNames(); public: - CompileFormulaContext( ScDocument* pDoc, formula::FormulaGrammar::Grammar eGram ); + CompileFormulaContext( ScDocument* pDoc ); formula::FormulaGrammar::Grammar getGrammar() const; void setGrammar( formula::FormulaGrammar::Grammar eGram ); diff --git a/sc/source/core/data/documen4.cxx b/sc/source/core/data/documen4.cxx index 64c8718..67327f9 100644 --- a/sc/source/core/data/documen4.cxx +++ b/sc/source/core/data/documen4.cxx @@ -549,7 +549,7 @@ void ScDocument::CompileDBFormula() void ScDocument::CompileDBFormula( bool bCreateFormulaString ) { - sc::CompileFormulaContext aCxt(this, eGrammar); + sc::CompileFormulaContext aCxt(this); TableContainer::iterator it = maTabs.begin(); for (;it != maTabs.end(); ++it) { @@ -560,7 +560,7 @@ void ScDocument::CompileDBFormula( bool bCreateFormulaString ) void ScDocument::CompileNameFormula( bool bCreateFormulaString ) { - sc::CompileFormulaContext aCxt(this, eGrammar); + sc::CompileFormulaContext aCxt(this); TableContainer::iterator it = maTabs.begin(); for (;it != maTabs.end(); ++it) { diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 1ad8620..4b8f9d3 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -3756,7 +3756,7 @@ void ScDocument::CalcAfterLoad() return; // dann wird erst beim Einfuegen in das richtige Doc berechnet bCalcingAfterLoad = true; - sc::CompileFormulaContext aCxt(this, eGrammar); + sc::CompileFormulaContext aCxt(this); { TableContainer::iterator it = maTabs.begin(); for (; it != maTabs.end(); ++it) diff --git a/sc/source/core/tool/tokenstringcontext.cxx b/sc/source/core/tool/tokenstringcontext.cxx index 96865fc..203d36a 100644 --- a/sc/source/core/tool/tokenstringcontext.cxx +++ b/sc/source/core/tool/tokenstringcontext.cxx @@ -105,8 +105,8 @@ TokenStringContext::TokenStringContext( const ScDocument* pDoc, formula::Formula } } -CompileFormulaContext::CompileFormulaContext( ScDocument* pDoc, formula::FormulaGrammar::Grammar eGram ) : - mpDoc(pDoc), meGram(eGram) +CompileFormulaContext::CompileFormulaContext( ScDocument* pDoc ) : + mpDoc(pDoc), meGram(pDoc->GetGrammar()) { if (!pDoc) return; _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
