summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBalazs Varga <balazs.varga991@gmail.com>2018-07-23 21:13:09 +0200
committerBartosz Kosiorek <gang65@poczta.onet.pl>2018-07-31 13:10:34 +0200
commite3cad36dbcad73f41b921cd079317c20e770c249 (patch)
tree6d1a3c43ad39ea3d9c09e614045259c8f0dc7531
parent089b7c342b5e64f45bf279d37b7261cca5c25d32 (diff)
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 <gang65@poczta.onet.pl> (cherry picked from commit 051399740e41c6495ed362e78c63e0868bcd180c) Reviewed-on: https://gerrit.libreoffice.org/58349 Reviewed-by: Balazs Varga <balazs.varga991@gmail.com>
-rw-r--r--chart2/qa/extras/chart2export.cxx102
-rw-r--r--chart2/qa/extras/data/docx/testChartTitlePropertiesBitmapFill.docxbin0 -> 47851 bytes
-rw-r--r--chart2/qa/extras/data/docx/testChartTitlePropertiesColorFill.docxbin0 -> 5549 bytes
-rw-r--r--chart2/qa/extras/data/docx/testChartTitlePropertiesGradientFill.docxbin0 -> 5595 bytes
-rw-r--r--chart2/qa/extras/data/pptx/testChartTitlePropertiesBitmapFill.pptxbin0 -> 50865 bytes
-rw-r--r--chart2/qa/extras/data/pptx/testChartTitlePropertiesColorFill.pptxbin0 -> 47424 bytes
-rw-r--r--chart2/qa/extras/data/pptx/testChartTitlePropertiesGradientFill.pptxbin0 -> 47473 bytes
-rw-r--r--chart2/qa/extras/data/xlsx/testChartTitlePropertiesBitmapFill.xlsxbin0 -> 49790 bytes
-rw-r--r--chart2/qa/extras/data/xlsx/testChartTitlePropertiesColorFill.xlsxbin0 -> 11515 bytes
-rw-r--r--chart2/qa/extras/data/xlsx/testChartTitlePropertiesGradientFill.xlsxbin0 -> 7542 bytes
-rw-r--r--include/oox/export/chartexport.hxx1
-rw-r--r--oox/source/export/chartexport.cxx22
-rw-r--r--oox/source/export/drawingml.cxx9
13 files changed, 116 insertions, 18 deletions
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
--- /dev/null
+++ b/chart2/qa/extras/data/docx/testChartTitlePropertiesBitmapFill.docx
Binary files 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
--- /dev/null
+++ b/chart2/qa/extras/data/docx/testChartTitlePropertiesColorFill.docx
Binary files 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
--- /dev/null
+++ b/chart2/qa/extras/data/docx/testChartTitlePropertiesGradientFill.docx
Binary files 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
--- /dev/null
+++ b/chart2/qa/extras/data/pptx/testChartTitlePropertiesBitmapFill.pptx
Binary files 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
--- /dev/null
+++ b/chart2/qa/extras/data/pptx/testChartTitlePropertiesColorFill.pptx
Binary files 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
--- /dev/null
+++ b/chart2/qa/extras/data/pptx/testChartTitlePropertiesGradientFill.pptx
Binary files 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
--- /dev/null
+++ b/chart2/qa/extras/data/xlsx/testChartTitlePropertiesBitmapFill.xlsx
Binary files 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
--- /dev/null
+++ b/chart2/qa/extras/data/xlsx/testChartTitlePropertiesColorFill.xlsx
Binary files 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
--- /dev/null
+++ b/chart2/qa/extras/data/xlsx/testChartTitlePropertiesGradientFill.xlsx
Binary files 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 )