Kaydet (Commit) cb4a4788 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

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
üst 3b3b0c04
...@@ -37,8 +37,6 @@ endif ...@@ -37,8 +37,6 @@ endif
$(eval $(call gb_Module_add_check_targets,sc,\ $(eval $(call gb_Module_add_check_targets,sc,\
CppunitTest_sc_ucalc \ CppunitTest_sc_ucalc \
CppunitTest_sc_filters_test \
CppunitTest_sc_rangelst_test \
)) ))
$(eval $(call gb_Module_add_slowcheck_targets,sc, \ $(eval $(call gb_Module_add_slowcheck_targets,sc, \
......
...@@ -112,6 +112,18 @@ ParseAllNonEmpty( ...@@ -112,6 +112,18 @@ ParseAllNonEmpty(
itPos, rCells, nRow1, nRow2, rFunc, aElse); 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> template<typename _Func>
typename CellStoreType::const_iterator typename CellStoreType::const_iterator
ParseFormulaNumeric( ParseFormulaNumeric(
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include "svl/broadcast.hxx" #include "svl/broadcast.hxx"
#include "editeng/editobj.hxx" #include "editeng/editobj.hxx"
#define DEBUG_COLUMN_STORAGE 0 #define DEBUG_COLUMN_STORAGE 1
#if DEBUG_COLUMN_STORAGE #if DEBUG_COLUMN_STORAGE
#ifdef NDEBUG #ifdef NDEBUG
......
...@@ -189,6 +189,12 @@ public: ...@@ -189,6 +189,12 @@ public:
if (!isHidden(nRow)) if (!isHidden(nRow))
setInfo(ScRefCellValue(const_cast<ScFormulaCell*>(p))); 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 ...@@ -430,7 +436,7 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX
// cells that are not hidden. // cells that are not hidden.
RowInfoFiller aFunc(*this, nTab, pRowInfo, nArrX, nArrY); RowInfoFiller aFunc(*this, nTab, pRowInfo, nArrX, nArrY);
sc::ParseAllNonEmpty( 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 if (nX+1 >= nX1) // Attribute/Blockmarken ab nX1-1
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment