diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2022-05-05 20:18:06 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2022-05-06 08:13:08 +0200 |
commit | f932b00f3a72dd802a6e50af84c3dc55072a22a0 (patch) | |
tree | 3e17dcb9f481308f5feb57c52a46335b7e3bd524 /oox/source/drawingml | |
parent | 11f0cb056f8082103fbb06b4a339322f46b77d13 (diff) |
tdf#148929 sd theme: limit PPTX import for shape fill effects to lum mod/off
Regression from 30735bdb5a0a81619000fdd24b2d0fbf45687f01 (sd theme: add PPTX
import for shape fill color effects, 2022-04-27), the bugdoc's A2 cell
lost its tinting (its background color is no longer lighter than A1)
after saving back to PPTX + import again.
The code assumed that in case a fill color has effects, it can only be
luminance offset or modulation, since that's what the PowerPoint UI
generates when setting a fill color explicitly. This did not take the
table style case into account, which uses tinting to make a color
lighter.
Fix the problem by not importing the theme index / effects if tinting is
used -- the current doc model is limited to theme index + lum mod/off
with effects.
This limitation can be removed while text color / fill color effects are
not limited to lum mod/off, but also support tinting/shading.
Change-Id: I382cc0067518cc262e261a462999170cb7db261b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133908
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'oox/source/drawingml')
-rw-r--r-- | oox/source/drawingml/color.cxx | 2 | ||||
-rw-r--r-- | oox/source/drawingml/fillproperties.cxx | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/oox/source/drawingml/color.cxx b/oox/source/drawingml/color.cxx index 982b77ff4831..f810deecf2bf 100644 --- a/oox/source/drawingml/color.cxx +++ b/oox/source/drawingml/color.cxx @@ -479,7 +479,7 @@ void Color::clearTransparence() mnAlpha = MAX_PERCENT; } -sal_Int16 Color::getTintOrShade() +sal_Int16 Color::getTintOrShade() const { for(auto const& aTransform : maTransforms) { diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx index 2d85bf807e1a..98b9e2f93e73 100644 --- a/oox/source/drawingml/fillproperties.cxx +++ b/oox/source/drawingml/fillproperties.cxx @@ -397,7 +397,7 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, { rPropMap.setProperty(PROP_FillColorTheme, nPhClrTheme); } - else + else if (maFillColor.getTintOrShade() == 0) { rPropMap.setProperty(PROP_FillColorTheme, maFillColor.getSchemeColorIndex()); rPropMap.setProperty(PROP_FillColorLumMod, maFillColor.getLumMod()); |