include/oox/drawingml/color.hxx                  |    3 ++
 oox/source/drawingml/color.cxx                   |   24 +++++++++++++++++++++++
 oox/source/drawingml/fillproperties.cxx          |   16 +--------------
 oox/source/drawingml/textcharacterproperties.cxx |   15 --------------
 4 files changed, 30 insertions(+), 28 deletions(-)

New commits:
commit cba27b9723764b7215ad62fad9b30280dfea5f94
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Fri Jun 9 23:34:24 2023 +0900
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Tue Jun 13 13:33:04 2023 +0200

    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 <qui...@gmail.com>
    (cherry picked from commit c1470e15bd0643be8d91aaf6a0d25c78867d0b3e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152979
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

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);
 

Reply via email to