chart2/source/view/charttypes/VSeriesPlotter.cxx |    8 +++++++-
 sw/qa/extras/layout/data/tdf134866.docx          |binary
 sw/qa/extras/layout/layout.cxx                   |   16 ++++++++++++++++
 3 files changed, 23 insertions(+), 1 deletion(-)

New commits:
commit a3f1a891ba347f4035ba2925f9f05aa6f1cf9bf1
Author:     Tünde Tóth <tund...@gmail.com>
AuthorDate: Fri Jul 24 10:06:40 2020 +0200
Commit:     Gabor Kelemen <kelemen.gab...@nisz.hu>
CommitDate: Thu Sep 17 14:02:34 2020 +0200

    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 <nem...@numbertext.org>
    Reviewed-by: László Németh <nem...@numbertext.org>
    (cherry picked from commit c0fac974cefffb16e811259fbc66148712533190)
    
    Change-Id: I2fe9cbca876da26a7c3a371c1e711b9e1fc33b1e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102770
    Tested-by: Gabor Kelemen <kelemen.gab...@nisz.hu>
    Reviewed-by: Gabor Kelemen <kelemen.gab...@nisz.hu>

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
Binary files /dev/null and b/sw/qa/extras/layout/data/tdf134866.docx 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");
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to