[Libreoffice-commits] core.git: sc/qa sc/source
Eike Rathke
erack at redhat.com
Wed Dec 7 17:05:20 UTC 2016
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 <erack at 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;
}
More information about the Libreoffice-commits
mailing list