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 00afb44987ccd10bce740aef53861ec53c75c95f 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. 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