summaryrefslogtreecommitdiff
path: root/oox/source/drawingml
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2022-05-05 20:18:06 +0200
committerMiklos Vajna <vmiklos@collabora.com>2022-05-06 08:13:08 +0200
commitf932b00f3a72dd802a6e50af84c3dc55072a22a0 (patch)
tree3e17dcb9f481308f5feb57c52a46335b7e3bd524 /oox/source/drawingml
parent11f0cb056f8082103fbb06b4a339322f46b77d13 (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.cxx2
-rw-r--r--oox/source/drawingml/fillproperties.cxx2
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());