summaryrefslogtreecommitdiffstats
path: root/sc/inc/columnspanset.hxx
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-05-03 00:50:46 -0400
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-05-03 00:55:41 -0400
commitaf7df25bcc8bc95462e2b3bf8c003d035111a479 (patch)
treebf7bdeba603cdaeec0e371081cfc6b10ceb2a8ee /sc/inc/columnspanset.hxx
parentSfxDocumentMetaData: suppress some spurious warnings (diff)
downloadcore-af7df25bcc8bc95462e2b3bf8c003d035111a479.tar.gz
core-af7df25bcc8bc95462e2b3bf8c003d035111a479.zip
fdo#78062: Broadcast only on non-empty cells within deleted range.
We don't want to broadcast over the whole selected range, which may be the whole sheet which is well over 1 billion cells ! Change-Id: I7c139ce5efe09312cf824e35f0efe551184032eb
Diffstat (limited to 'sc/inc/columnspanset.hxx')
-rw-r--r--sc/inc/columnspanset.hxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/sc/inc/columnspanset.hxx b/sc/inc/columnspanset.hxx
index ef32af7aea29..7c7fdf524010 100644
--- a/sc/inc/columnspanset.hxx
+++ b/sc/inc/columnspanset.hxx
@@ -47,8 +47,10 @@ struct SC_DLLPUBLIC ColRowSpan
*/
class ColumnSpanSet : boost::noncopyable
{
+public:
typedef mdds::flat_segment_tree<SCROW, bool> ColumnSpansType;
+private:
struct ColumnType
{
ColumnSpansType maSpans;
@@ -89,6 +91,12 @@ public:
void set(SCTAB nTab, SCCOL nCol, SCROW nRow1, SCROW nRow2, bool bVal);
void set(const ScRange& rRange, bool bVal);
+ /**
+ * Scan specified range in a specified sheet and mark all non-empty cells
+ * with specified boolean value.
+ */
+ void scan(const ScDocument& rDoc, SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bVal);
+
void executeAction(Action& ac) const;
void executeColumnAction(ScDocument& rDoc, ColumnAction& ac) const;
};