summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArul Michael <arul71.m@gmail.com>2017-05-11 17:52:40 +0530
committerEike Rathke <erack@redhat.com>2017-05-12 02:30:31 +0200
commit318b6b8ea87cba41995436bbc44818a068b35b6d (patch)
tree6e3b4cb6f218f1719f32e8f3abab26dda81b2f65
parente5294137948cf31a972d1c29088b80f7730a8414 (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>
-rw-r--r--sc/inc/column.hxx1
-rw-r--r--sc/source/core/data/column3.cxx10
-rw-r--r--sc/source/core/data/table5.cxx4
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;