summaryrefslogtreecommitdiff
path: root/sc/inc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-07-28 21:34:40 -0400
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-07-28 22:08:22 -0400
commit300845922eec7a28bc1da337acd21f138685d759 (patch)
tree3a9c210ac2e4ec2b6d98da0ebbad645c25a5a363 /sc/inc
parenta0b9200eed928ac81d798bd59aed69ed6d470bac (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.hxx6
-rw-r--r--sc/inc/document.hxx8
-rw-r--r--sc/inc/formulacell.hxx1
-rw-r--r--sc/inc/table.hxx6
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 );