summaryrefslogtreecommitdiff
path: root/sc/source/ui/view/viewfun2.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/view/viewfun2.cxx')
-rw-r--r--sc/source/ui/view/viewfun2.cxx24
1 files changed, 12 insertions, 12 deletions
diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx
index 2ee7075b5c6f..800523e9892c 100644
--- a/sc/source/ui/view/viewfun2.cxx
+++ b/sc/source/ui/view/viewfun2.cxx
@@ -81,6 +81,7 @@
#include "prnsave.hxx"
#include "searchresults.hxx"
#include "tokenarray.hxx"
+#include <columnspanset.hxx>
#include <boost/scoped_ptr.hpp>
#include <vector>
@@ -107,12 +108,12 @@ sal_Bool ScViewFunc::AdjustBlockHeight( sal_Bool bPaint, ScMarkData* pMarkData )
pMarkData = &GetViewData()->GetMarkData();
ScDocument* pDoc = pDocSh->GetDocument();
- SCCOLROW* pRanges = new SCCOLROW[MAXCOLROWCOUNT];
- SCCOLROW nRangeCnt = pMarkData->GetMarkRowRanges( pRanges );
- if (nRangeCnt == 0)
+ std::vector<sc::RowSpan> aMarkedRows;
+ pMarkData->GetMarkedRowSpans(GetViewData()->GetTabNo(), aMarkedRows);
+ if (aMarkedRows.empty())
{
- pRanges[0] = pRanges[1] = GetViewData()->GetCurY();
- nRangeCnt = 1;
+ SCROW nCurRow = GetViewData()->GetCurY();
+ aMarkedRows.push_back(sc::RowSpan(nCurRow, nCurRow));
}
double nPPTX = GetViewData()->GetPPTX();
@@ -133,26 +134,25 @@ sal_Bool ScViewFunc::AdjustBlockHeight( sal_Bool bPaint, ScMarkData* pMarkData )
for (; itr != itrEnd; ++itr)
{
SCTAB nTab = *itr;
- SCCOLROW* pOneRange = pRanges;
- sal_Bool bChanged = false;
+ bool bChanged = false;
SCROW nPaintY = 0;
- for (SCROW nRangeNo=0; nRangeNo<nRangeCnt; nRangeNo++)
+ std::vector<sc::RowSpan>::const_iterator itRows = aMarkedRows.begin(), itRowsEnd = aMarkedRows.end();
+ for (; itRows != itRowsEnd; ++itRows)
{
- SCROW nStartNo = *(pOneRange++);
- SCROW nEndNo = *(pOneRange++);
+ SCROW nStartNo = itRows->mnRow1;
+ SCROW nEndNo = itRows->mnRow2;
if (pDoc->SetOptimalHeight( nStartNo, nEndNo, nTab, 0, aProv.GetDevice(),
nPPTX, nPPTY, aZoomX, aZoomY, false ))
{
if (!bChanged)
nPaintY = nStartNo;
- bAnyChanged = bChanged = sal_True;
+ bAnyChanged = bChanged = true;
}
}
if ( bPaint && bChanged )
pDocSh->PostPaint( 0, nPaintY, nTab, MAXCOL, MAXROW, nTab,
PAINT_GRID | PAINT_LEFT );
}
- delete[] pRanges;
if ( bPaint && bAnyChanged )
pDocSh->UpdateOle(GetViewData());