From a7052b906dfd1d749f7da9ea64a3479d7c1cc2c9 Mon Sep 17 00:00:00 2001 From: PriyankaGaikwad Date: Wed, 27 Aug 2014 19:28:44 +0530 Subject: [PATCH] fdo#83058 File corrupt due to data label position is invalid in chart.xml - File getting corrupted after RT due to data label position is invalid in chart.xml - LO must not export invalid label position property if chart type doesn't support that positioning in MS Office. - For clusterd bar chart XML Difference chart1.xml Original file ... ... Roundtrip file ... ... Change-Id: I9cae11b8d198aaa70fb05cb3bf329cd898519170 Reviewed-on: https://gerrit.libreoffice.org/11141 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida --- chart2/qa/extras/chart2export.cxx | 15 +++++++++++++- .../qa/extras/data/docx/fdo83058_dlblPos.docx | Bin 0 -> 35931 bytes include/oox/export/chartexport.hxx | 1 - oox/source/export/chartexport.cxx | 19 +++++++++++++----- 4 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 chart2/qa/extras/data/docx/fdo83058_dlblPos.docx diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index fc2930537494..66f5b90a9bfc 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -79,6 +79,7 @@ public: void testDataLabelDoughnutChartDOCX(); void testDataLabelAreaChartDOCX(); void testDataLabelDefaultLineChartDOCX(); + void testFdo83058dlblPos(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(test); @@ -123,6 +124,7 @@ public: CPPUNIT_TEST(testDataLabelDoughnutChartDOCX); CPPUNIT_TEST(testDataLabelAreaChartDOCX); CPPUNIT_TEST(testDataLabelDefaultLineChartDOCX); + CPPUNIT_TEST(testFdo83058dlblPos); CPPUNIT_TEST_SUITE_END(); protected: @@ -867,7 +869,7 @@ void Chart2ExportTest::testDataLabelClusteredBarChartDOCX() CPPUNIT_ASSERT(pXmlDoc); // This was "t", should be one of the allowed values. - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:dLbls/c:dLbl[2]/c:dLblPos", "val", "ctr"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:dLbls/c:dLbl[2]/c:dLblPos", "val", "outEnd"); } void Chart2ExportTest::testDataLabelRadarChartDOCX() @@ -1186,6 +1188,17 @@ void Chart2ExportTest::testLabelStringODS() CPPUNIT_ASSERT_EQUAL(OUString("\"LabelName\""), aLabelString); } +void Chart2ExportTest::testFdo83058dlblPos() +{ + load ("/chart2/qa/extras/data/docx/", "fdo83058_dlblPos.docx"); + xmlDocPtr pXmlDoc = parseExport("word/charts/chart","Office Open XML Text"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:dLbls[1]/c:dLbl[2]/c:dLblPos", "val", "outEnd"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:dLbls[1]/c:dLbl[3]/c:dLblPos", "val", "outEnd"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:dLbls[1]/c:dLbl[4]/c:dLblPos", "val", "outEnd"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:dLbls[1]/c:dLbl[5]/c:dLblPos", "val", "outEnd"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/fdo83058_dlblPos.docx b/chart2/qa/extras/data/docx/fdo83058_dlblPos.docx new file mode 100644 index 0000000000000000000000000000000000000000..721a717897b3dfe344f4b4019174b89fc0990b93 GIT binary patch literal 35931 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 literal 0 HcmV?d00001 diff --git a/include/oox/export/chartexport.hxx b/include/oox/export/chartexport.hxx index 3d5604753c1c..b76811df6376 100644 --- a/include/oox/export/chartexport.hxx +++ b/include/oox/export/chartexport.hxx @@ -99,7 +99,6 @@ private: bool mbIs3DChart; bool mbStacked; bool mbPercent; - bool mbClustered; private: sal_Int32 getChartType(); diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 727d3072fea9..743715224287 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -446,7 +446,6 @@ ChartExport::ChartExport( sal_Int32 nXmlNamespace, FSHelperPtr pFS, Reference< f , mbIs3DChart( false ) , mbStacked(false) , mbPercent(false) - , mbClustered(false) { } @@ -2656,13 +2655,15 @@ void ChartExport::exportDataLabels( aParam.mbExport = !mbIs3DChart; aParam.meDefault = rInfo.mnDefLabelPos; aParam.allowAll(); - switch (getChartType()) // diagram chart type + switch (eChartType) // diagram chart type { case chart::TYPEID_PIE: + if(getChartType() == chart::TYPEID_DOUGHNUT) + aParam.mbExport = false; + else // All pie charts support label placement. aParam.mbExport = true; break; - case chart::TYPEID_DOUGHNUT: case chart::TYPEID_AREA: case chart::TYPEID_RADARLINE: case chart::TYPEID_RADARAREA: @@ -2670,7 +2671,7 @@ void ChartExport::exportDataLabels( aParam.mbExport = false; break; case chart::TYPEID_BAR: - if (mbStacked || mbPercent || mbClustered) + if (mbStacked || mbPercent) { aParam.maAllowedValues.clear(); aParam.maAllowedValues.insert(css::chart::DataLabelPlacement::CENTER); @@ -2678,6 +2679,15 @@ void ChartExport::exportDataLabels( aParam.maAllowedValues.insert(css::chart::DataLabelPlacement::NEAR_ORIGIN); aParam.meDefault = css::chart::DataLabelPlacement::CENTER; } + else // Clustered bar chart + { + aParam.maAllowedValues.clear(); + aParam.maAllowedValues.insert(css::chart::DataLabelPlacement::CENTER); + aParam.maAllowedValues.insert(css::chart::DataLabelPlacement::INSIDE); + aParam.maAllowedValues.insert(css::chart::DataLabelPlacement::OUTSIDE); + aParam.maAllowedValues.insert(css::chart::DataLabelPlacement::NEAR_ORIGIN); + aParam.meDefault = css::chart::DataLabelPlacement::OUTSIDE; + } break; default: ; @@ -2818,7 +2828,6 @@ void ChartExport::exportGrouping( bool isBar ) if( isBar && !isDeep3dChart() ) { grouping = "clustered"; - mbClustered = true; } else grouping = "standard";