Kaydet (Commit) 6a62557d authored tarafından Wang Lei's avatar Wang Lei Kaydeden (comit) Caolán McNamara

Resolves: #i121136# Improve Spreadsheet performance in some areas

Patch by: Wang Lei
Review by: Wang Lei

(cherry picked from commit d39376c4)

Conflicts:
	sc/source/core/data/document.cxx
	sc/source/core/data/table2.cxx
	sc/source/filter/excel/colrowst.cxx
	sc/source/ui/view/printfun.cxx

Change-Id: I17ff418ad5d09be1e760ee25e9c377ef1362f10e
üst 930127da
...@@ -841,6 +841,7 @@ uno::Any SAL_CALL ScShapeObj::getPropertyValue( const OUString& aPropertyName ) ...@@ -841,6 +841,7 @@ uno::Any SAL_CALL ScShapeObj::getPropertyValue( const OUString& aPropertyName )
} }
else else
{ {
if(!pShapePropertySet) //performance consideration
GetShapePropertySet(); GetShapePropertySet();
if (pShapePropertySet) if (pShapePropertySet)
aAny = pShapePropertySet->getPropertyValue( aPropertyName ); aAny = pShapePropertySet->getPropertyValue( aPropertyName );
......
...@@ -2932,8 +2932,9 @@ static void lcl_SetHidden( ScDocument* pDoc, SCTAB nPrintTab, ScPageRowEntry& rP ...@@ -2932,8 +2932,9 @@ static void lcl_SetHidden( ScDocument* pDoc, SCTAB nPrintTab, ScPageRowEntry& rP
void ScPrintFunc::CalcPages() // calculates aPageRect and pages from nZoom void ScPrintFunc::CalcPages() // calculates aPageRect and pages from nZoom
{ {
if (!pPageEndX) pPageEndX = new SCCOL[MAXCOL+1]; if (!pPageEndX) pPageEndX = new SCCOL[MAXCOL+1];
if (!pPageEndY) pPageEndY = new SCROW[MAXROW+1]; //performance impact
if (!pPageRows) pPageRows = new ScPageRowEntry[MAXROW+1]; //! count before !!!! // if (!pPageEndY) pPageEndY = new SCROW[MAXROW+1];
// if (!pPageRows) pPageRows = new ScPageRowEntry[MAXROW+1]; //! count before !!!!
pDoc->SetPageSize( nPrintTab, GetDocPageSize() ); pDoc->SetPageSize( nPrintTab, GetDocPageSize() );
if (aAreaParam.bPrintArea) if (aAreaParam.bPrintArea)
...@@ -2943,7 +2944,9 @@ void ScPrintFunc::CalcPages() // calculates aPageRect and pages fr ...@@ -2943,7 +2944,9 @@ void ScPrintFunc::CalcPages() // calculates aPageRect and pages fr
} }
else else
pDoc->UpdatePageBreaks( nPrintTab, NULL ); // else, end is marked pDoc->UpdatePageBreaks( nPrintTab, NULL ); // else, end is marked
SCROW nRealCnt = nEndRow-nStartRow+1;
if (!pPageEndY) pPageEndY = new SCROW[nRealCnt+1];
if (!pPageRows) pPageRows = new ScPageRowEntry[nRealCnt+1]; //! vorher zaehlen !!!!
// //
// Page alignment/splitting after breaks in Col/RowFlags // Page alignment/splitting after breaks in Col/RowFlags
// Of several breaks in a hidden area, only one counts. // Of several breaks in a hidden area, only one counts.
......
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