diff options
author | Justin Luth <justin.luth@collabora.com> | 2024-02-14 10:48:08 -0500 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2024-02-26 08:59:03 +0100 |
commit | 7ee5904a12b55eb3abbdf5d0d46f57ffdb7158c7 (patch) | |
tree | 7bc867a51372f8dfd78eecd15c9b191c39436cd1 /sw | |
parent | aca1125350e68d94906074fc075b079d4460ae7f (diff) |
related tdf#126533 DOCX: vml export gradientRadial instead of gradient
... for everything except the linear gradients (linear/axial)
Interestingly, there was nothing in make sw.check that hit this.
make CppunitTest_sw_ooxmlexport21 \
CPPUNIT_TEST_NAME=testTdf126533_pageGradient
Change-Id: Id58ed8b312ec29a10ce461ff0e032838b745b11b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163470
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163867
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport21.cxx | 4 | ||||
-rw-r--r-- | sw/source/filter/ww8/docxattributeoutput.cxx | 18 |
2 files changed, 15 insertions, 7 deletions
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx index b9b04eafb0f1..fcdd26b22924 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx @@ -9,6 +9,7 @@ #include <swmodeltestbase.hxx> +#include <com/sun/star/awt/Gradient2.hpp> #include <com/sun/star/beans/XPropertyState.hpp> #include <com/sun/star/drawing/FillStyle.hpp> #include <com/sun/star/text/XDocumentIndex.hpp> @@ -80,6 +81,9 @@ DECLARE_OOXMLEXPORT_TEST(testTdf126533_pageGradient, "fill.docx") uno::UNO_QUERY); CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_GRADIENT, getProperty<drawing::FillStyle>(xPageStyle, "FillStyle")); + + awt::Gradient2 aGradient = getProperty<awt::Gradient2>(xPageStyle, "FillGradient"); + CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_RECT, aGradient.Style); } DECLARE_OOXMLEXPORT_TEST(testTdf126533_pageBitmap, "tdf126533_pageBitmap.docx") diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 03ada68bcb2d..c04a86ab4e55 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -9632,8 +9632,6 @@ void DocxAttributeOutput::FormatFillGradient( const XFillGradientItem& rFillGrad { if (m_oFillStyle && *m_oFillStyle == drawing::FillStyle_GRADIENT && !m_rExport.SdrExporter().getDMLTextFrameSyntax()) { - AddToAttrList( m_rExport.SdrExporter().getFlyFillAttrList(), XML_type, "gradient" ); - const basegfx::BGradient& rGradient = rFillGradient.GetGradientValue(); OString sStartColor = msfilter::util::ConvertColor(Color(rGradient.GetColorStops().front().getStopColor())); OString sEndColor = msfilter::util::ConvertColor(Color(rGradient.GetColorStops().back().getStopColor())); @@ -9655,17 +9653,23 @@ void DocxAttributeOutput::FormatFillGradient( const XFillGradientItem& rFillGrad switch (rGradient.GetGradientStyle()) { case css::awt::GradientStyle_AXIAL: + AddToAttrList(m_rExport.SdrExporter().getFlyFillAttrList(), XML_type, "gradient"); AddToAttrList( m_rExport.SdrExporter().getFlyFillAttrList(), XML_focus, "50%" ); // If it is an 'axial' gradient - swap the colors // (because in the import process they were imported swapped) sColor1 = sEndColor; sColor2 = sStartColor; break; - case css::awt::GradientStyle_LINEAR: break; - case css::awt::GradientStyle_RADIAL: break; - case css::awt::GradientStyle_ELLIPTICAL: break; - case css::awt::GradientStyle_SQUARE: break; - case css::awt::GradientStyle_RECT: break; + case css::awt::GradientStyle_LINEAR: + AddToAttrList(m_rExport.SdrExporter().getFlyFillAttrList(), XML_type, "gradient"); + break; + case css::awt::GradientStyle_RADIAL: + case css::awt::GradientStyle_ELLIPTICAL: + case css::awt::GradientStyle_SQUARE: + case css::awt::GradientStyle_RECT: + AddToAttrList(m_rExport.SdrExporter().getFlyFillAttrList(), XML_type, + "gradientRadial"); + break; default: break; } |