chart2/qa/extras/chart2export.cxx | 102 ++++++++++ chart2/qa/extras/data/docx/testChartTitlePropertiesBitmapFill.docx |binary chart2/qa/extras/data/docx/testChartTitlePropertiesColorFill.docx |binary chart2/qa/extras/data/docx/testChartTitlePropertiesGradientFill.docx |binary chart2/qa/extras/data/pptx/testChartTitlePropertiesBitmapFill.pptx |binary chart2/qa/extras/data/pptx/testChartTitlePropertiesColorFill.pptx |binary chart2/qa/extras/data/pptx/testChartTitlePropertiesGradientFill.pptx |binary chart2/qa/extras/data/xlsx/testChartTitlePropertiesBitmapFill.xlsx |binary chart2/qa/extras/data/xlsx/testChartTitlePropertiesColorFill.xlsx |binary chart2/qa/extras/data/xlsx/testChartTitlePropertiesGradientFill.xlsx |binary include/oox/export/chartexport.hxx | 1 oox/source/export/chartexport.cxx | 22 -- oox/source/export/drawingml.cxx | 9 13 files changed, 116 insertions(+), 18 deletions(-)
New commits: commit e3cad36dbcad73f41b921cd079317c20e770c249 Author: Balazs Varga <[email protected]> AuthorDate: Mon Jul 23 21:13:09 2018 +0200 Commit: Bartosz Kosiorek <[email protected]> CommitDate: Tue Jul 31 13:10:34 2018 +0200 tdf#108078 OOXML Export Chart shapes area fill properties Verified with color, gradient, bitmap for: Chart Title in DOCX, XLSX and PPTX. Also verified with gradient, bitmap for Chart Legend, Plot Area, Dataseries and Background in DOCX, XLSX and PPTX. Change-Id: I15d29f3ca2d75f45f612766b635d50a29d8551ae Reviewed-on: https://gerrit.libreoffice.org/57880 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <[email protected]> (cherry picked from commit 051399740e41c6495ed362e78c63e0868bcd180c) Reviewed-on: https://gerrit.libreoffice.org/58349 Reviewed-by: Balazs Varga <[email protected]> diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 9b9e75c868c2..458a2e809631 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -80,6 +80,9 @@ public: void testDataLabelDoughnutChartDOCX(); void testDataLabelAreaChartDOCX(); void testDataLabelDefaultLineChartDOCX(); + void testChartTitlePropertiesColorFillDOCX(); + void testChartTitlePropertiesGradientFillDOCX(); + void testChartTitlePropertiesBitmapFillDOCX(); void testFdo83058dlblPos(); void testAutoTitleDelXLSX(); void testDispBlanksAsXLSX(); @@ -94,6 +97,9 @@ public: void testTitleManualLayoutXLSX(); void testPlotAreaManualLayoutXLSX(); void testLegendManualLayoutXLSX(); + void testChartTitlePropertiesColorFillXLSX(); + void testChartTitlePropertiesGradientFillXLSX(); + void testChartTitlePropertiesBitmapFillXLSX(); void testAxisCharacterPropertiesXLSX(); void testTitleCharacterPropertiesXLSX(); void testPlotVisOnlyXLSX(); @@ -102,6 +108,9 @@ public: void testAxisTitleRotationXLSX(); void testAxisCrossBetweenXSLX(); void testNumberFormatExportPPTX(); + void testChartTitlePropertiesColorFillPPTX(); + void testChartTitlePropertiesGradientFillPPTX(); + void testChartTitlePropertiesBitmapFillPPTX(); void testTdf116163(); CPPUNIT_TEST_SUITE(Chart2ExportTest); @@ -147,6 +156,9 @@ public: CPPUNIT_TEST(testDataLabelDoughnutChartDOCX); CPPUNIT_TEST(testDataLabelAreaChartDOCX); CPPUNIT_TEST(testDataLabelDefaultLineChartDOCX); + CPPUNIT_TEST(testChartTitlePropertiesColorFillDOCX); + CPPUNIT_TEST(testChartTitlePropertiesGradientFillDOCX); + CPPUNIT_TEST(testChartTitlePropertiesBitmapFillDOCX); CPPUNIT_TEST(testFdo83058dlblPos); CPPUNIT_TEST(testAutoTitleDelXLSX); CPPUNIT_TEST(testDispBlanksAsXLSX); @@ -161,6 +173,9 @@ public: CPPUNIT_TEST(testTitleManualLayoutXLSX); CPPUNIT_TEST(testPlotAreaManualLayoutXLSX); CPPUNIT_TEST(testLegendManualLayoutXLSX); + CPPUNIT_TEST(testChartTitlePropertiesColorFillXLSX); + CPPUNIT_TEST(testChartTitlePropertiesGradientFillXLSX); + CPPUNIT_TEST(testChartTitlePropertiesBitmapFillXLSX); CPPUNIT_TEST(testAxisCharacterPropertiesXLSX); CPPUNIT_TEST(testTitleCharacterPropertiesXLSX); CPPUNIT_TEST(testPlotVisOnlyXLSX); @@ -169,6 +184,9 @@ public: CPPUNIT_TEST(testAxisTitleRotationXLSX); CPPUNIT_TEST(testAxisCrossBetweenXSLX); CPPUNIT_TEST(testNumberFormatExportPPTX); + CPPUNIT_TEST(testChartTitlePropertiesColorFillPPTX); + CPPUNIT_TEST(testChartTitlePropertiesGradientFillPPTX); + CPPUNIT_TEST(testChartTitlePropertiesBitmapFillPPTX); CPPUNIT_TEST(testTdf116163); CPPUNIT_TEST_SUITE_END(); @@ -1049,6 +1067,34 @@ void Chart2ExportTest::testDataLabelDefaultLineChartDOCX() CPPUNIT_ASSERT_EQUAL_MESSAGE("Line chart's default label placement should be 'right'.", chart::DataLabelPlacement::RIGHT, nLabelPlacement ); } +void Chart2ExportTest::testChartTitlePropertiesColorFillDOCX() +{ + load("/chart2/qa/extras/data/docx/", "testChartTitlePropertiesColorFill.docx"); + xmlDocPtr pXmlDoc = parseExport("word/charts/chart","Office Open XML Text"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:solidFill/a:srgbClr", "val", "ff0000"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); +} + +void Chart2ExportTest::testChartTitlePropertiesGradientFillDOCX() +{ + load("/chart2/qa/extras/data/docx/", "testChartTitlePropertiesGradientFill.docx"); + xmlDocPtr pXmlDoc = parseExport("word/charts/chart","Office Open XML Text"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:gradFill/a:gsLst/a:gs[1]/a:srgbClr", "val", "cccccc"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:gradFill/a:gsLst/a:gs[2]/a:srgbClr", "val", "666666"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); +} + +void Chart2ExportTest::testChartTitlePropertiesBitmapFillDOCX() +{ + load("/chart2/qa/extras/data/docx/", "testChartTitlePropertiesBitmapFill.docx"); + xmlDocPtr pXmlDoc = parseExport("word/charts/chart","Office Open XML Text"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:blipFill/a:blip", "embed", "rId1"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); +} + void Chart2ExportTest::testBarChartRotation() { load ("/chart2/qa/extras/data/docx/", "barChartRotation.docx"); @@ -1486,6 +1532,34 @@ void Chart2ExportTest::testLegendManualLayoutXLSX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:legend/c:txPr/a:p/a:pPr/a:defRPr", "sz", "900"); } +void Chart2ExportTest::testChartTitlePropertiesColorFillXLSX() +{ + load("/chart2/qa/extras/data/xlsx/", "testChartTitlePropertiesColorFill.xlsx"); + xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:solidFill/a:srgbClr", "val", "ff0000"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); +} + +void Chart2ExportTest::testChartTitlePropertiesGradientFillXLSX() +{ + load("/chart2/qa/extras/data/xlsx/", "testChartTitlePropertiesGradientFill.xlsx"); + xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:gradFill/a:gsLst/a:gs[1]/a:srgbClr", "val", "cccccc"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:gradFill/a:gsLst/a:gs[2]/a:srgbClr", "val", "666666"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); +} + +void Chart2ExportTest::testChartTitlePropertiesBitmapFillXLSX() +{ + load("/chart2/qa/extras/data/xlsx/", "testChartTitlePropertiesBitmapFill.xlsx"); + xmlDocPtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:blipFill/a:blip", "embed", "rId1"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); +} + void Chart2ExportTest::testAxisCharacterPropertiesXLSX() { load("/chart2/qa/extras/data/xlsx/", "axis_character_properties.xlsx"); @@ -1575,6 +1649,34 @@ void Chart2ExportTest::testNumberFormatExportPPTX() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:numFmt", "sourceLinked", "0"); } +void Chart2ExportTest::testChartTitlePropertiesColorFillPPTX() +{ + load("/chart2/qa/extras/data/pptx/", "testChartTitlePropertiesColorFill.pptx"); + xmlDocPtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:solidFill/a:srgbClr", "val", "ff0000"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); +} + +void Chart2ExportTest::testChartTitlePropertiesGradientFillPPTX() +{ + load("/chart2/qa/extras/data/pptx/", "testChartTitlePropertiesGradientFill.pptx"); + xmlDocPtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:gradFill/a:gsLst/a:gs[1]/a:srgbClr", "val", "f6f8fc"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:gradFill/a:gsLst/a:gs[2]/a:srgbClr", "val", "c7d5ed"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); +} + +void Chart2ExportTest::testChartTitlePropertiesBitmapFillPPTX() +{ + load("/chart2/qa/extras/data/pptx/", "testChartTitlePropertiesBitmapFill.pptx"); + xmlDocPtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:blipFill/a:blip", "embed", "rId1"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); +} + void Chart2ExportTest::testTdf116163() { load("/chart2/qa/extras/data/pptx/", "tdf116163.pptx"); diff --git a/chart2/qa/extras/data/docx/testChartTitlePropertiesBitmapFill.docx b/chart2/qa/extras/data/docx/testChartTitlePropertiesBitmapFill.docx new file mode 100644 index 000000000000..462c15976a04 Binary files /dev/null and b/chart2/qa/extras/data/docx/testChartTitlePropertiesBitmapFill.docx differ diff --git a/chart2/qa/extras/data/docx/testChartTitlePropertiesColorFill.docx b/chart2/qa/extras/data/docx/testChartTitlePropertiesColorFill.docx new file mode 100644 index 000000000000..d86928d615f3 Binary files /dev/null and b/chart2/qa/extras/data/docx/testChartTitlePropertiesColorFill.docx differ diff --git a/chart2/qa/extras/data/docx/testChartTitlePropertiesGradientFill.docx b/chart2/qa/extras/data/docx/testChartTitlePropertiesGradientFill.docx new file mode 100644 index 000000000000..a72600d09ee4 Binary files /dev/null and b/chart2/qa/extras/data/docx/testChartTitlePropertiesGradientFill.docx differ diff --git a/chart2/qa/extras/data/pptx/testChartTitlePropertiesBitmapFill.pptx b/chart2/qa/extras/data/pptx/testChartTitlePropertiesBitmapFill.pptx new file mode 100644 index 000000000000..395546edb497 Binary files /dev/null and b/chart2/qa/extras/data/pptx/testChartTitlePropertiesBitmapFill.pptx differ diff --git a/chart2/qa/extras/data/pptx/testChartTitlePropertiesColorFill.pptx b/chart2/qa/extras/data/pptx/testChartTitlePropertiesColorFill.pptx new file mode 100644 index 000000000000..361bdd643ce9 Binary files /dev/null and b/chart2/qa/extras/data/pptx/testChartTitlePropertiesColorFill.pptx differ diff --git a/chart2/qa/extras/data/pptx/testChartTitlePropertiesGradientFill.pptx b/chart2/qa/extras/data/pptx/testChartTitlePropertiesGradientFill.pptx new file mode 100644 index 000000000000..a77896dcdf09 Binary files /dev/null and b/chart2/qa/extras/data/pptx/testChartTitlePropertiesGradientFill.pptx differ diff --git a/chart2/qa/extras/data/xlsx/testChartTitlePropertiesBitmapFill.xlsx b/chart2/qa/extras/data/xlsx/testChartTitlePropertiesBitmapFill.xlsx new file mode 100644 index 000000000000..9d2dff9b3e59 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/testChartTitlePropertiesBitmapFill.xlsx differ diff --git a/chart2/qa/extras/data/xlsx/testChartTitlePropertiesColorFill.xlsx b/chart2/qa/extras/data/xlsx/testChartTitlePropertiesColorFill.xlsx new file mode 100644 index 000000000000..9e9aa0beaf5e Binary files /dev/null and b/chart2/qa/extras/data/xlsx/testChartTitlePropertiesColorFill.xlsx differ diff --git a/chart2/qa/extras/data/xlsx/testChartTitlePropertiesGradientFill.xlsx b/chart2/qa/extras/data/xlsx/testChartTitlePropertiesGradientFill.xlsx new file mode 100644 index 000000000000..b5b617754340 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/testChartTitlePropertiesGradientFill.xlsx differ diff --git a/include/oox/export/chartexport.hxx b/include/oox/export/chartexport.hxx index 9bbf1d3e16f9..f7b22dd77c84 100644 --- a/include/oox/export/chartexport.hxx +++ b/include/oox/export/chartexport.hxx @@ -136,7 +136,6 @@ private: css::drawing::XShape >& xShape ); void exportPlotArea( const css::uno::Reference< css::chart::XChartDocument >& rChartDoc ); - void exportPlotAreaShapeProps( const css::uno::Reference< css::beans::XPropertySet >& xPropSet ); void exportFill( const css::uno::Reference< css::beans::XPropertySet >& xPropSet ); void exportGradientFill( const css::uno::Reference< css::beans::XPropertySet >& xPropSet ); void exportBitmapFill( const css::uno::Reference< css::beans::XPropertySet >& xPropSet ); diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index d3ff150d47b5..7c2bef05bbb0 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -1035,6 +1035,12 @@ void ChartExport::exportTitle( const Reference< XShape >& xShape ) XML_val, "0", FSEND); + // shape properties + if( xPropSet.is() ) + { + exportShapeProps( xPropSet ); + } + pFS->endElement( FSNS( XML_c, XML_title ) ); } @@ -1168,7 +1174,7 @@ void ChartExport::exportPlotArea( const Reference< css::chart::XChartDocument >& Reference< beans::XPropertySet > xWallPropSet( xWallFloorSupplier->getWall(), uno::UNO_QUERY ); if( xWallPropSet.is() ) { - exportPlotAreaShapeProps( xWallPropSet ); + exportShapeProps( xWallPropSet ); } } @@ -1258,18 +1264,6 @@ void ChartExport::exportManualLayout(const css::chart2::RelativePosition& rPos, pFS->endElement(FSNS(XML_c, XML_layout)); } -void ChartExport::exportPlotAreaShapeProps( const Reference< XPropertySet >& xPropSet ) -{ - FSHelperPtr pFS = GetFS(); - pFS->startElement( FSNS( XML_c, XML_spPr ), - FSEND ); - - exportFill( xPropSet ); - WriteOutline( xPropSet ); - - pFS->endElement( FSNS( XML_c, XML_spPr ) ); -} - void ChartExport::exportFill( const Reference< XPropertySet >& xPropSet ) { if ( !GetProperty( xPropSet, "FillStyle" ) ) @@ -2274,7 +2268,7 @@ void ChartExport::exportShapeProps( const Reference< XPropertySet >& xPropSet ) pFS->startElement( FSNS( XML_c, XML_spPr ), FSEND ); - WriteFill( xPropSet ); + exportFill( xPropSet ); WriteOutline( xPropSet ); pFS->endElement( FSNS( XML_c, XML_spPr ) ); diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index d123095a305d..a2117bfa4e9e 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -939,13 +939,16 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic , bool bRelPathToMedia ) xOutStream->writeBytes( Sequence< sal_Int8 >( static_cast<const sal_Int8*>(aData), nDataSize ) ); xOutStream->closeOutput(); - OString sRelPathToMedia = "media/image"; + const OString sRelPathToMedia = "media/image"; + OString sRelationCompPrefix; if ( bRelPathToMedia ) - sRelPathToMedia = "../" + sRelPathToMedia; + sRelationCompPrefix = "../"; + else + sRelationCompPrefix = GetRelationCompPrefix(); sRelId = mpFB->addRelation( mpFS->getOutputStream(), oox::getRelationship(Relationship::IMAGE), OUStringBuffer() - .appendAscii( GetRelationCompPrefix() ) + .appendAscii( sRelationCompPrefix.getStr() ) .appendAscii( sRelPathToMedia.getStr() ) .append( (sal_Int32) mnImageCounter ++ ) .appendAscii( pExtension ) _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
