[Libreoffice-commits] core.git: chart2/qa oox/source

Rohit Deshmukh rohit.deshmukh at synerzip.com
Sat Feb 15 06:18:24 CET 2014


 chart2/qa/extras/chart2export.cxx                  |    9 +++++++++
 chart2/qa/extras/data/docx/PieChartDataLabels.docx |binary
 oox/source/drawingml/chart/seriesconverter.cxx     |    5 +++--
 3 files changed, 12 insertions(+), 2 deletions(-)

New commits:
commit a05ad6dd36f73647cdf0839d2c18dbc1d399c792
Author: Rohit Deshmukh <rohit.deshmukh at synerzip.com>
Date:   Thu Feb 6 17:34:20 2014 +0530

    fdo#74137: Fix for courruption of Pie chart after roundtrip.
    
    Problem:
      - Pie chart with data labels files gets corrupt because of label position is
        bestFit in original file.
      - But after round trip, data labels position gets changes to top, left and right.
        For some data labels postion value is missing.
    Implementaion:
      - In LO, while converting data label from model, the position gets changed.
        So we are ignoring this hack for Pie chart.
    
    Conflicts:
    	chart2/qa/extras/chart2export.cxx
    
    Change-Id: Ic51845cd6f39bc905439eea8971e878607d25dac

diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index c15f5af..b7b3668 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -47,6 +47,7 @@ public:
     void testFdo74115WallBitmapFill();
     void testBarChartRotation();
     void testShapeFollowedByChart();
+    void testPieChartDataLabels();
 
     CPPUNIT_TEST_SUITE(Chart2ExportTest);
     CPPUNIT_TEST(test);
@@ -66,6 +67,7 @@ public:
     CPPUNIT_TEST(testFdo74115WallBitmapFill);
     CPPUNIT_TEST(testBarChartRotation);
     CPPUNIT_TEST(testShapeFollowedByChart);
+    CPPUNIT_TEST(testPieChartDataLabels);
     CPPUNIT_TEST_SUITE_END();
 
 protected:
@@ -598,7 +600,14 @@ void Chart2ExportTest::testShapeFollowedByChart()
     OUString aValueOfFirstDocPR = getXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:drawing[1]/wp:inline[1]/wp:docPr[1]", "id");
     OUString aValueOfSecondDocPR = getXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[2]/mc:AlternateContent[1]/mc:Choice[1]/w:drawing[1]/wp:anchor[1]/wp:docPr[1]", "id");
     CPPUNIT_ASSERT( aValueOfFirstDocPR != aValueOfSecondDocPR );
+}
 
+void Chart2ExportTest::testPieChartDataLabels()
+{
+    load("/chart2/qa/extras/data/docx/", "PieChartDataLabels.docx");
+    xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text");
+    CPPUNIT_ASSERT(pXmlDoc);
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pie3DChart/c:ser[1]/c:dLbls/c:dLbl[1]/c:dLblPos", "val", "bestFit");
 }
 
 CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest);
diff --git a/chart2/qa/extras/data/docx/PieChartDataLabels.docx b/chart2/qa/extras/data/docx/PieChartDataLabels.docx
new file mode 100644
index 0000000..99a72c0
Binary files /dev/null and b/chart2/qa/extras/data/docx/PieChartDataLabels.docx differ
diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx
index 5c85d99..668847c 100644
--- a/oox/source/drawingml/chart/seriesconverter.cxx
+++ b/oox/source/drawingml/chart/seriesconverter.cxx
@@ -185,8 +185,9 @@ void DataLabelConverter::convertFromModel( const Reference< XDataSeries >& rxDat
     {
         PropertySet aPropSet( rxDataSeries->getDataPointByIndex( mrModel.mnIndex ) );
         lclConvertLabelFormatting( aPropSet, getFormatter(), mrModel, rTypeGroup, false );
-
-        if( mrModel.mxLayout && !mrModel.mxLayout->mbAutoLayout )
+        const TypeGroupInfo& rTypeInfo = rTypeGroup.getTypeInfo();
+        bool bIsPie = rTypeInfo.meTypeCategory == TYPECATEGORY_PIE;
+        if( mrModel.mxLayout && !mrModel.mxLayout->mbAutoLayout && !bIsPie )
         {
             // bnc#694340 - nasty hack - chart2 cannot individually
             // place data labels, let's try to find a useful


More information about the Libreoffice-commits mailing list