[Libreoffice-commits] .: Branch 'feature/gsoc-calc-perf' - 5 commits - sc/qa sc/source
Daniel Bankston
dbank at kemper.freedesktop.org
Tue Jun 5 23:19:10 PDT 2012
sc/qa/unit/data/contentCSV/repeatedColumns.csv | 1
sc/qa/unit/data/ods/repeatedColumns.ods |binary
sc/qa/unit/subsequent_filters-test.cxx | 16 ++++++++++++
sc/source/filter/xml/xmlcelli.cxx | 33 +++++++++++--------------
sc/source/filter/xml/xmlcelli.hxx | 6 +---
sc/source/filter/xml/xmlrowi.cxx | 4 +--
6 files changed, 36 insertions(+), 24 deletions(-)
New commits:
commit 870bccb97838e175febf22b8103503097c59bf58
Author: Daniel Bankston <daniel.e.bankston at gmail.com>
Date: Tue Jun 5 21:30:25 2012 -0500
Fix repeating columns
Change-Id: I35d8cc824bf7efceae6225432d5a261bd3883211
diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx
index 08868c3..9e309f7 100644
--- a/sc/source/filter/xml/xmlcelli.cxx
+++ b/sc/source/filter/xml/xmlcelli.cxx
@@ -822,14 +822,14 @@ void ScXMLTableRowCellContext::EndElement()
for (SCCOL i = 0; i < nCellsRepeated; ++i)
{
- aScCurrentPos.SetCol( aScCurrentPos.Col() + i );
+ aScCurrentPos.SetCol( aScCellPos.Col() + i );
if (i > 0)
rTables.AddColumn(false);
if (!bIsEmpty)
{
for (SCROW j = 0; j < nRepeatedRows; ++j)
{
- aScCurrentPos.SetRow( aScCurrentPos.Row() + j );
+ aScCurrentPos.SetRow( aScCellPos.Row() + j );
if( (aScCurrentPos.Col() == 0) && (j > 0) )
{
rTables.AddRow();
commit 2d5b89ab94b5b960a14f4385b5631ad905c464a9
Author: Daniel Bankston <daniel.e.bankston at gmail.com>
Date: Tue Jun 5 20:18:09 2012 -0500
Commit files used in repeated columns unit test
Change-Id: Ie8e9a3a3f36caa55f495ef7a6670b73ebe9e2086
diff --git a/sc/qa/unit/data/contentCSV/repeatedColumns.csv b/sc/qa/unit/data/contentCSV/repeatedColumns.csv
new file mode 100644
index 0000000..ffcf6c2
--- /dev/null
+++ b/sc/qa/unit/data/contentCSV/repeatedColumns.csv
@@ -0,0 +1 @@
+test,test,test,test,test,test
diff --git a/sc/qa/unit/data/ods/repeatedColumns.ods b/sc/qa/unit/data/ods/repeatedColumns.ods
new file mode 100644
index 0000000..f1e7b69
Binary files /dev/null and b/sc/qa/unit/data/ods/repeatedColumns.ods differ
commit 9e7989cc8009eb008a09d5e78a80855088b54b7c
Author: Daniel Bankston <daniel.e.bankston at gmail.com>
Date: Tue Jun 5 20:16:00 2012 -0500
Added unit test for repeated columns in ODS import.
Change-Id: Idf3cf3a1f6fd1487c83470a9e5df4c940ee64c73
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index da349f7..cfe32e0 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -112,6 +112,7 @@ public:
void testBugFixesXLS();
void testBugFixesXLSX();
void testBrokenQuotesCSV();
+ void testRepeatedColumnsODS();
//change this test file only in excel and not in calc
void testSharedFormulaXLSX();
@@ -137,6 +138,7 @@ public:
CPPUNIT_TEST(testBugFixesODS);
CPPUNIT_TEST(testBugFixesXLS);
CPPUNIT_TEST(testBugFixesXLSX);
+ CPPUNIT_TEST(testRepeatedColumnsODS);
#if 0
CPPUNIT_TEST(testBrokenQuotesCSV);
#endif
@@ -629,6 +631,20 @@ void ScFiltersTest::testBugFixesXLSX()
xDocSh->DoClose();
}
+void ScFiltersTest::testRepeatedColumnsODS()
+{
+ const rtl::OUString aFileNameBase(RTL_CONSTASCII_USTRINGPARAM("repeatedColumns."));
+ ScDocShellRef xDocSh = loadDoc( aFileNameBase, 0);
+
+ ScDocument* pDoc = xDocSh->GetDocument();
+
+ rtl::OUString aCSVFileName;
+ createCSVPath(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("repeatedColumns.")), aCSVFileName);
+ testFile(aCSVFileName, pDoc, 0);
+
+ xDocSh->DoClose();
+}
+
void ScFiltersTest::testBrokenQuotesCSV()
{
const rtl::OUString aFileNameBase(RTL_CONSTASCII_USTRINGPARAM("fdo48621_broken_quotes."));
commit adfc8c78a2514ab6f4ba8821cbdbb237014eab70
Author: Daniel Bankston <daniel.e.bankston at gmail.com>
Date: Tue Jun 5 20:10:01 2012 -0500
Remove comments
Change-Id: I257a18325c3f385e14bed88aca6bdd2a8eba30b1
diff --git a/sc/source/filter/xml/xmlcelli.hxx b/sc/source/filter/xml/xmlcelli.hxx
index e8fecfd..3e624ee 100644
--- a/sc/source/filter/xml/xmlcelli.hxx
+++ b/sc/source/filter/xml/xmlcelli.hxx
@@ -60,10 +60,6 @@ class ScXMLTableRowCellContext : public SvXMLImportContext
ScMyImpDetectiveObjVec* pDetectiveObjVec;
ScMyImpCellRangeSource* pCellRangeSource;
double fValue;
- //~ sal_Int32 nMergedRows, nMergedCols;
- //~ sal_Int32 nMatrixRows, nMatrixCols;
- //~ sal_Int32 nRepeatedRows;
- //~ sal_Int32 nCellsRepeated;
SCROW nMergedRows, nMatrixRows, nRepeatedRows;
SCCOL nMergedCols, nMatrixCols, nCellsRepeated;
ScXMLImport& rXMLImport;
commit 891d6b636f9c7a2d41505b2729deb1135215598e
Author: Daniel Bankston <daniel.e.bankston at gmail.com>
Date: Tue Jun 5 15:07:27 2012 -0500
Reduce amount of casts between SCCOL, SCROW, and sal_Int32
Change-Id: If20c7ae8e90b41521215072a83654e6e90502129
diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx
index e6cf759..08868c3 100644
--- a/sc/source/filter/xml/xmlcelli.cxx
+++ b/sc/source/filter/xml/xmlcelli.cxx
@@ -115,8 +115,8 @@ ScXMLTableRowCellContext::ScXMLTableRowCellContext( ScXMLImport& rImport,
pCellRangeSource(NULL),
fValue(0.0),
nMergedRows(1),
- nMergedCols(1),
nRepeatedRows(nTempRepeatedRows),
+ nMergedCols(1),
nCellsRepeated(1),
rXMLImport((ScXMLImport&)rImport),
eGrammar( formula::FormulaGrammar::GRAM_STORAGE_DEFAULT),
@@ -156,22 +156,22 @@ ScXMLTableRowCellContext::ScXMLTableRowCellContext( ScXMLImport& rImport,
break;
case XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_ROWS:
bIsMerged = true;
- nMergedRows = sValue.toInt32();
+ nMergedRows = static_cast<SCROW>(sValue.toInt32());
break;
case XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_COLS:
bIsMerged = true;
- nMergedCols = sValue.toInt32();
+ nMergedCols = static_cast<SCCOL>(sValue.toInt32());
break;
case XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_MATRIX_COLS:
bIsMatrix = true;
- nMatrixCols = sValue.toInt32();
+ nMatrixCols = static_cast<SCCOL>(sValue.toInt32());
break;
case XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_MATRIX_ROWS:
bIsMatrix = true;
- nMatrixRows = sValue.toInt32();
+ nMatrixRows = static_cast<SCROW>(sValue.toInt32());
break;
case XML_TOK_TABLE_ROW_CELL_ATTR_REPEATED:
- nCellsRepeated = std::max( sValue.toInt32(), (sal_Int32) 1 );
+ nCellsRepeated = static_cast<SCCOL>(std::max( sValue.toInt32(), (sal_Int32) 1 ));
break;
case XML_TOK_TABLE_ROW_CELL_ATTR_VALUE_TYPE:
nCellType = GetScImport().GetCellType(sValue);
@@ -407,8 +407,7 @@ SvXMLImportContext *ScXMLTableRowCellContext::CreateChildContext( sal_uInt16 nPr
}
OSL_ENSURE(bHasSubTable, "it should be a subtable");
pContext = new ScXMLTableContext( rXMLImport , nPrefix,
- rLName, xAttrList,
- true, nMergedCols);
+ rLName, xAttrList, true, static_cast<sal_Int32>(nMergedCols) );
nMergedCols = 1;
bIsMerged = false;
}
@@ -546,8 +545,8 @@ void ScXMLTableRowCellContext::SetCellProperties(const uno::Reference<table::XCe
ScUnoConversion::FillApiAddress( aCellAddress, aScCellAddress );
if (CellExists(aCellAddress) && pContentValidationName && !pContentValidationName->isEmpty())
{
- sal_Int32 nBottom = aCellAddress.Row + nRepeatedRows - 1;
- sal_Int32 nRight = aCellAddress.Column + nCellsRepeated - 1;
+ sal_Int32 nBottom = aCellAddress.Row + static_cast<sal_Int32>(nRepeatedRows) - 1;
+ sal_Int32 nRight = aCellAddress.Column + static_cast<sal_Int32>(nCellsRepeated) - 1;
if (nBottom > MAXROW)
nBottom = MAXROW;
if (nRight > MAXCOL)
@@ -776,7 +775,6 @@ void ScXMLTableRowCellContext::EndElement()
UniReference< XMLTextImportHelper > aTextImport = rXMLImport.GetTextImport();
if (aTextImport->GetCursor().is())
{
- //aTextImport->GetCursor()->gotoEnd(false);
if( aTextImport->GetCursor()->goLeft( 1, true ) )
{
aTextImport->GetText()->insertString(
@@ -796,7 +794,7 @@ void ScXMLTableRowCellContext::EndElement()
if (xCellRange.is())
{
if (bIsMerged)
- DoMerge(aScCellPos, static_cast<SCCOL>(nMergedCols - 1), static_cast<SCROW>(nMergedRows - 1));
+ DoMerge(aScCellPos, nMergedCols - 1, nMergedRows - 1);
if ( !pOUFormula )
{
::boost::optional< rtl::OUString > pOUText;
@@ -822,14 +820,14 @@ void ScXMLTableRowCellContext::EndElement()
mxAnnotationData.get() || pDetectiveObjVec || pCellRangeSource)
bIsEmpty = false;
- for (sal_Int32 i = 0; i < nCellsRepeated; ++i)
+ for (SCCOL i = 0; i < nCellsRepeated; ++i)
{
aScCurrentPos.SetCol( aScCurrentPos.Col() + i );
if (i > 0)
rTables.AddColumn(false);
if (!bIsEmpty)
{
- for (sal_Int32 j = 0; j < nRepeatedRows; ++j)
+ for (SCROW j = 0; j < nRepeatedRows; ++j)
{
aScCurrentPos.SetRow( aScCurrentPos.Row() + j );
if( (aScCurrentPos.Col() == 0) && (j > 0) )
@@ -1062,8 +1060,7 @@ void ScXMLTableRowCellContext::EndElement()
if (nMatrixCols > 0 && nMatrixRows > 0)
{
rTables.AddMatrixRange(
- aScCellPos.Col(),
- aScCellPos.Row(),
+ aScCellPos.Col(), aScCellPos.Row(),
aScCellPos.Col() + nMatrixCols - 1,
aScCellPos.Row() + nMatrixRows - 1,
pOUFormula->first, pOUFormula->second, eGrammar);
diff --git a/sc/source/filter/xml/xmlcelli.hxx b/sc/source/filter/xml/xmlcelli.hxx
index 858270a..e8fecfd 100644
--- a/sc/source/filter/xml/xmlcelli.hxx
+++ b/sc/source/filter/xml/xmlcelli.hxx
@@ -60,10 +60,12 @@ class ScXMLTableRowCellContext : public SvXMLImportContext
ScMyImpDetectiveObjVec* pDetectiveObjVec;
ScMyImpCellRangeSource* pCellRangeSource;
double fValue;
- sal_Int32 nMergedRows, nMergedCols;
- sal_Int32 nMatrixRows, nMatrixCols;
- sal_Int32 nRepeatedRows;
- sal_Int32 nCellsRepeated;
+ //~ sal_Int32 nMergedRows, nMergedCols;
+ //~ sal_Int32 nMatrixRows, nMatrixCols;
+ //~ sal_Int32 nRepeatedRows;
+ //~ sal_Int32 nCellsRepeated;
+ SCROW nMergedRows, nMatrixRows, nRepeatedRows;
+ SCCOL nMergedCols, nMatrixCols, nCellsRepeated;
ScXMLImport& rXMLImport;
formula::FormulaGrammar::Grammar eGrammar;
sal_Int16 nCellType;
diff --git a/sc/source/filter/xml/xmlrowi.cxx b/sc/source/filter/xml/xmlrowi.cxx
index edfe4e5..e2b055a 100644
--- a/sc/source/filter/xml/xmlrowi.cxx
+++ b/sc/source/filter/xml/xmlrowi.cxx
@@ -135,7 +135,7 @@ SvXMLImportContext *ScXMLTableRowContext::CreateChildContext( sal_uInt16 nPrefix
{
bHasCell = true;
pContext = new ScXMLTableRowCellContext( GetScImport(), nPrefix,
- rLName, xAttrList, false, nRepeatedRows
+ rLName, xAttrList, false, static_cast<SCROW>(nRepeatedRows)
//this
);
}
@@ -145,7 +145,7 @@ SvXMLImportContext *ScXMLTableRowContext::CreateChildContext( sal_uInt16 nPrefix
{
bHasCell = true;
pContext = new ScXMLTableRowCellContext( GetScImport(), nPrefix,
- rLName, xAttrList, true, nRepeatedRows
+ rLName, xAttrList, true, static_cast<SCROW>(nRepeatedRows)
//this
);
}
More information about the Libreoffice-commits
mailing list