tdf#91250 Chart DOCX Import: Fix decimal place formatting issue
Use UNLIMITED_PRECISION in case of GENERAL number format of CATEGORY axis labels in embedded charts, just like Calc does. Change-Id: I30cb50955c67824bd1aa88fb139618ce0f0974fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95802 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
This commit is contained in:
parent
0c0f4b1531
commit
f66fbd4fb5
3 changed files with 25 additions and 0 deletions
|
@ -161,6 +161,7 @@ public:
|
|||
void testTdf119138MissingAutoTitleDeleted();
|
||||
void testStockChartShiftedCategoryPosition();
|
||||
void testTdf133376();
|
||||
void testTdf91250();
|
||||
|
||||
CPPUNIT_TEST_SUITE(Chart2ImportTest);
|
||||
CPPUNIT_TEST(Fdo60083);
|
||||
|
@ -270,6 +271,7 @@ public:
|
|||
CPPUNIT_TEST(testTdf119138MissingAutoTitleDeleted);
|
||||
CPPUNIT_TEST(testStockChartShiftedCategoryPosition);
|
||||
CPPUNIT_TEST(testTdf133376);
|
||||
CPPUNIT_TEST(testTdf91250);
|
||||
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
|
||||
|
@ -2523,6 +2525,26 @@ void Chart2ImportTest::testTdf133376()
|
|||
CPPUNIT_ASSERT_DOUBLES_EQUAL(5269, aLabelPosition.Y, 30);
|
||||
}
|
||||
|
||||
void Chart2ImportTest::testTdf91250()
|
||||
{
|
||||
load("/chart2/qa/extras/data/docx/", "tdf91250.docx");
|
||||
uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT(xChartDoc.is());
|
||||
Reference<chart2::XInternalDataProvider> xInternalProvider(xChartDoc->getDataProvider(), uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT(xInternalProvider.is());
|
||||
|
||||
Reference<chart::XComplexDescriptionAccess> xDescAccess(xInternalProvider, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT(xDescAccess.is());
|
||||
|
||||
// Get the category labels.
|
||||
Sequence<OUString> aCategories = xDescAccess->getRowDescriptions();
|
||||
CPPUNIT_ASSERT_EQUAL(sal_Int32(4), aCategories.getLength());
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("12.3254"), aCategories[0]);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("11.62315"), aCategories[1]);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("9.26"), aCategories[2]);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("8.657"), aCategories[3]);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest);
|
||||
|
||||
CPPUNIT_PLUGIN_IMPLEMENT();
|
||||
|
|
BIN
chart2/qa/extras/data/docx/tdf91250.docx
Normal file
BIN
chart2/qa/extras/data/docx/tdf91250.docx
Normal file
Binary file not shown.
|
@ -127,6 +127,9 @@ void DoubleSequenceContext::onCharacters( const OUString& rChars )
|
|||
double fValue = rChars.toDouble();
|
||||
::Color* pColor = nullptr;
|
||||
OUString aFormattedValue;
|
||||
// tdf#91250: use UNLIMITED_PRECISION in case of GENERAL Number Format of category axis labels
|
||||
if( pNumFrmt->GetStandardPrec() != SvNumberFormatter::UNLIMITED_PRECISION )
|
||||
pNumFrmt->ChangeStandardPrec(SvNumberFormatter::UNLIMITED_PRECISION);
|
||||
pNumFrmt->GetOutputString( fValue, nKey, aFormattedValue, &pColor );
|
||||
mrModel.maData[ mnPtIndex ] <<= aFormattedValue;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue