[Libreoffice-commits] core.git: 7 commits - sc/qa sc/source

Markus Mohrhard markus.mohrhard at googlemail.com
Sat Mar 23 22:17:49 PDT 2013


 sc/qa/unit/subsequent_export-test.cxx |    4 +-
 sc/source/core/data/cell2.cxx         |   47 ++--------------------------------
 sc/source/core/data/colorscale.cxx    |    1 
 sc/source/core/data/conditio.cxx      |   21 ++++++++++-----
 sc/source/core/tool/address.cxx       |   12 ++++----
 5 files changed, 27 insertions(+), 58 deletions(-)

New commits:
commit 2c3943f43d29bf9173a5c85710a4d2d06b6885ba
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sun Mar 24 05:10:39 2013 +0100

    we can stop the loop as soon as we found something
    
    Change-Id: I43e318e5aa112587775c0982d42e7780408a6b83

diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx
index b4f58bc..754cbdc 100644
--- a/sc/source/core/data/colorscale.cxx
+++ b/sc/source/core/data/colorscale.cxx
@@ -1084,6 +1084,7 @@ BitmapEx& ScIconSetFormat::getBitmap( ScIconSetType eType, sal_Int32 nIndex )
         if(aBitmapMap[i].eType == eType)
         {
             nBitmap = *(aBitmapMap[i].nBitmaps + nIndex);
+            break;
         }
     }
     assert( nBitmap != -1 );
commit 9261c0bf6ecf6633a5577879f003edfcb569f4d7
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sun Mar 24 05:09:08 2013 +0100

    URM_INSDEL we need to update the src position, fdo#62206
    
    See ScFormulaCell::UpdateReference for a similar update
    
    Change-Id: I1f98d26adb5085e4bdab63cc23f97a81928d6b13

diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx
index 772a190..ae4a7e2 100644
--- a/sc/source/core/data/conditio.cxx
+++ b/sc/source/core/data/conditio.cxx
@@ -526,12 +526,21 @@ void ScConditionEntry::UpdateReference( UpdateRefMode eUpdateRefMode,
 {
     bool bInsertTab = ( eUpdateRefMode == URM_INSDEL && nDz >= 1 );
     bool bDeleteTab = ( eUpdateRefMode == URM_INSDEL && nDz <= -1 );
+    if(pCondFormat)
+        aSrcPos = pCondFormat->GetRange().Combine().aStart;
+    ScAddress aOldSrcPos = aSrcPos;
+    bool bChangedPos = false;
+    if(eUpdateRefMode == URM_INSDEL && rRange.In(aSrcPos))
+    {
+        aSrcPos.Move(nDx, nDy, nDz);
+        bChangedPos = aSrcPos != aOldSrcPos;
+    }
 
     if (pFormula1)
     {
         bool bChanged1 = false;
         if ( bInsertTab )
-            lcl_CondUpdateInsertTab( *pFormula1, rRange.aStart.Tab(), aSrcPos.Tab(), bChanged1, nDz );
+            lcl_CondUpdateInsertTab( *pFormula1, rRange.aStart.Tab(), aOldSrcPos.Tab(), bChanged1, nDz );
         else
         {
             ScCompiler aComp( mpDoc, aSrcPos, *pFormula1 );
@@ -541,19 +550,19 @@ void ScConditionEntry::UpdateReference( UpdateRefMode eUpdateRefMode,
             else
             {
                 bool bSizeChanged;
-                aComp.UpdateReference( eUpdateRefMode, aSrcPos, rRange, nDx,
+                aComp.UpdateReference( eUpdateRefMode, aOldSrcPos, rRange, nDx,
                         nDy, nDz, bChanged1, bSizeChanged );
             }
         }
 
-        if (bChanged1)
+        if (bChanged1 || bChangedPos)
             DELETEZ(pFCell1);       // is created again in IsValid
     }
     if (pFormula2)
     {
         bool bChanged2 = false;
         if ( bInsertTab )
-            lcl_CondUpdateInsertTab( *pFormula2, rRange.aStart.Tab(), aSrcPos.Tab(), bChanged2, nDz );
+            lcl_CondUpdateInsertTab( *pFormula2, rRange.aStart.Tab(), aOldSrcPos.Tab(), bChanged2, nDz );
         else
         {
             ScCompiler aComp( mpDoc, aSrcPos, *pFormula2);
@@ -563,12 +572,12 @@ void ScConditionEntry::UpdateReference( UpdateRefMode eUpdateRefMode,
             else
             {
                 bool bSizeChanged;
-                aComp.UpdateReference( eUpdateRefMode, aSrcPos, rRange, nDx,
+                aComp.UpdateReference( eUpdateRefMode, aOldSrcPos, rRange, nDx,
                         nDy, nDz, bChanged2, bSizeChanged );
             }
         }
 
-        if (bChanged2)
+        if (bChanged2 || bChangedPos)
             DELETEZ(pFCell2);       // is created again in IsValid
     }
 }
commit da0a22fbdcfadf0df7bdde7ebacec85bae6344c9
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sun Mar 24 05:09:53 2013 +0100

    simplify the position update code in ScFormulaCell::UpdateReference
    
    Change-Id: I2cf0fd0947df8e667f461aaf2c67095d2d42111d

diff --git a/sc/source/core/data/cell2.cxx b/sc/source/core/data/cell2.cxx
index 040890a..b4a78de 100644
--- a/sc/source/core/data/cell2.cxx
+++ b/sc/source/core/data/cell2.cxx
@@ -861,49 +861,10 @@ bool ScFormulaCell::UpdateReference(UpdateRefMode eUpdateRefMode,
     ScAddress aOldPos( aPos );
 //  bool bPosChanged = false;           // if this cell was moved
     bool bIsInsert = false;
-    if (eUpdateRefMode == URM_INSDEL)
+    if (eUpdateRefMode == URM_INSDEL && r.In( aPos ))
     {
         bIsInsert = (nDx >= 0 && nDy >= 0 && nDz >= 0);
-        if ( nDx && nRow >= nRow1 && nRow <= nRow2 &&
-            nTab >= nTab1 && nTab <= nTab2 )
-        {
-            if (nCol >= nCol1)
-            {
-                nCol = sal::static_int_cast<SCCOL>( nCol + nDx );
-                if ((SCsCOL) nCol < 0)
-                    nCol = 0;
-                else if ( nCol > MAXCOL )
-                    nCol = MAXCOL;
-                aPos.SetCol( nCol );
-            }
-        }
-        if ( nDy && nCol >= nCol1 && nCol <= nCol2 &&
-            nTab >= nTab1 && nTab <= nTab2 )
-        {
-            if (nRow >= nRow1)
-            {
-                nRow = sal::static_int_cast<SCROW>( nRow + nDy );
-                if ((SCsROW) nRow < 0)
-                    nRow = 0;
-                else if ( nRow > MAXROW )
-                    nRow = MAXROW;
-                aPos.SetRow( nRow );
-            }
-        }
-        if ( nDz && nCol >= nCol1 && nCol <= nCol2 &&
-            nRow >= nRow1 && nRow <= nRow2 )
-        {
-            if (nTab >= nTab1)
-            {
-                SCTAB nMaxTab = pDocument->GetTableCount() - 1;
-                nTab = sal::static_int_cast<SCTAB>( nTab + nDz );
-                if ((SCsTAB) nTab < 0)
-                    nTab = 0;
-                else if ( nTab > nMaxTab )
-                    nTab = nMaxTab;
-                aPos.SetTab( nTab );
-            }
-        }
+        aPos.Move(nDx, nDy, nDz);
         bCellStateChanged = aPos != aOldPos;
     }
     else if ( r.In( aPos ) )
commit d3d23f889a74ace0e4e71526df7aca18b1acaa03
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sun Mar 24 04:19:32 2013 +0100

    sal_Bool -> bool in address.cxx
    
    Change-Id: I77c688cb11438204acd37113cffc223ba0c08f0c

diff --git a/sc/source/core/tool/address.cxx b/sc/source/core/tool/address.cxx
index abae2c3..9a8fe8f 100644
--- a/sc/source/core/tool/address.cxx
+++ b/sc/source/core/tool/address.cxx
@@ -270,7 +270,7 @@ lcl_XL_ParseSheetRef( const sal_Unicode* start,
     }
     else
     {
-        bool only_digits = sal_True;
+        bool only_digits = true;
 
         /*
          * Valid: Normal!a1
@@ -1844,7 +1844,7 @@ void ScRange::Format( String& r, sal_uInt16 nFlags, const ScDocument* pDoc,
     switch( rDetails.eConv ) {
     default :
     case formula::FormulaGrammar::CONV_OOO: {
-        sal_Bool bOneTab = (aStart.Tab() == aEnd.Tab());
+        bool bOneTab = (aStart.Tab() == aEnd.Tab());
         if ( !bOneTab )
             nFlags |= SCA_TAB_3D;
         aStart.Format( r, nFlags, pDoc, rDetails );
@@ -1948,7 +1948,7 @@ bool ScAddress::Move( SCsCOL dx, SCsROW dy, SCsTAB dz, ScDocument* pDoc )
     dx = Col() + dx;
     dy = Row() + dy;
     dz = Tab() + dz;
-    sal_Bool bValid = sal_True;
+    bool bValid = true;
     if( dx < 0 )
         dx = 0, bValid = false;
     else if( dx > MAXCOL )
commit bfa20cd32c825cfe8dbdb93399ed99544d8c8647
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sun Mar 24 04:17:07 2013 +0100

    simplify the use of nMaxTab a bit
    
    Change-Id: I8b21575f7a9e659e9b00f381c2fd7a1e117d67cb

diff --git a/sc/source/core/tool/address.cxx b/sc/source/core/tool/address.cxx
index 7b70845..abae2c3 100644
--- a/sc/source/core/tool/address.cxx
+++ b/sc/source/core/tool/address.cxx
@@ -1944,7 +1944,7 @@ void ScRange::Format( OUString& r, sal_uInt16 nFlags, const ScDocument* pDoc,
 
 bool ScAddress::Move( SCsCOL dx, SCsROW dy, SCsTAB dz, ScDocument* pDoc )
 {
-    SCsTAB nMaxTab = pDoc ? pDoc->GetTableCount() : MAXTAB+1;
+    SCsTAB nMaxTab = pDoc ? pDoc->GetTableCount() : MAXTAB;
     dx = Col() + dx;
     dy = Row() + dy;
     dz = Tab() + dz;
@@ -1959,8 +1959,8 @@ bool ScAddress::Move( SCsCOL dx, SCsROW dy, SCsTAB dz, ScDocument* pDoc )
         dy = MAXROW, bValid =false;
     if( dz < 0 )
         dz = 0, bValid = false;
-    else if( dz >= nMaxTab )
-        dz = nMaxTab-1, bValid =false;
+    else if( dz > nMaxTab )
+        dz = nMaxTab, bValid =false;
     Set( dx, dy, dz );
     return bValid;
 }
commit bf535cbfdaa3edde7afaa6167092717ca7b98b9f
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sun Mar 24 04:13:58 2013 +0100

    it is enough to check at the end if pos changed
    
    Change-Id: Id1e4957ab22eb2ff280271b5a332095df29c9ad6

diff --git a/sc/source/core/data/cell2.cxx b/sc/source/core/data/cell2.cxx
index 0e217f2..040890a 100644
--- a/sc/source/core/data/cell2.cxx
+++ b/sc/source/core/data/cell2.cxx
@@ -874,7 +874,6 @@ bool ScFormulaCell::UpdateReference(UpdateRefMode eUpdateRefMode,
                     nCol = 0;
                 else if ( nCol > MAXCOL )
                     nCol = MAXCOL;
-                bCellStateChanged = aPos.Col() != nCol;
                 aPos.SetCol( nCol );
             }
         }
@@ -888,7 +887,6 @@ bool ScFormulaCell::UpdateReference(UpdateRefMode eUpdateRefMode,
                     nRow = 0;
                 else if ( nRow > MAXROW )
                     nRow = MAXROW;
-                bCellStateChanged = aPos.Row() != nRow;
                 aPos.SetRow( nRow );
             }
         }
@@ -903,10 +901,10 @@ bool ScFormulaCell::UpdateReference(UpdateRefMode eUpdateRefMode,
                     nTab = 0;
                 else if ( nTab > nMaxTab )
                     nTab = nMaxTab;
-                bCellStateChanged = aPos.Tab() != nTab;
                 aPos.SetTab( nTab );
             }
         }
+        bCellStateChanged = aPos != aOldPos;
     }
     else if ( r.In( aPos ) )
     {
commit ef59aa2e92cb1a1e9b8dfe7a234f06d44df8516c
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Mar 23 09:05:15 2013 +0100

    use ASSERT_DOUBLES_EQUAL instead of CPPUNIT_ASSERT_DOUBLES_EQUAL in calc
    
    Change-Id: I55979aec2ab0140190f58f96ed108e8dd1e3a051

diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx
index bf0ab4a..db0879d 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -125,7 +125,7 @@ void ScExportTest::test()
     CPPUNIT_ASSERT(xDocSh.Is());
     ScDocument* pLoadedDoc = xDocSh->GetDocument();
     double aVal = pLoadedDoc->GetValue(0,0,0);
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(aVal, 1.0, 1e-8);
+    ASSERT_DOUBLES_EQUAL(aVal, 1.0);
 }
 
 void ScExportTest::testPasswordExport()
@@ -149,7 +149,7 @@ void ScExportTest::testPasswordExport()
     CPPUNIT_ASSERT(xDocSh.Is());
     ScDocument* pLoadedDoc = xDocSh->GetDocument();
     double aVal = pLoadedDoc->GetValue(0,0,0);
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(aVal, 1.0, 1e-8);
+    ASSERT_DOUBLES_EQUAL(aVal, 1.0);
 }
 
 void ScExportTest::testConditionalFormatExportODS()


More information about the Libreoffice-commits mailing list