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 02:30:31 +0200 |
commit | 318b6b8ea87cba41995436bbc44818a068b35b6d (patch) | |
tree | 6e3b4cb6f218f1719f32e8f3abab26dda81b2f65 /sc | |
parent | e5294137948cf31a972d1c29088b80f7730a8414 (diff) |
tdf#93171 Subtotal function with function indexes don't update
Calling InerpretTail during Hide rows by SfxHintId::ScDataChanged
broadcast
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>
(cherry picked from commit 970b431f1a7b6b96c4c9536657ce4fe9d8f5b585)
Backported.
Conflicts:
sc/inc/column.hxx
Change-Id: Ie78170bb6d49933a49d828a18637cb410796dc06
Reviewed-on: https://gerrit.libreoffice.org/37522
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'sc')
-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 cfce9d6a4e50..c261a26308c8 100644 --- a/sc/inc/column.hxx +++ b/sc/inc/column.hxx @@ -585,6 +585,7 @@ public: void Broadcast( SCROW nRow ); void BroadcastCells( const std::vector<SCROW>& rRows, sal_uInt32 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 73da282cc1f2..3d3aeba28af5 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -90,6 +90,16 @@ void ScColumn::BroadcastCells( const std::vector<SCROW>& rRows, sal_uInt32 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, SC_HINT_DATACHANGED); +} + + 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 3ac1d04d4fcb..ccbbeb22a167 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; |