diff options
author | Eike Rathke <erack@redhat.com> | 2016-08-23 00:28:33 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2016-08-23 00:30:47 +0200 |
commit | 31d39c24e1ff2d3602e0212eeeecd8de88da6d38 (patch) | |
tree | da7a5995b7c250abbc86f8b2d3d6a87a37c2f6ed /sc/inc | |
parent | d133075affa49f387e73acee24a608075829f3b4 (diff) |
Resolves: tdf#101137 handle empty elements in matrix concatenation
Change-Id: I2de90e1cdfc4f215f6d7c644e0ab74372a4c2639
Diffstat (limited to 'sc/inc')
-rw-r--r-- | sc/inc/scmatrix.hxx | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sc/inc/scmatrix.hxx b/sc/inc/scmatrix.hxx index a5c810fed308..62cddee992ab 100644 --- a/sc/inc/scmatrix.hxx +++ b/sc/inc/scmatrix.hxx @@ -127,6 +127,7 @@ public: typedef std::function<void(size_t, size_t, double)> DoubleOpFunction; typedef std::function<void(size_t, size_t, bool)> BoolOpFunction; typedef std::function<void(size_t, size_t, svl::SharedString)> StringOpFunction; + typedef std::function<void(size_t, size_t)> EmptyOpFunction; /** * When adding all numerical matrix elements for a scalar result such as @@ -407,7 +408,8 @@ public: virtual std::vector<ScMatrix::IterateResult> Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp) = 0; virtual void ExecuteOperation(const std::pair<size_t, size_t>& rStartPos, const std::pair<size_t, size_t>& rEndPos, - DoubleOpFunction aDoubleFunc, BoolOpFunction aBoolFunc, StringOpFunction aStringFunc) const = 0; + DoubleOpFunction aDoubleFunc, BoolOpFunction aBoolFunc, StringOpFunction aStringFunc, + EmptyOpFunction aEmptyFunc) const = 0; virtual void MatConcat(SCSIZE nMaxCol, SCSIZE nMaxRow, const ScMatrixRef& xMat1, const ScMatrixRef& xMat2, SvNumberFormatter& rFormatter, svl::SharedStringPool& rPool) = 0; @@ -620,7 +622,8 @@ public: virtual std::vector<ScMatrix::IterateResult> Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp) override; virtual void ExecuteOperation(const std::pair<size_t, size_t>& rStartPos, const std::pair<size_t, size_t>& rEndPos, - DoubleOpFunction aDoubleFunc, BoolOpFunction aBoolFunc, StringOpFunction aStringFunc) const override; + DoubleOpFunction aDoubleFunc, BoolOpFunction aBoolFunc, StringOpFunction aStringFunc, + EmptyOpFunction aEmptyFunc) const override; ScFullMatrix& operator+= ( const ScFullMatrix& r ); virtual void MatConcat(SCSIZE nMaxCol, SCSIZE nMaxRow, const ScMatrixRef& xMat1, const ScMatrixRef& xMat2, @@ -835,7 +838,8 @@ public: virtual std::vector<ScMatrix::IterateResult> Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp) override; virtual void ExecuteOperation(const std::pair<size_t, size_t>& rStartPos, const std::pair<size_t, size_t>& rEndPos, - DoubleOpFunction aDoubleFunc, BoolOpFunction aBoolFunc, StringOpFunction aStringFunc) const override; + DoubleOpFunction aDoubleFunc, BoolOpFunction aBoolFunc, StringOpFunction aStringFunc, + EmptyOpFunction aEmptyFunc) const override; ScVectorRefMatrix& operator+=(const ScVectorRefMatrix& r); |