diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-04-24 21:49:45 -0400 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-04-25 00:58:14 -0400 |
commit | 36e0d770928f71c932db5dea9f04645f65222ea6 (patch) | |
tree | 6b0b0afd4c69b56cef0f0e7c834575aa8eb8860c /sc/source/core/data/column4.cxx | |
parent | 485dddac7048aa9a877d205b25bf0c98c4887160 (diff) |
fdo#77728: Don't forget to start listening after the named range update.
Change-Id: I7a4160db0dd2b9ac2c98402bb6110c548e879b3d
Diffstat (limited to 'sc/source/core/data/column4.cxx')
-rw-r--r-- | sc/source/core/data/column4.cxx | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sc/source/core/data/column4.cxx b/sc/source/core/data/column4.cxx index cad94e524362..b9553448e669 100644 --- a/sc/source/core/data/column4.cxx +++ b/sc/source/core/data/column4.cxx @@ -645,11 +645,13 @@ public: class PostRangeNameUpdateHandler { ScDocument* mpDoc; + sc::StartListeningContext& mrStartListenCxt; sc::CompileFormulaContext& mrCompileFormulaCxt; public: - PostRangeNameUpdateHandler( ScDocument* pDoc, sc::CompileFormulaContext& rCompileCxt ) : + PostRangeNameUpdateHandler( ScDocument* pDoc, sc::StartListeningContext& rStartListenCxt, sc::CompileFormulaContext& rCompileCxt ) : mpDoc(pDoc), + mrStartListenCxt(rStartListenCxt), mrCompileFormulaCxt(rCompileCxt) {} void operator() ( sc::FormulaGroupEntry& rEntry ) @@ -677,6 +679,7 @@ public: { ScFormulaCell* p = *pp; p->SyncSharedCode(); + p->StartListeningTo(mrStartListenCxt); p->SetDirty(); } } @@ -697,6 +700,7 @@ public: aComp2.CompileTokenArray(); pCell->SetCode(pNewCode); + pCell->StartListeningTo(mrStartListenCxt); pCell->SetDirty(); } } @@ -715,12 +719,13 @@ void ScColumn::PreprocessRangeNameUpdate( std::for_each(aGroups.begin(), aGroups.end(), aFunc); } -void ScColumn::PostprocessRangeNameUpdate( sc::CompileFormulaContext& rCompileCxt ) +void ScColumn::PostprocessRangeNameUpdate( + sc::StartListeningContext& rStartListenCxt, sc::CompileFormulaContext& rCompileCxt ) { // Collect all formula groups. std::vector<sc::FormulaGroupEntry> aGroups = GetFormulaGroupEntries(); - PostRangeNameUpdateHandler aFunc(pDocument, rCompileCxt); + PostRangeNameUpdateHandler aFunc(pDocument, rStartListenCxt, rCompileCxt); std::for_each(aGroups.begin(), aGroups.end(), aFunc); } |