[Libreoffice-commits] core.git: sc/qa sc/source
Noel Grandin
noel at peralex.com
Tue Dec 9 04:45:51 PST 2014
sc/qa/unit/data/xls/chartx.xls |binary
sc/qa/unit/subsequent_filters-test.cxx | 20 ++++++++++++++++++++
sc/source/filter/inc/xlescher.hxx | 20 ++++++++++++++++++++
3 files changed, 40 insertions(+)
New commits:
commit 6b5481c0260343800518192918ddf932ee5ae527
Author: Noel Grandin <noel at peralex.com>
Date: Thu Nov 27 14:58:39 2014 +0200
fdo#82312 - Excel chart has a wrong size
bug introduced in commit 0c7f35277575fee8594737f5b2842dfac2c6d04f
"remove SvStream::operator>> methods"
Change-Id: I72a1c05b3a4a3f3a250055775eb2d35b3114406d
Reviewed-on: https://gerrit.libreoffice.org/13151
Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
diff --git a/sc/qa/unit/data/xls/chartx.xls b/sc/qa/unit/data/xls/chartx.xls
new file mode 100644
index 0000000..2294c15
Binary files /dev/null and b/sc/qa/unit/data/xls/chartx.xls differ
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index be1955d..39a75c1 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -146,6 +146,7 @@ public:
//test shape import
void testControlImport();
void testChartImportODS();
+ void testChartImportXLS();
void testNumberFormatHTML();
void testNumberFormatCSV();
@@ -215,6 +216,7 @@ public:
CPPUNIT_TEST(testRowIndex1BasedXLSX);
CPPUNIT_TEST(testControlImport);
CPPUNIT_TEST(testChartImportODS);
+ CPPUNIT_TEST(testChartImportXLS);
CPPUNIT_TEST(testDataBarODS);
CPPUNIT_TEST(testDataBarXLSX);
@@ -1503,6 +1505,23 @@ void ScFiltersTest::testChartImportODS()
xDocSh->DoClose();
}
+void ScFiltersTest::testChartImportXLS()
+{
+ ScDocShellRef xDocSh = loadDoc("chartx.", XLS);
+ CPPUNIT_ASSERT_MESSAGE("Failed to load chartx.xls.", xDocSh.Is());
+
+ ScDocument& rDoc = xDocSh->GetDocument();
+
+ // Retrieve the chart object instance from the 2nd page (for the 2nd sheet).
+ const SdrOle2Obj* pOleObj = getSingleChartObject(rDoc, 0);
+ CPPUNIT_ASSERT_MESSAGE("Failed to retrieve a chart object from the 2nd sheet.", pOleObj);
+
+ CPPUNIT_ASSERT_EQUAL(11148L, pOleObj->GetLogicRect().getWidth());
+ CPPUNIT_ASSERT_EQUAL(8635L, pOleObj->GetLogicRect().getHeight());
+
+ xDocSh->DoClose();
+}
+
void ScFiltersTest::testNumberFormatHTML()
{
ScDocShellRef xDocSh = loadDoc("numberformat.", HTML);
@@ -2679,3 +2698,4 @@ CPPUNIT_TEST_SUITE_REGISTRATION(ScFiltersTest);
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+
diff --git a/sc/source/filter/inc/xlescher.hxx b/sc/source/filter/inc/xlescher.hxx
index a97882d..90ef41c 100644
--- a/sc/source/filter/inc/xlescher.hxx
+++ b/sc/source/filter/inc/xlescher.hxx
@@ -321,6 +321,26 @@ inline SvStream& operator>>( SvStream& rStrm, XclObjAnchor& rAnchor )
return rStrm;
}
+// creates read method for XclImpStream
+template< typename StreamType >
+StreamType& operator>>( StreamType& rStrm, XclObjAnchor& rAnchor )
+{
+ sal_uInt16 tmpFirstRow, tmpTY, tmpLastRow, tmpBY;
+
+ rStrm
+ >> rAnchor.maFirst.mnCol >> rAnchor.mnLX
+ >> tmpFirstRow >> tmpTY
+ >> rAnchor.maLast.mnCol >> rAnchor.mnRX
+ >> tmpLastRow >> tmpBY;
+
+ rAnchor.maFirst.mnRow = static_cast<sal_uInt32> (tmpFirstRow);
+ rAnchor.mnTY = static_cast<sal_uInt32> (tmpTY);
+ rAnchor.maLast.mnRow = static_cast<sal_uInt32> (tmpLastRow);
+ rAnchor.mnBY = static_cast<sal_uInt32> (tmpBY);
+
+ return rStrm;
+}
+
template< typename StreamType >
StreamType& operator<<( StreamType& rStrm, const XclObjAnchor& rAnchor )
{
More information about the Libreoffice-commits
mailing list