summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTünde Tóth <tundeth@gmail.com>2020-07-24 10:06:40 +0200
committerGabor Kelemen <kelemen.gabor2@nisz.hu>2020-09-17 14:02:34 +0200
commita3f1a891ba347f4035ba2925f9f05aa6f1cf9bf1 (patch)
tree754e32f66d2b5618b758cfe5a9fc13d93451009d
parent0fc835f5d9effe1b53b563583adda879b83f1d2a (diff)
tdf#134866 Chart OOXML import: fix percentage in custom pie chart label
Custom pie chart label showed incorrect percentage value. Follow-up of commit 8c1dc30cc9fc96ef3d3ab0c4445959473248ae4d (tdf#125444 Percentage as custom chart label). Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99353 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit c0fac974cefffb16e811259fbc66148712533190) Change-Id: I2fe9cbca876da26a7c3a371c1e711b9e1fc33b1e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102770 Tested-by: Gabor Kelemen <kelemen.gabor2@nisz.hu> Reviewed-by: Gabor Kelemen <kelemen.gabor2@nisz.hu>
-rw-r--r--chart2/source/view/charttypes/VSeriesPlotter.cxx8
-rw-r--r--sw/qa/extras/layout/data/tdf134866.docxbin0 -> 27169 bytes
-rw-r--r--sw/qa/extras/layout/layout.cxx16
3 files changed, 23 insertions, 1 deletions
diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx
index 5acd2d587914..e0b25ba74811 100644
--- a/chart2/source/view/charttypes/VSeriesPlotter.cxx
+++ b/chart2/source/view/charttypes/VSeriesPlotter.cxx
@@ -530,7 +530,13 @@ uno::Reference< drawing::XShape > VSeriesPlotter::createDataLabel( const uno::Re
}
case DataPointCustomLabelFieldType_PERCENTAGE:
{
- aTextList[i] = getLabelTextForValue( rDataSeries, nPointIndex, fValue, true );
+ if(fSumValue == 0.0)
+ fSumValue = 1.0;
+ fValue /= fSumValue;
+ if(fValue < 0)
+ fValue *= -1.0;
+
+ aTextList[i] = getLabelTextForValue(rDataSeries, nPointIndex, fValue, true);
break;
}
case DataPointCustomLabelFieldType_CELLREF:
diff --git a/sw/qa/extras/layout/data/tdf134866.docx b/sw/qa/extras/layout/data/tdf134866.docx
new file mode 100644
index 000000000000..3358b527133c
--- /dev/null
+++ b/sw/qa/extras/layout/data/tdf134866.docx
Binary files differ
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index adb19aee2646..ade9607847de 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -2687,6 +2687,22 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf129173)
pXmlDoc, "/metafile/push[1]/push[1]/push[1]/push[4]/push[1]/textarray[22]/text", "56");
}
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf134866)
+{
+ SwDoc* pDoc = createDoc("tdf134866.docx");
+ SwDocShell* pShell = pDoc->GetDocShell();
+
+ // Dump the rendering of the first page as an XML file.
+ std::shared_ptr<GDIMetaFile> xMetaFile = pShell->GetPreviewMetaFile();
+ MetafileXmlDump dumper;
+ xmlDocPtr pXmlDoc = dumpAndParse(dumper, *xMetaFile);
+ CPPUNIT_ASSERT(pXmlDoc);
+
+ // Check the data label of pie chart.
+ assertXPathContent(
+ pXmlDoc, "/metafile/push[1]/push[1]/push[1]/push[4]/push[1]/textarray[2]/text", "100%");
+}
+
CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf129095)
{
SwDoc* pDoc = createDoc("tdf129095.docx");