summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2023-06-09 23:34:24 +0900
committerTomaž Vajngerl <quikee@gmail.com>2023-06-09 17:59:48 +0200
commitc1470e15bd0643be8d91aaf6a0d25c78867d0b3e (patch)
treee46779efe83fcd0e18714b8d49f4a26825b78672
parentbcd076c22c5af0993641e719ea01559548acbc38 (diff)
oox: remove code duplication and add getComplexColor to oox::Color
Change-Id: I9cfbc851d4f303a5a8c92183f01cb5b6545b7984 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152800 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
-rw-r--r--include/oox/drawingml/color.hxx3
-rw-r--r--oox/source/drawingml/color.cxx24
-rw-r--r--oox/source/drawingml/fillproperties.cxx16
-rw-r--r--oox/source/drawingml/textcharacterproperties.cxx15
4 files changed, 30 insertions, 28 deletions
diff --git a/include/oox/drawingml/color.hxx b/include/oox/drawingml/color.hxx
index 75812c200c28..245e655d7c78 100644
--- a/include/oox/drawingml/color.hxx
+++ b/include/oox/drawingml/color.hxx
@@ -30,6 +30,7 @@
#include <sal/types.h>
#include <tools/color.hxx>
#include <docmodel/theme/ThemeColorType.hxx>
+#include <docmodel/color/ComplexColor.hxx>
namespace oox { class GraphicHelper; }
@@ -117,6 +118,8 @@ public:
/// Compares this color with rOther.
bool equals(const Color& rOther, const GraphicHelper& rGraphicHelper, ::Color nPhClr) const;
+ model::ComplexColor getComplexColor() const;
+
private:
/** Internal helper for getColor(). */
void setResolvedRgb( ::Color nRgb ) const;
diff --git a/oox/source/drawingml/color.cxx b/oox/source/drawingml/color.cxx
index 805ca6c4faed..ad0b5ca7835e 100644
--- a/oox/source/drawingml/color.cxx
+++ b/oox/source/drawingml/color.cxx
@@ -571,6 +571,30 @@ sal_Int16 Color::getLumOff() const
return 0;
}
+model::ComplexColor Color::getComplexColor() const
+{
+ model::ComplexColor aComplexColor;
+ aComplexColor.setSchemeColor(model::convertToThemeColorType(getSchemeColorIndex()));
+
+ if (getTintOrShade() > 0)
+ {
+ aComplexColor.addTransformation({model::TransformationType::Tint, getTintOrShade()});
+ }
+ else if (getTintOrShade() < 0)
+ {
+ sal_Int16 nShade = o3tl::narrowing<sal_Int16>(-getTintOrShade());
+ aComplexColor.addTransformation({model::TransformationType::Shade, nShade});
+ }
+
+ if (getLumMod() != 10000)
+ aComplexColor.addTransformation({model::TransformationType::LumMod, getLumMod()});
+
+ if (getLumOff() != 0)
+ aComplexColor.addTransformation({model::TransformationType::LumOff, getLumOff()});
+
+ return aComplexColor;
+}
+
::Color Color::getColor( const GraphicHelper& rGraphicHelper, ::Color nPhClr ) const
{
const sal_Int32 nTempC1 = mnC1;
diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx
index 705f2dc3b55a..7e2f5185b7f6 100644
--- a/oox/source/drawingml/fillproperties.cxx
+++ b/oox/source/drawingml/fillproperties.cxx
@@ -431,24 +431,12 @@ void FillProperties::pushToPropMap(ShapePropertyMap& rPropMap, const GraphicHelp
if (aFillColor == nPhClr)
{
aComplexColor.setSchemeColor(model::convertToThemeColorType(nPhClrTheme));
- rPropMap.setProperty(PROP_FillComplexColor, model::color::createXComplexColor(aComplexColor));
}
else
{
- aComplexColor.setSchemeColor(model::convertToThemeColorType(maFillColor.getSchemeColorIndex()));
- if (maFillColor.getLumMod() != 10000)
- aComplexColor.addTransformation({model::TransformationType::LumMod, maFillColor.getLumMod()});
- if (maFillColor.getLumOff() != 0)
- aComplexColor.addTransformation({model::TransformationType::LumOff, maFillColor.getLumOff()});
- if (maFillColor.getTintOrShade() > 0)
- aComplexColor.addTransformation({model::TransformationType::Tint, maFillColor.getTintOrShade()});
- if (maFillColor.getTintOrShade() < 0)
- {
- sal_Int16 nShade = o3tl::narrowing<sal_Int16>(-maFillColor.getTintOrShade());
- aComplexColor.addTransformation({model::TransformationType::Shade, nShade});
- }
- rPropMap.setProperty(PROP_FillComplexColor, model::color::createXComplexColor(aComplexColor));
+ aComplexColor = maFillColor.getComplexColor();
}
+ rPropMap.setProperty(PROP_FillComplexColor, model::color::createXComplexColor(aComplexColor));
eFillStyle = FillStyle_SOLID;
}
diff --git a/oox/source/drawingml/textcharacterproperties.cxx b/oox/source/drawingml/textcharacterproperties.cxx
index 7d3dda284680..0e1e2830a67f 100644
--- a/oox/source/drawingml/textcharacterproperties.cxx
+++ b/oox/source/drawingml/textcharacterproperties.cxx
@@ -136,20 +136,7 @@ void TextCharacterProperties::pushToPropMap( PropertyMap& rPropMap, const XmlFil
rPropMap.setProperty(PROP_CharColor, aColor.getColor(rFilter.getGraphicHelper()));
// set theme color
- model::ComplexColor aComplexColor;
- aComplexColor.setSchemeColor(model::convertToThemeColorType(aColor.getSchemeColorIndex()));
- if (aColor.getTintOrShade() > 0)
- aComplexColor.addTransformation({model::TransformationType::Tint, aColor.getTintOrShade()});
- if (aColor.getTintOrShade() < 0)
- {
- sal_Int16 nShade = o3tl::narrowing<sal_Int16>(-aColor.getTintOrShade());
- aComplexColor.addTransformation({model::TransformationType::Shade, nShade});
- }
- if (aColor.getLumMod() != 10000)
- aComplexColor.addTransformation({model::TransformationType::LumMod, aColor.getLumMod()});
- if (aColor.getLumOff() != 0)
- aComplexColor.addTransformation({model::TransformationType::LumOff, aColor.getLumOff()});
-
+ model::ComplexColor aComplexColor = aColor.getComplexColor();
rPropMap.setProperty(PROP_CharComplexColor, model::color::createXComplexColor(aComplexColor));
rPropMap.setProperty(PROP_CharContoured, bContoured);