[Libreoffice-commits] .: sc/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Sep 18 05:48:37 PDT 2012


 sc/source/core/data/conditio.cxx |   17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

New commits:
commit 2c933f90e3bc056b7094744d1512bd068dbf8d36
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Tue Sep 18 14:44:21 2012 +0200

    shrink to used area for duplicate codn format, fdo#54349
    
    Change-Id: Ie0cce19c3ea2132d94a227cd051090573054b369

diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx
index 8fddfe5..7f0c2d9 100644
--- a/sc/source/core/data/conditio.cxx
+++ b/sc/source/core/data/conditio.cxx
@@ -768,8 +768,21 @@ static bool lcl_IsDuplicate( ScDocument *pDoc, double nArg, const String& rStr,
         const ScRange *aRange = rRanges[i];
         SCROW nRow = aRange->aEnd.Row();
         SCCOL nCol = aRange->aEnd.Col();
-        for( SCROW r = aRange->aStart.Row(); r <= nRow; r++ )
-            for( SCCOL c = aRange->aStart.Col(); c <= nCol; c++ )
+        SCCOL nColStart = aRange->aStart.Col();
+        SCROW nRowStart = aRange->aEnd.Row();
+        SCTAB nTab = aRange->aStart.Tab();
+
+        // temporary fix to workaorund slow duplicate entry
+        // conditions, prevent to use a whole row
+        if(nRow == MAXROW)
+        {
+            bool bShrunk = false;
+            pDoc->ShrinkToUsedDataArea(bShrunk, nTab, nColStart, nRowStart,
+                                            nCol, nRow, false);
+        }
+
+        for( SCROW r = nRowStart; r <= nRow; r++ )
+            for( SCCOL c = nColStart; c <= nCol; c++ )
             {
                 double nVal = 0.0;
                 ScBaseCell *pCell = NULL;


More information about the Libreoffice-commits mailing list