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.deshm...@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 _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits