diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-07-28 21:34:40 -0400 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-07-28 22:08:22 -0400 |
commit | 300845922eec7a28bc1da337acd21f138685d759 (patch) | |
tree | 3a9c210ac2e4ec2b6d98da0ebbad645c25a5a363 /sc/inc | |
parent | a0b9200eed928ac81d798bd59aed69ed6d470bac (diff) |
fdo#79578: Properly update formulas upon change in db collection.
Update it to handle formula groups correctly.
Change-Id: I009a7fcf3d3fb17ef6951c50534ca6bc1fffc259
Diffstat (limited to 'sc/inc')
-rw-r--r-- | sc/inc/column.hxx | 6 | ||||
-rw-r--r-- | sc/inc/document.hxx | 8 | ||||
-rw-r--r-- | sc/inc/formulacell.hxx | 1 | ||||
-rw-r--r-- | sc/inc/table.hxx | 6 |
4 files changed, 10 insertions, 11 deletions
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx index 61915770934b..1a08163ca086 100644 --- a/sc/inc/column.hxx +++ b/sc/inc/column.hxx @@ -381,9 +381,12 @@ public: void PreprocessRangeNameUpdate( sc::EndListeningContext& rEndListenCxt, sc::CompileFormulaContext& rCompileCxt ); - void PostprocessRangeNameUpdate( + void CompileHybridFormula( sc::StartListeningContext& rStartListenCxt, sc::CompileFormulaContext& rCompileCxt ); + void PreprocessDBDataUpdate( + sc::EndListeningContext& rEndListenCxt, sc::CompileFormulaContext& rCompileCxt ); + const SfxPoolItem* GetAttr( SCROW nRow, sal_uInt16 nWhich ) const; const ScPatternAttr* GetPattern( SCROW nRow ) const; const ScPatternAttr* GetMostUsedPattern( SCROW nStartRow, SCROW nEndRow ) const; @@ -486,7 +489,6 @@ public: void CollectListeners( std::vector<SvtListener*>& rListeners, SCROW nRow1, SCROW nRow2 ); void CompileDBFormula( sc::CompileFormulaContext& rCxt ); - void CompileDBFormula( sc::CompileFormulaContext& rCxt, bool bCreateFormulaString ); void CompileColRowNameFormula( sc::CompileFormulaContext& rCxt ); sal_Int32 GetMaxStringLen( SCROW nRowStart, SCROW nRowEnd, rtl_TextEncoding eCharSet ) const; diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index 44e88c073a33..c7b797b16c5f 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -519,11 +519,8 @@ public: * Call this immediately before updating all named ranges. */ SC_DLLPUBLIC void PreprocessRangeNameUpdate(); - - /** - * Call this immediately after all named ranges have been updated. - */ - SC_DLLPUBLIC void PostprocessRangeNameUpdate(); + SC_DLLPUBLIC void PreprocessDBDataUpdate(); + SC_DLLPUBLIC void CompileHybridFormula(); /** * Insert a new named expression to the global scope. @@ -1978,7 +1975,6 @@ public: void StartTrackTimer(); void CompileDBFormula(); - void CompileDBFormula( bool bCreateFormulaString ); void CompileColRowNameFormula(); /** Maximum string length of a column, e.g. for dBase export. diff --git a/sc/inc/formulacell.hxx b/sc/inc/formulacell.hxx index cc234c9ce0e9..b765ff07b63f 100644 --- a/sc/inc/formulacell.hxx +++ b/sc/inc/formulacell.hxx @@ -309,7 +309,6 @@ public: bool IsRunning() const { return bRunning;} void SetRunning( bool bVal ); void CompileDBFormula( sc::CompileFormulaContext& rCxt ); - void CompileDBFormula( sc::CompileFormulaContext& rCxt, bool bCreateFormulaString ); void CompileColRowNameFormula( sc::CompileFormulaContext& rCxt ); ScFormulaCell* GetPrevious() const { return pPrevious; } ScFormulaCell* GetNext() const { return pNext; } diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx index 9701463d52fe..4486d42d2fb9 100644 --- a/sc/inc/table.hxx +++ b/sc/inc/table.hxx @@ -860,9 +860,12 @@ public: void PreprocessRangeNameUpdate( sc::EndListeningContext& rEndListenCxt, sc::CompileFormulaContext& rCompileCxt ); - void PostprocessRangeNameUpdate( + void CompileHybridFormula( sc::StartListeningContext& rStartListenCxt, sc::CompileFormulaContext& rCompileCxt ); + void PreprocessDBDataUpdate( + sc::EndListeningContext& rEndListenCxt, sc::CompileFormulaContext& rCompileCxt ); + ScConditionalFormatList* GetCondFormList(); const ScConditionalFormatList* GetCondFormList() const; void SetCondFormList( ScConditionalFormatList* pList ); @@ -1045,7 +1048,6 @@ private: bool GetNextMarkedCell( SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark ) const; bool TestTabRefAbs(SCTAB nTable) const; void CompileDBFormula( sc::CompileFormulaContext& rCxt ); - void CompileDBFormula( sc::CompileFormulaContext& rCxt, bool bCreateFormulaString ); void CompileColRowNameFormula( sc::CompileFormulaContext& rCxt ); void StartListening( const ScAddress& rAddress, SvtListener* pListener ); |