From 191f648ffd97b58f57afca65961e5dbcc2bbe724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolnai=20Tam=C3=A1s?= Date: Thu, 20 Feb 2014 11:48:35 +0100 Subject: [PATCH] drawingML export: gradient fill defined by imported theme Plus avoid writing out empty . Change-Id: I50fa92b2cc30eedfe28a8c6af697d43d98a3aee8 --- oox/source/drawingml/shape.cxx | 5 +++- oox/source/export/drawingml.cxx | 16 +++++++++--- .../data/dml-gradientfill-theme.docx | Bin 0 -> 15771 bytes sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 24 ++++++++++++++++++ 4 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 sw/qa/extras/ooxmlexport/data/dml-gradientfill-theme.docx diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx index b3020107a9ff..9066d44fac31 100644 --- a/oox/source/drawingml/shape.cxx +++ b/oox/source/drawingml/shape.cxx @@ -853,7 +853,10 @@ Reference< XShape > Shape::createAndInsert( PUT_PROP( aGradientStops, i, OUString::number( i ), aGradientStop ); ++aIt; } - putPropertyToGrabBag( "GradFillDefinition", Any( aGradientStops ) ); + // If getFillProperties.moFillType is unused that means gradient is defined by a theme + // which is already saved into StyleFillRef property, so no need to save the explicit values too + if( getFillProperties().moFillType.has() ) + putPropertyToGrabBag( "GradFillDefinition", Any( aGradientStops ) ); putPropertyToGrabBag( "OriginalGradFill", Any( aShapeProps[PROP_FillGradient] ) ); } } diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index 8ff54aa0fe27..e019ed68fbac 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -339,15 +339,23 @@ void DrawingML::WriteGradientFill( Reference< XPropertySet > rXPropSet ) aGrabBag[i].Value >>= aOriginalGradient; } - mpFS->startElementNS( XML_a, XML_gradFill, FSEND ); // check if an ooxml gradient had been imported and if the user has modified it - if( aGradientStops.hasElements() && EqualGradients( aOriginalGradient, aGradient ) ) + if( EqualGradients( aOriginalGradient, aGradient ) ) { - WriteGrabBagGradientFill(aGradientStops, aGradient); + // If we have no gradient stops that means original gradient were defined by a theme. + if( aGradientStops.hasElements() ) + { + mpFS->startElementNS( XML_a, XML_gradFill, FSEND ); + WriteGrabBagGradientFill(aGradientStops, aGradient); + mpFS->endElementNS( XML_a, XML_gradFill ); + } } else + { + mpFS->startElementNS( XML_a, XML_gradFill, FSEND ); WriteGradientFill(aGradient); - mpFS->endElementNS( XML_a, XML_gradFill ); + mpFS->endElementNS( XML_a, XML_gradFill ); + } } } diff --git a/sw/qa/extras/ooxmlexport/data/dml-gradientfill-theme.docx b/sw/qa/extras/ooxmlexport/data/dml-gradientfill-theme.docx new file mode 100644 index 0000000000000000000000000000000000000000..3311ce8a043158ec9f25335eda26128a4f287d36 GIT binary patch literal 15771 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.X); CPPUNIT_ASSERT_EQUAL(sal_Int32(m_bExported ? 14028 : 14025), xChildGroup->getPosition().Y); } + +DECLARE_OOXMLEXPORT_TEST(testDMLGradientFillTheme, "dml-gradientfill-theme.docx") +{ + // Problem was when a fill gradient was imported from a theme, (fillRef in ooxml) + // not just the theme was written out but the explicit values too + // Besides the duplication of values it causes problems with writing out + // into document.xml, while phClr can be used just for theme definitions. + xmlDocPtr pXmlDoc = parseExport("word/document.xml"); + if (!pXmlDoc) + return; + + // check no explicit gradFill has been exported + assertXPath(pXmlDoc, + "/w:document/w:body/w:p[2]/w:r/mc:AlternateContent[1]/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:gradFill", + 0); + + // check shape style has been exported + assertXPath(pXmlDoc, + "/w:document/w:body/w:p[2]/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:style/a:fillRef", + "idx", "2"); + assertXPath(pXmlDoc, + "/w:document/w:body/w:p[2]/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:style/a:fillRef/a:schemeClr", + "val", "accent1"); +} #endif CPPUNIT_PLUGIN_IMPLEMENT();