sc/qa/unit/units.cxx | 20 ++++++++++++++++++++ sc/source/core/units/unitsimpl.cxx | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-)
New commits: commit 122874c94da9da8b5a05bef3f883338fb68cd32e Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Jun 30 09:25:29 2015 +0200 add test case for unit conversion Change-Id: I726758c93b25ed16b5708a71645004537f32ac76 diff --git a/sc/qa/unit/units.cxx b/sc/qa/unit/units.cxx index 1dbf74f..ee6af8a 100644 --- a/sc/qa/unit/units.cxx +++ b/sc/qa/unit/units.cxx @@ -14,6 +14,8 @@ #include "helper/qahelper.hxx" +#include "rangelst.hxx" + #include <com/sun/star/util/NumberFormat.hpp> using namespace sc::units; @@ -50,6 +52,7 @@ public: void testUnitsCompatible(); void testCellConversion(); + void testConvertCellUnits(); void testUnitsForRange(); void testRangeConversion(); @@ -64,6 +67,7 @@ public: CPPUNIT_TEST(testUnitsCompatible); CPPUNIT_TEST(testCellConversion); + CPPUNIT_TEST(testConvertCellUnits); CPPUNIT_TEST(testUnitsForRange); CPPUNIT_TEST(testRangeConversion); @@ -877,6 +881,22 @@ void UnitsTest::testRangeConversion() { // 3. actual sensible ranges } +void UnitsTest::testConvertCellUnits() +{ + mpDoc->EnsureTable(0); + + // Set up a column with a normal header and a few data values + ScAddress aAddress(20, 0, 0); + mpDoc->SetString(aAddress, "100km"); + ScRange aRange(aAddress); + ScRangeList aRangeList(aRange); + OUString aOutput("miles"); + bool bConverted = mpUnitsImpl->convertCellUnits(aRangeList, mpDoc, aOutput); + CPPUNIT_ASSERT(bConverted); + double nVal = mpDoc->GetValue(aAddress); + CPPUNIT_ASSERT_DOUBLES_EQUAL(62.1371192932129, nVal, 1e-14); +} + CPPUNIT_TEST_SUITE_REGISTRATION(UnitsTest); CPPUNIT_PLUGIN_IMPLEMENT(); commit 4f50fc6d1740a47220c4cbafd91af9bde80113b9 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Jun 30 09:25:07 2015 +0200 fix crash when converting units Change-Id: Ic883e13b5c6923c31e65a887597f0910807dc94d diff --git a/sc/source/core/units/unitsimpl.cxx b/sc/source/core/units/unitsimpl.cxx index 7d16ae3..4f0057c 100644 --- a/sc/source/core/units/unitsimpl.cxx +++ b/sc/source/core/units/unitsimpl.cxx @@ -780,7 +780,7 @@ bool UnitsImpl::convertCellUnitsForColumnRange(const ScRange& rRange, } } - bool bLocalAnnotationRequired = (!rRange.In(*aHeader.address)) && + bool bLocalAnnotationRequired = (aHeader.address && !rRange.In(*aHeader.address)) && (rOutputUnit != aHeader.unit); double nValue = pDoc->GetValue(aCurrent); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits