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.