diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2019-02-05 09:32:35 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2019-02-05 13:25:42 +0100 |
commit | b413584fec921a9c12779a277b011cbfabe3f12d (patch) | |
tree | c49f0a1837313d0be301c8c8c225a14efdf7eccc | |
parent | 30e934dfa61f798ab0e7f1675f201063d97d89dd (diff) |
oox: disable gradient fill grab-bag for PPTX
This was added in commit 2fcf3a871c94feeca11619ef5c8c0466ce61eb74
(ooxml: preserve gradient shape fill, 2014-01-31), and assumes that the
theme colors can be preserved, as the theme definition is grab-bagged as
well.
But the theme is grab-bagged only for DOCX, not for PPTX, so skip
gradient grab-bag for PPTX, otherwise the gradient would refer to
incorrect colors in the theme.
Change-Id: I98e1c67d4b10e68916f81dd7fc508eb4146d506b
Reviewed-on: https://gerrit.libreoffice.org/67386
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
(cherry picked from commit cfc1f4ea4889f768d689a0df71519e9bcb707bc0)
Reviewed-on: https://gerrit.libreoffice.org/67396
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r-- | oox/source/export/drawingml.cxx | 4 | ||||
-rw-r--r-- | sd/qa/unit/data/pptx/tdf94238.pptx | bin | 33928 -> 35015 bytes | |||
-rw-r--r-- | sd/qa/unit/export-tests-ooxml1.cxx | 6 |
3 files changed, 9 insertions, 1 deletions
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index 9bcf08305afd..78efe5275cfa 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -407,7 +407,9 @@ void DrawingML::WriteGradientFill( const Reference< XPropertySet >& rXPropSet ) } // check if an ooxml gradient had been imported and if the user has modified it - if( EqualGradients( aOriginalGradient, aGradient ) ) + // Gradient grab-bag depends on theme grab-bag, which is implemented + // only for DOCX. + if( EqualGradients( aOriginalGradient, aGradient ) && GetDocumentType() == DOCUMENT_DOCX) { // If we have no gradient stops that means original gradient were defined by a theme. if( aGradientStops.hasElements() ) diff --git a/sd/qa/unit/data/pptx/tdf94238.pptx b/sd/qa/unit/data/pptx/tdf94238.pptx Binary files differindex cf35ecee8d12..6f61cc5b43f1 100644 --- a/sd/qa/unit/data/pptx/tdf94238.pptx +++ b/sd/qa/unit/data/pptx/tdf94238.pptx diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx index 5e961a19b8b1..3e328682f310 100644 --- a/sd/qa/unit/export-tests-ooxml1.cxx +++ b/sd/qa/unit/export-tests-ooxml1.cxx @@ -885,6 +885,12 @@ void SdOOXMLExportTest1::testTdf94238() CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(100), aGradient.YOffset); CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(39), aGradient.Border); + // Without the accompanying fix in place, this test would have failed with + // 'Expected: 0, Actual : 10592673', i.e. the start color of the gradient + // was incorrect. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), aGradient.StartColor); + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x8B8B8B), aGradient.EndColor); + xDocShRef->DoClose(); } |