You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by le...@apache.org on 2012/09/28 10:36:51 UTC
svn commit: r1391359 - in /incubator/ooo/trunk/main/sc: inc/document.hxx
inc/table.hxx source/core/data/document.cxx source/core/data/table2.cxx
source/filter/excel/colrowst.cxx source/ui/unoobj/shapeuno.cxx
source/ui/view/printfun.cxx
Author: leiw
Date: Fri Sep 28 08:36:51 2012
New Revision: 1391359
URL: http://svn.apache.org/viewvc?rev=1391359&view=rev
Log:
#i121136 Improve Spreadsheet performance in some area (Patch 1)
Patch by: Wang Lei
Review by: Wang Lei
Modified:
incubator/ooo/trunk/main/sc/inc/document.hxx
incubator/ooo/trunk/main/sc/inc/table.hxx
incubator/ooo/trunk/main/sc/source/core/data/document.cxx
incubator/ooo/trunk/main/sc/source/core/data/table2.cxx
incubator/ooo/trunk/main/sc/source/filter/excel/colrowst.cxx
incubator/ooo/trunk/main/sc/source/ui/unoobj/shapeuno.cxx
incubator/ooo/trunk/main/sc/source/ui/view/printfun.cxx
Modified: incubator/ooo/trunk/main/sc/inc/document.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/inc/document.hxx?rev=1391359&r1=1391358&r2=1391359&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/inc/document.hxx (original)
+++ incubator/ooo/trunk/main/sc/inc/document.hxx Fri Sep 28 08:36:51 2012
@@ -1298,6 +1298,7 @@ public:
void DeleteSelectionTab( SCTAB nTab, sal_uInt16 nDelFlag, const ScMarkData& rMark );
SC_DLLPUBLIC void SetColWidth( SCCOL nCol, SCTAB nTab, sal_uInt16 nNewWidth );
+ SC_DLLPUBLIC void SetColWidthOnly( SCCOL nCol, SCTAB nTab, sal_uInt16 nNewWidth );
SC_DLLPUBLIC void SetRowHeight( SCROW nRow, SCTAB nTab, sal_uInt16 nNewHeight );
SC_DLLPUBLIC void SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, SCTAB nTab,
sal_uInt16 nNewHeight );
Modified: incubator/ooo/trunk/main/sc/inc/table.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/inc/table.hxx?rev=1391359&r1=1391358&r2=1391359&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/inc/table.hxx (original)
+++ incubator/ooo/trunk/main/sc/inc/table.hxx Fri Sep 28 08:36:51 2012
@@ -628,6 +628,7 @@ public:
const Fraction& rZoomX, const Fraction& rZoomY,
sal_Bool bWidth, sal_Bool bTotalSize );
void SetColWidth( SCCOL nCol, sal_uInt16 nNewWidth );
+ void SetColWidthOnly( SCCOL nCol, sal_uInt16 nNewWidth );
void SetRowHeight( SCROW nRow, sal_uInt16 nNewHeight );
sal_Bool SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight,
double nPPTX, double nPPTY );
Modified: incubator/ooo/trunk/main/sc/source/core/data/document.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/core/data/document.cxx?rev=1391359&r1=1391358&r2=1391359&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/core/data/document.cxx (original)
+++ incubator/ooo/trunk/main/sc/source/core/data/document.cxx Fri Sep 28 08:36:51 2012
@@ -3165,6 +3165,11 @@ void ScDocument::SetColWidth( SCCOL nCol
pTab[nTab]->SetColWidth( nCol, nNewWidth );
}
+void ScDocument::SetColWidthOnly( SCCOL nCol, SCTAB nTab, sal_uInt16 nNewWidth )
+{
+ if ( ValidTab(nTab) && pTab[nTab] )
+ pTab[nTab]->SetColWidthOnly( nCol, nNewWidth );
+}
void ScDocument::SetRowHeight( SCROW nRow, SCTAB nTab, sal_uInt16 nNewHeight )
{
Modified: incubator/ooo/trunk/main/sc/source/core/data/table2.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/core/data/table2.cxx?rev=1391359&r1=1391358&r2=1391359&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/core/data/table2.cxx (original)
+++ incubator/ooo/trunk/main/sc/source/core/data/table2.cxx Fri Sep 28 08:36:51 2012
@@ -2340,6 +2340,16 @@ void ScTable::SetRowHeightOnly( SCROW nS
mpRowHeights->setValue(nStartRow, nEndRow, nNewHeight);
}
+void ScTable::SetColWidthOnly( SCCOL nCol, sal_uInt16 nNewWidth )
+{
+ if (!VALIDCOL(nCol) || !pColWidth)
+ return;
+
+ if (!nNewWidth)
+ nNewWidth = STD_COL_WIDTH;
+
+ pColWidth[nCol] = nNewWidth;
+}
void ScTable::SetManualHeight( SCROW nStartRow, SCROW nEndRow, sal_Bool bManual )
{
if (VALIDROW(nStartRow) && VALIDROW(nEndRow) && pRowFlags)
Modified: incubator/ooo/trunk/main/sc/source/filter/excel/colrowst.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/filter/excel/colrowst.cxx?rev=1391359&r1=1391358&r2=1391359&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/filter/excel/colrowst.cxx (original)
+++ incubator/ooo/trunk/main/sc/source/filter/excel/colrowst.cxx Fri Sep 28 08:36:51 2012
@@ -199,7 +199,7 @@ void XclImpColRowSettings::Convert( SCTA
::set_flag( maColFlags[ nScCol ], EXC_COLROW_HIDDEN );
nWidth = mnDefWidth;
}
- rDoc.SetColWidth( nScCol, nScTab, nWidth );
+ rDoc.SetColWidthOnly( nScCol, nScTab, nWidth );
}
// row heights ------------------------------------------------------------
Modified: incubator/ooo/trunk/main/sc/source/ui/unoobj/shapeuno.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/ui/unoobj/shapeuno.cxx?rev=1391359&r1=1391358&r2=1391359&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/ui/unoobj/shapeuno.cxx (original)
+++ incubator/ooo/trunk/main/sc/source/ui/unoobj/shapeuno.cxx Fri Sep 28 08:36:51 2012
@@ -819,7 +819,7 @@ uno::Any SAL_CALL ScShapeObj::getPropert
}
else
{
- GetShapePropertySet();
+ if(!pShapePropertySet) GetShapePropertySet(); //performance consideration
if (pShapePropertySet)
aAny = pShapePropertySet->getPropertyValue( aPropertyName );
}
Modified: incubator/ooo/trunk/main/sc/source/ui/view/printfun.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/ui/view/printfun.cxx?rev=1391359&r1=1391358&r2=1391359&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/ui/view/printfun.cxx (original)
+++ incubator/ooo/trunk/main/sc/source/ui/view/printfun.cxx Fri Sep 28 08:36:51 2012
@@ -2991,8 +2991,9 @@ void lcl_SetHidden( ScDocument* pDoc, SC
void ScPrintFunc::CalcPages() // berechnet aPageRect und Seiten aus nZoom
{
if (!pPageEndX) pPageEndX = new SCCOL[MAXCOL+1];
- if (!pPageEndY) pPageEndY = new SCROW[MAXROW+1];
- if (!pPageRows) pPageRows = new ScPageRowEntry[MAXROW+1]; //! vorher zaehlen !!!!
+ //performance impact
+// if (!pPageEndY) pPageEndY = new SCROW[MAXROW+1];
+// if (!pPageRows) pPageRows = new ScPageRowEntry[MAXROW+1]; //! vorher zaehlen !!!!
pDoc->SetPageSize( nPrintTab, GetDocPageSize() );
if (aAreaParam.bPrintArea)
@@ -3002,7 +3003,9 @@ void ScPrintFunc::CalcPages()
}
else
pDoc->UpdatePageBreaks( nPrintTab, NULL ); // sonst wird das Ende markiert
-
+ SCROW nRealCnt = nEndRow-nStartRow+1;
+ if (!pPageEndY) pPageEndY = new SCROW[nRealCnt+1];
+ if (!pPageRows) pPageRows = new ScPageRowEntry[nRealCnt+1]; //! vorher zaehlen !!!!
//
// Seiteneinteilung nach Umbruechen in Col/RowFlags
// Von mehreren Umbruechen in einem ausgeblendeten Bereich zaehlt nur einer.