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

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Oct 9 07:28:17 UTC 2018


 chart2/qa/extras/chart2export.cxx                       |   10 ++++++++++
 chart2/qa/extras/data/odt/testPieChartWallLineStyle.odt |binary
 oox/source/export/chartexport.cxx                       |   11 +++++++++++
 3 files changed, 21 insertions(+)

New commits:
commit a1d4c2419097169cb2d51f7c11d90073766f6d9d
Author:     Balazs Varga <balazs.varga991 at gmail.com>
AuthorDate: Mon Oct 8 19:31:38 2018 +0200
Commit:     László Németh <nemeth at numbertext.org>
CommitDate: Tue Oct 9 09:27:56 2018 +0200

    tdf#120341 OOXML export: fix export of Pie Chart Wall Borderline
    
    Export LineStyle_NONE instead of default linestyle of PlotArea border,
    because LibreOffice make invisible the Wall shape properties in case of
    PIE/NET/FILLED_NET charts. Or other solution in the future is set the
    default LineStyle of these charts to LineStyle_NONE.
    
    Change-Id: I59e6f18058713f4a0d4c77da8760a319f9c25152
    Reviewed-on: https://gerrit.libreoffice.org/61547
    Tested-by: Jenkins
    Reviewed-by: László Németh <nemeth at numbertext.org>

diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index d170510e2294..c6efff2eaaa0 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -57,6 +57,7 @@ public:
     void testDisplayUnits();
     // void testFdo74115WallGradientFill();
     void testFdo74115WallBitmapFill();
+    void testPieChartWallLineStyle();
     void testBarChartRotation();
     void testShapeFollowedByChart();
     void testPieChartDataLabels();
@@ -140,6 +141,7 @@ public:
     CPPUNIT_TEST(testDisplayUnits);
     // CPPUNIT_TEST(testFdo74115WallGradientFill);
     CPPUNIT_TEST(testFdo74115WallBitmapFill);
+    CPPUNIT_TEST(testPieChartWallLineStyle);
     CPPUNIT_TEST(testBarChartRotation);
     CPPUNIT_TEST(testShapeFollowedByChart);
     CPPUNIT_TEST(testPieChartDataLabels);
@@ -712,6 +714,14 @@ void Chart2ExportTest::testFdo74115WallBitmapFill()
     assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:blipFill");
 }
 
+void Chart2ExportTest::testPieChartWallLineStyle()
+{
+    load("/chart2/qa/extras/data/odt/", "testPieChartWallLineStyle.odt");
+    xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text");
+    CPPUNIT_ASSERT(pXmlDoc);
+    assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:ln/a:noFill");
+}
+
 //The below test case tests the built in marker 'x' for Office 2010 in Line charts
 
 void Chart2ExportTest::testFdo78290LineChartMarkerX()
diff --git a/chart2/qa/extras/data/odt/testPieChartWallLineStyle.odt b/chart2/qa/extras/data/odt/testPieChartWallLineStyle.odt
new file mode 100644
index 000000000000..0e1ab533b15a
Binary files /dev/null and b/chart2/qa/extras/data/odt/testPieChartWallLineStyle.odt differ
diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 63958cdb3f7a..ded91c2b47d1 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -75,6 +75,7 @@
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/drawing/XShape.hpp>
 #include <com/sun/star/drawing/FillStyle.hpp>
+#include <com/sun/star/drawing/LineStyle.hpp>
 #include <com/sun/star/drawing/BitmapMode.hpp>
 #include <com/sun/star/awt/XBitmap.hpp>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
@@ -1178,6 +1179,16 @@ void ChartExport::exportPlotArea( const Reference< css::chart::XChartDocument >&
         Reference< beans::XPropertySet > xWallPropSet( xWallFloorSupplier->getWall(), uno::UNO_QUERY );
         if( xWallPropSet.is() )
         {
+            uno::Any aAny = xWallPropSet->getPropertyValue("LineStyle");
+            sal_Int32 eChartType = getChartType( );
+            // Export LineStyle_NONE instead of default linestyle of PlotArea border, because LibreOffice
+            // make invisible the Wall shape properties, in case of these charts. Or in the future set
+            // the default LineStyle of these charts to LineStyle_NONE.
+            bool noSupportWallProp = ( (eChartType == chart::TYPEID_PIE) || (eChartType == chart::TYPEID_RADARLINE) || (eChartType == chart::TYPEID_RADARAREA) );
+            if ( noSupportWallProp && (aAny != drawing::LineStyle_NONE) )
+            {
+                xWallPropSet->setPropertyValue( "LineStyle", uno::Any(drawing::LineStyle_NONE) );
+            }
             exportShapeProps( xWallPropSet );
         }
     }


More information about the Libreoffice-commits mailing list