diff options
author | Kohei Yoshida <kohei.yoshida@gmail.com> | 2013-06-18 19:18:17 -0400 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@gmail.com> | 2013-06-24 16:51:28 -0400 |
commit | cb4a47887df282196c9aa529269d5115306813c1 (patch) | |
tree | 4251446c49c3999fb1a546a3ea9b837462b82fd6 /sc | |
parent | 3b3b0c04385851f120dc26d26e40f0d1c6344274 (diff) |
Leave the RowInfo's for empty cells unfilled.
Else empty cell regions would get skipped and the non-empty cells
would get displayed at incorrect row positions.
Change-Id: Ica8d1c654458e0ea508e8f00846180d89bfe8804
Diffstat (limited to 'sc')
-rw-r--r-- | sc/Module_sc.mk | 2 | ||||
-rw-r--r-- | sc/inc/mtvcellfunc.hxx | 12 | ||||
-rw-r--r-- | sc/inc/mtvelements.hxx | 2 | ||||
-rw-r--r-- | sc/source/core/data/fillinfo.cxx | 8 |
4 files changed, 20 insertions, 4 deletions
diff --git a/sc/Module_sc.mk b/sc/Module_sc.mk index 0b3970f4991b..74888f0b54db 100644 --- a/sc/Module_sc.mk +++ b/sc/Module_sc.mk @@ -37,8 +37,6 @@ endif $(eval $(call gb_Module_add_check_targets,sc,\ CppunitTest_sc_ucalc \ - CppunitTest_sc_filters_test \ - CppunitTest_sc_rangelst_test \ )) $(eval $(call gb_Module_add_slowcheck_targets,sc, \ diff --git a/sc/inc/mtvcellfunc.hxx b/sc/inc/mtvcellfunc.hxx index 9ce3c12ea8cc..c54d02ebd339 100644 --- a/sc/inc/mtvcellfunc.hxx +++ b/sc/inc/mtvcellfunc.hxx @@ -112,6 +112,18 @@ ParseAllNonEmpty( itPos, rCells, nRow1, nRow2, rFunc, aElse); } +template<typename _FuncElem, typename _FuncElse> +typename CellStoreType::const_iterator +ParseAllNonEmpty( + const typename CellStoreType::const_iterator& itPos, const CellStoreType& rCells, + SCROW nRow1, SCROW nRow2, _FuncElem& rFuncElem, _FuncElse& rFuncElse) +{ + return ParseElements4<CellStoreType, + numeric_block, string_block, edittext_block, formula_block, + _FuncElem, _FuncElse>( + itPos, rCells, nRow1, nRow2, rFuncElem, rFuncElse); +} + template<typename _Func> typename CellStoreType::const_iterator ParseFormulaNumeric( diff --git a/sc/inc/mtvelements.hxx b/sc/inc/mtvelements.hxx index 0ebf8be9635f..2c589974e32d 100644 --- a/sc/inc/mtvelements.hxx +++ b/sc/inc/mtvelements.hxx @@ -15,7 +15,7 @@ #include "svl/broadcast.hxx" #include "editeng/editobj.hxx" -#define DEBUG_COLUMN_STORAGE 0 +#define DEBUG_COLUMN_STORAGE 1 #if DEBUG_COLUMN_STORAGE #ifdef NDEBUG diff --git a/sc/source/core/data/fillinfo.cxx b/sc/source/core/data/fillinfo.cxx index c64a54d94c9e..7f73391f4a53 100644 --- a/sc/source/core/data/fillinfo.cxx +++ b/sc/source/core/data/fillinfo.cxx @@ -189,6 +189,12 @@ public: if (!isHidden(nRow)) setInfo(ScRefCellValue(const_cast<ScFormulaCell*>(p))); } + + void operator() (mdds::mtv::element_t, size_t, size_t nDataSize) + { + // Skip all empty cells. + mrArrY += nDataSize; + } }; } @@ -430,7 +436,7 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX // cells that are not hidden. RowInfoFiller aFunc(*this, nTab, pRowInfo, nArrX, nArrY); sc::ParseAllNonEmpty( - pThisCol->maCells.begin(), pThisCol->maCells, nY1, nY2, aFunc); + pThisCol->maCells.begin(), pThisCol->maCells, nY1, nY2, aFunc, aFunc); if (nX+1 >= nX1) // Attribute/Blockmarken ab nX1-1 { |