[Libreoffice-commits] core.git: Branch 'libreoffice-4-2' - svx/source

Matúš Kukan matus.kukan at collabora.com
Thu May 29 03:02:14 PDT 2014


 svx/source/table/cell.cxx |   14 +++++++++-----
 svx/source/table/cell.hxx |    1 +
 2 files changed, 10 insertions(+), 5 deletions(-)

New commits:
commit 894594c1ff0323f537270d1ca2dec33cdbb9b19c
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Tue May 27 10:39:45 2014 +0200

    Related bnc#822625: Cache minimum height for table cells.
    
    Change-Id: I35e295347a046376289f5d4fd5468860d0b8f0ae
    (cherry picked from commit 5792e76cb5beb630c135f57b74f57d74dd2dc2b0)
    Reviewed-on: https://gerrit.libreoffice.org/9519
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/svx/source/table/cell.cxx b/svx/source/table/cell.cxx
index d4f199b..7e04db7 100644
--- a/svx/source/table/cell.cxx
+++ b/svx/source/table/cell.cxx
@@ -358,6 +358,7 @@ Cell::Cell( SdrTableObj& rTableObj, OutlinerParaObject* pOutlinerParaObject ) th
 , mbMerged( sal_False )
 , mnRowSpan( 1 )
 , mnColSpan( 1 )
+, mnCachedMinHeight( -1 )
 , mxTable( rTableObj.getTable() )
 {
     if( rTableObj.GetModel() )
@@ -524,6 +525,7 @@ void Cell::setMerged()
 
 void Cell::notifyModified()
 {
+    mnCachedMinHeight = -1;
     if( mxTable.is() )
         mxTable->setModified( sal_True );
 }
@@ -680,8 +682,10 @@ sal_Int32 Cell::getMinimumHeight()
     if( !mpProperties )
         return 0;
 
+    if( mnCachedMinHeight != -1 )
+        return mnCachedMinHeight;
+
     SdrTableObj& rTableObj = dynamic_cast< SdrTableObj& >( GetObject() );
-    sal_Int32 nMinimumHeight = 0;
 
     Rectangle aTextRect;
     TakeTextAnchorRect( aTextRect );
@@ -692,7 +696,7 @@ sal_Int32 Cell::getMinimumHeight()
     if(pEditOutliner)
     {
         pEditOutliner->SetMaxAutoPaperSize(aSize);
-        nMinimumHeight = pEditOutliner->GetTextHeight()+1;
+        mnCachedMinHeight = pEditOutliner->GetTextHeight()+1;
     }
     else /*if ( hasText() )*/
     {
@@ -705,12 +709,12 @@ sal_Int32 Cell::getMinimumHeight()
         {
             rOutliner.SetText(*GetOutlinerParaObject());
         }
-        nMinimumHeight=rOutliner.GetTextHeight()+1;
+        mnCachedMinHeight=rOutliner.GetTextHeight()+1;
         rOutliner.Clear();
     }
 
-    nMinimumHeight += GetTextUpperDistance() + GetTextLowerDistance();
-    return nMinimumHeight;
+    mnCachedMinHeight += GetTextUpperDistance() + GetTextLowerDistance();
+    return mnCachedMinHeight;
 }
 
 // -----------------------------------------------------------------------------
diff --git a/svx/source/table/cell.hxx b/svx/source/table/cell.hxx
index 1b26b1c..ba2c6f6 100644
--- a/svx/source/table/cell.hxx
+++ b/svx/source/table/cell.hxx
@@ -222,6 +222,7 @@ private:
     ::sal_Bool      mbMerged;
     ::sal_Int32     mnRowSpan;
     ::sal_Int32     mnColSpan;
+    ::sal_Int32     mnCachedMinHeight;
 
     Rectangle maCellRect;
 


More information about the Libreoffice-commits mailing list