diff options
author | Arul Michael <arul71.m@gmail.com> | 2017-05-11 17:52:40 +0530 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2017-05-12 01:01:03 +0200 |
commit | 970b431f1a7b6b96c4c9536657ce4fe9d8f5b585 (patch) | |
tree | abf2bdc88d34679272e8ad8dd5130a16e04c8d4f | |
parent | 9e92527f500a20de838a93201718a761278d8f8d (diff) |
tdf#93171 Subtotal function with function indexes don't update
Calling InerpretTail during Hide rows by SfxHintId::ScDataChanged
broadcast
Change-Id: Ie78170bb6d49933a49d828a18637cb410796dc06
Reviewed-on: https://gerrit.libreoffice.org/37509
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
-rw-r--r-- | sc/inc/column.hxx | 1 | ||||
-rw-r--r-- | sc/source/core/data/column3.cxx | 10 | ||||
-rw-r--r-- | sc/source/core/data/table5.cxx | 4 |
3 files changed, 15 insertions, 0 deletions
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx index 564b6ff8114a..e163a1e295a1 100644 --- a/sc/inc/column.hxx +++ b/sc/inc/column.hxx @@ -588,6 +588,7 @@ public: void Broadcast( SCROW nRow ); void BroadcastCells( const std::vector<SCROW>& rRows, SfxHintId nHint ); + void BroadcastRows( SCROW nStartRow, SCROW nEndRow ); // cell notes ScPostIt* GetCellNote( SCROW nRow ); diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx index c0a6e2923d38..97759267945d 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -88,6 +88,16 @@ void ScColumn::BroadcastCells( const std::vector<SCROW>& rRows, SfxHintId nHint } } +void ScColumn::BroadcastRows( SCROW nStartRow, SCROW nEndRow ) +{ + sc::SingleColumnSpanSet aSpanSet; + aSpanSet.scan(*this, nStartRow, nEndRow); + std::vector<SCROW> aRows; + aSpanSet.getRows(aRows); + BroadcastCells(aRows, SfxHintId::ScDataChanged); +} + + struct DirtyCellInterpreter { void operator() (size_t, ScFormulaCell* p) diff --git a/sc/source/core/data/table5.cxx b/sc/source/core/data/table5.cxx index d0d26d2855d9..9342a7401a06 100644 --- a/sc/source/core/data/table5.cxx +++ b/sc/source/core/data/table5.cxx @@ -593,6 +593,10 @@ bool ScTable::SetRowHidden(SCROW nStartRow, SCROW nEndRow, bool bHidden) { if (IsStreamValid()) SetStreamValid(false); + for (SCCOL i = 0; i < aCol.size(); i++) + { + aCol[i].BroadcastRows(nStartRow, nEndRow); + } } return bChanged; |