dev/null                              |binary
 sc/qa/unit/subsequent_export-test.cxx |   28 ----------------------------
 sc/source/core/data/attarray.cxx      |   11 ++++-------
 3 files changed, 4 insertions(+), 35 deletions(-)

New commits:
commit 50d746b78f5600a94830143b1bd5facab4d60c25
Author: Eike Rathke <er...@redhat.com>
Date:   Wed Dec 7 17:26:59 2016 +0100

    tdf#104434 tdf#104451 Revert "tdf#46738 Fix exporting .xlsx of coloured 
em"...
    
    This reverts commit 5239cefff56875c7bb45c046977f1724aace0cfb.
    
    That lead to including / looping through all formatted rows, which
    easily happens if an entire column is formatted.
    
    Also when printing it would print all formatted rows and printing a
    million empty coloured rows certainly is not desired, only one sheet of
    paper maybe. Which was the original intention of SC_VISATTR_STOP and as
    the name GetLastVisibleAttr() suggests the function is for visible
    attribution.
    
    (cherry picked from commit 00afb44987ccd10bce740aef53861ec53c75c95f)
    
    Change-Id: I58cefd6760706e6ac4d0db91ee8edceaed20c87e
    Reviewed-on: https://gerrit.libreoffice.org/31734
    Reviewed-by: Eike Rathke <er...@redhat.com>
    Tested-by: Jenkins <c...@libreoffice.org>

diff --git a/sc/qa/unit/data/ods/empty_cells_with_background.ods 
b/sc/qa/unit/data/ods/empty_cells_with_background.ods
deleted file mode 100644
index 1301bca..0000000
Binary files a/sc/qa/unit/data/ods/empty_cells_with_background.ods and 
/dev/null differ
diff --git a/sc/qa/unit/subsequent_export-test.cxx 
b/sc/qa/unit/subsequent_export-test.cxx
index 50bb2a6..2a088dd 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -114,7 +114,6 @@ public:
     void testColumnWidthExportFromODStoXLSX();
     void testOutlineExportXLSX();
     void testHiddenEmptyRowsXLSX();
-    void testEmptyRowsWithBackgroundColorXLSX();
     void testLandscapeOrientationXLSX();
 
     void testInlineArrayXLS();
@@ -215,7 +214,6 @@ public:
     CPPUNIT_TEST(testColumnWidthExportFromODStoXLSX);
     CPPUNIT_TEST(testOutlineExportXLSX);
     CPPUNIT_TEST(testHiddenEmptyRowsXLSX);
-    CPPUNIT_TEST(testEmptyRowsWithBackgroundColorXLSX);
     CPPUNIT_TEST(testLandscapeOrientationXLSX);
     CPPUNIT_TEST(testInlineArrayXLS);
     CPPUNIT_TEST(testEmbeddedChartXLS);
@@ -872,32 +870,6 @@ void ScExportTest::testOutlineExportXLSX()
     assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row", 30);
 }
 
-void ScExportTest::testEmptyRowsWithBackgroundColorXLSX()
-{
-    // tdf#46738 FILESAVE:  Cell background and border color formatting 
information of empty cells
-    // lost in particular document after FILESAVE as xls and xlsx
-    ScDocShellRef xShell = loadDoc("empty_cells_with_background.", FORMAT_ODS);
-    CPPUNIT_ASSERT(xShell.Is());
-
-    std::shared_ptr<utl::TempFile> pXPathFile = 
ScBootstrapFixture::exportTo(&(*xShell), FORMAT_XLSX);
-    xmlDocPtr pSheet = XPathHelper::parseExport(pXPathFile, m_xSFactory, 
"xl/worksheets/sheet1.xml");
-    CPPUNIT_ASSERT(pSheet);
-
-    // Check if all 100 rows are saved into .xlsx file,
-    // as it contains information about background color information (style)
-    assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row[1]", "r", "1");
-    assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row[2]", "r", "2");
-    assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row[3]", "r", "3");
-    assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row[100]", "r", "100");
-    assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row", 100);
-
-    // Check if all 4 column were created
-    assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row[100]/x:c[1]", "r", 
"A100");
-    assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row[100]/x:c[2]", "r", 
"B100");
-    assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row[100]/x:c[3]", "r", 
"C100");
-    assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row[100]/x:c[4]", "r", 
"D100");
-    assertXPath(pSheet, "/x:worksheet/x:sheetData/x:row[100]/x:c", 4);
-}
 
 void ScExportTest::testHiddenEmptyRowsXLSX()
 {
diff --git a/sc/source/core/data/attarray.cxx b/sc/source/core/data/attarray.cxx
index c402dde..eb530ed 100644
--- a/sc/source/core/data/attarray.cxx
+++ b/sc/source/core/data/attarray.cxx
@@ -1945,7 +1945,7 @@ bool ScAttrArray::GetFirstVisibleAttr( SCROW& rFirstRow ) 
const
     return bFound;
 }
 
-// Number of rows after the search will be stopped
+// size (rows) of a range of attributes after cell content where the search is 
stopped
 // (more than a default page size, 2*42 because it's as good as any number)
 
 const SCROW SC_VISATTR_STOP = 84;
@@ -1996,16 +1996,13 @@ bool ScAttrArray::GetLastVisibleAttr( SCROW& rLastRow, 
SCROW nLastData ) const
         if ( nAttrStartRow <= nLastData )
             nAttrStartRow = nLastData + 1;
         SCROW nAttrSize = pData[nEndPos].nRow + 1 - nAttrStartRow;
-        if ( pData[nEndPos].pPattern->IsVisible() )
+        if ( nAttrSize >= SC_VISATTR_STOP )
+            break;  // while, ignore this range and below
+        else if ( pData[nEndPos].pPattern->IsVisible() )
         {
             rLastRow = pData[nEndPos].nRow;
             bFound = true;
         }
-        // We are not ignoring range for current column,
-        // if it is larger than SC_VISATTR_STOP, because it is still in 
default page size range.
-        // We are not checking next columns, due to performance reasons.
-        if ( nAttrSize >= SC_VISATTR_STOP )
-            break;
         nPos = nEndPos + 1;
     }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to