summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2023-08-03 10:14:40 +0200
committerTomaž Vajngerl <quikee@gmail.com>2023-08-15 20:58:13 +0200
commit9d5a7d9257db78eb3f4d77c39eae1affe877ea6b (patch)
treee5efa2d17c68055125eb24fe1761c6e77caab4db /oox
parent918cd8cbf383e0099d80db2e12a1071a0bc4f200 (diff)
ComplexColor various clean-up and (trivial) refactorings
Don't allow access to member variables of ComplexColor and makes them private. Needs a lot of changes. Change "scheme" to "theme" to be more consistent. In LO we usually call the "theme color" what is usually refered to as "scheme color" in OOXML, where it is sometimes refered to as "scheme" and other times as theme color. Remove ThemeColor class which was replaced with CmplexColor some time ago. Remove un-needed includes and un-needed components. Use isValidThemeColor in many places where we check that the ComplexColor is of "Theme" type and that ThemeColorType is set to a valid value. Change-Id: I325595fa65b8e56a4707e9d22acc6330aac28961 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155359 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'oox')
-rw-r--r--oox/inc/pch/precompiled_oox.hxx1
-rw-r--r--oox/qa/unit/drawingml.cxx14
-rw-r--r--oox/qa/unit/shape.cxx2
-rw-r--r--oox/source/drawingml/color.cxx7
-rw-r--r--oox/source/drawingml/colorchoicecontext.cxx11
-rw-r--r--oox/source/drawingml/fillproperties.cxx2
-rw-r--r--oox/source/drawingml/fontworkhelpers.cxx11
-rw-r--r--oox/source/drawingml/lineproperties.cxx4
-rw-r--r--oox/source/export/ThemeExport.cxx36
-rw-r--r--oox/source/export/drawingml.cxx4
10 files changed, 43 insertions, 49 deletions
diff --git a/oox/inc/pch/precompiled_oox.hxx b/oox/inc/pch/precompiled_oox.hxx
index 02971960b084..b9324feedb72 100644
--- a/oox/inc/pch/precompiled_oox.hxx
+++ b/oox/inc/pch/precompiled_oox.hxx
@@ -208,7 +208,6 @@
#include <docmodel/color/ComplexColor.hxx>
#include <docmodel/dllapi.h>
#include <docmodel/theme/ColorSet.hxx>
-#include <docmodel/theme/ThemeColor.hxx>
#include <docmodel/theme/ThemeColorType.hxx>
#include <drawinglayer/primitive2d/Primitive2DContainer.hxx>
#include <drawingml/colorchoicecontext.hxx>
diff --git a/oox/qa/unit/drawingml.cxx b/oox/qa/unit/drawingml.cxx
index 27bd3984a1c7..3f2876c97e41 100644
--- a/oox/qa/unit/drawingml.cxx
+++ b/oox/qa/unit/drawingml.cxx
@@ -419,7 +419,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testPptxTheme)
CPPUNIT_ASSERT(xPortion->getPropertyValue("CharComplexColor") >>= xComplexColor);
CPPUNIT_ASSERT(xComplexColor.is());
auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
- CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, aComplexColor.getSchemeType());
+ CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, aComplexColor.getThemeColorType());
CPPUNIT_ASSERT_EQUAL(model::TransformationType::LumMod,
aComplexColor.getTransformations()[0].meType);
CPPUNIT_ASSERT_EQUAL(sal_Int16(6000), aComplexColor.getTransformations()[0].mnValue);
@@ -474,7 +474,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testThemeColorTint_Table)
CPPUNIT_ASSERT(xA1->getPropertyValue("FillComplexColor") >>= xComplexColor);
CPPUNIT_ASSERT(xComplexColor.is());
auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
- CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, aComplexColor.getSchemeType());
+ CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, aComplexColor.getThemeColorType());
{
auto const& rTrans = aComplexColor.getTransformations();
CPPUNIT_ASSERT_EQUAL(size_t(0), rTrans.size());
@@ -487,7 +487,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testThemeColorTint_Table)
CPPUNIT_ASSERT(xA2->getPropertyValue("FillComplexColor") >>= xComplexColor);
CPPUNIT_ASSERT(xComplexColor.is());
auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
- CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, aComplexColor.getSchemeType());
+ CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, aComplexColor.getThemeColorType());
{
auto const& rTrans = aComplexColor.getTransformations();
CPPUNIT_ASSERT_EQUAL(size_t(1), rTrans.size());
@@ -516,7 +516,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testThemeColor_Shape)
CPPUNIT_ASSERT(xComplexColor.is());
{
auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
- CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, aComplexColor.getSchemeType());
+ CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, aComplexColor.getThemeColorType());
auto const& rTrans = aComplexColor.getTransformations();
CPPUNIT_ASSERT_EQUAL(size_t(2), rTrans.size());
@@ -530,7 +530,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testThemeColor_Shape)
CPPUNIT_ASSERT(xComplexColor.is());
{
auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
- CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, aComplexColor.getSchemeType());
+ CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent6, aComplexColor.getThemeColorType());
auto const& rTrans = aComplexColor.getTransformations();
CPPUNIT_ASSERT_EQUAL(size_t(1), rTrans.size());
@@ -546,7 +546,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testThemeColor_Shape)
CPPUNIT_ASSERT(xComplexColor.is());
{
auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
- CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, aComplexColor.getSchemeType());
+ CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, aComplexColor.getThemeColorType());
auto const& rTrans = aComplexColor.getTransformations();
CPPUNIT_ASSERT_EQUAL(size_t(0), rTrans.size());
@@ -556,7 +556,7 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testThemeColor_Shape)
CPPUNIT_ASSERT(xComplexColor.is());
{
auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
- CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, aComplexColor.getSchemeType());
+ CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, aComplexColor.getThemeColorType());
auto const& rTrans = aComplexColor.getTransformations();
CPPUNIT_ASSERT_EQUAL(size_t(1), rTrans.size());
diff --git a/oox/qa/unit/shape.cxx b/oox/qa/unit/shape.cxx
index 68ce372335df..605834d6c0fc 100644
--- a/oox/qa/unit/shape.cxx
+++ b/oox/qa/unit/shape.cxx
@@ -320,7 +320,7 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testTdf54095_SmartArtThemeTextColor)
xPortion->getPropertyValue("CharComplexColor") >>= xComplexColor;
CPPUNIT_ASSERT(xComplexColor.is());
auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
- CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Dark2, aComplexColor.getSchemeType());
+ CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Dark2, aComplexColor.getThemeColorType());
if (!bUseGroup)
{
diff --git a/oox/source/drawingml/color.cxx b/oox/source/drawingml/color.cxx
index 0bd570185a4c..9462fc03095c 100644
--- a/oox/source/drawingml/color.cxx
+++ b/oox/source/drawingml/color.cxx
@@ -619,8 +619,7 @@ sal_Int16 Color::getLumOff() const
model::ComplexColor Color::getComplexColor() const
{
- model::ComplexColor aComplexColor;
- aComplexColor.setSchemeColor(model::convertToThemeColorType(getSchemeColorIndex()));
+ auto aComplexColor = model::ComplexColor::Theme(model::convertToThemeColorType(getSchemeColorIndex()));
if (getTintOrShade() > 0)
{
@@ -818,12 +817,12 @@ model::ComplexColor Color::createComplexColor(const GraphicHelper& /*rGraphicHel
if (meMode == COLOR_PH)
{
auto eTheme = model::convertToThemeColorType(nPhClrTheme);
- aNewComplexColor.setSchemeColor(eTheme);
+ aNewComplexColor.setThemeColor(eTheme);
}
else if (meMode == COLOR_SCHEME)
{
auto eTheme = getThemeColorType();
- aNewComplexColor.setSchemeColor(eTheme);
+ aNewComplexColor.setThemeColor(eTheme);
}
else if (meMode == COLOR_RGB)
{
diff --git a/oox/source/drawingml/colorchoicecontext.cxx b/oox/source/drawingml/colorchoicecontext.cxx
index 63ac44fd6aac..4db601aed01a 100644
--- a/oox/source/drawingml/colorchoicecontext.cxx
+++ b/oox/source/drawingml/colorchoicecontext.cxx
@@ -188,12 +188,12 @@ void ColorValueContext::onStartElement( const AttributeList& rAttribs )
{
if (nToken == XML_phClr)
{
- mpComplexColor->setSchemePlaceholder();
+ mpComplexColor->setThemePlaceholder();
}
else
{
model::ThemeColorType eType = schemeNameToThemeColorType(*sSchemeName);
- mpComplexColor->setSchemeColor(eType);
+ mpComplexColor->setThemeColor(eType);
}
}
}
@@ -208,10 +208,7 @@ void ColorValueContext::onStartElement( const AttributeList& rAttribs )
{
// TODO - just converted to RGB for now
::Color nRgbValue = Color::getDmlPresetColor(nToken, API_RGB_TRANSPARENT);
- mpComplexColor->mnComponent1 = nRgbValue.GetRed();
- mpComplexColor->mnComponent2 = nRgbValue.GetGreen();
- mpComplexColor->mnComponent3 = nRgbValue.GetBlue();
- mpComplexColor->meType = model::ColorType::RGB;
+ mpComplexColor->setColor(nRgbValue);
}
}
break;
@@ -282,7 +279,7 @@ void ColorValueContext::onStartElement( const AttributeList& rAttribs )
else
nValue = rAttribs.getInteger(XML_val, 0);
- mpComplexColor->maTransformations.push_back({eType, sal_Int16(nValue / 10)});
+ mpComplexColor->addTransformation({eType, sal_Int16(nValue / 10)});
}
}
diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx
index 5edc71b8bc12..a11aeb6236ee 100644
--- a/oox/source/drawingml/fillproperties.cxx
+++ b/oox/source/drawingml/fillproperties.cxx
@@ -430,7 +430,7 @@ void FillProperties::pushToPropMap(ShapePropertyMap& rPropMap, const GraphicHelp
model::ComplexColor aComplexColor;
if (aFillColor == nPhClr)
{
- aComplexColor.setSchemeColor(model::convertToThemeColorType(nPhClrTheme));
+ aComplexColor.setThemeColor(model::convertToThemeColorType(nPhClrTheme));
}
else
{
diff --git a/oox/source/drawingml/fontworkhelpers.cxx b/oox/source/drawingml/fontworkhelpers.cxx
index 70c24ed5c3c8..4867ee38d8c4 100644
--- a/oox/source/drawingml/fontworkhelpers.cxx
+++ b/oox/source/drawingml/fontworkhelpers.cxx
@@ -1020,10 +1020,7 @@ bool FontworkHelpers::getThemeColorFromShape(
&& (xPropertySet->getPropertyValue(rPropertyName) >>= xComplexColor) && xComplexColor.is())
{
rComplexColor = model::color::getFromXComplexColor(xComplexColor);
- if (rComplexColor.getSchemeType() == model::ThemeColorType::Unknown)
- return false;
- else
- return true;
+ return rComplexColor.isValidThemeType();
}
return false;
}
@@ -1062,7 +1059,7 @@ constexpr const std::array<std::u16string_view, 12> WColorNames{
OUString lcl_getW14MarkupStringForThemeColor(const model::ComplexColor& rComplexColor)
{
const sal_uInt8 nClrNameIndex = std::clamp<sal_uInt8>(
- sal_Int32(rComplexColor.getSchemeType()), sal_Int32(model::ThemeColorType::Dark1),
+ sal_Int32(rComplexColor.getThemeColorType()), sal_Int32(model::ThemeColorType::Dark1),
sal_Int32(model::ThemeColorType::FollowedHyperlink));
return OUString(W14ColorNames[nClrNameIndex]);
}
@@ -1071,7 +1068,7 @@ OUString lcl_getW14MarkupStringForThemeColor(const model::ComplexColor& rComplex
OUString lcl_getWMarkupStringForThemeColor(const model::ComplexColor& rComplexColor)
{
const sal_uInt8 nClrNameIndex = std::clamp<sal_uInt8>(
- sal_Int32(rComplexColor.getSchemeType()), sal_Int32(model::ThemeColorType::Dark1),
+ sal_Int32(rComplexColor.getThemeColorType()), sal_Int32(model::ThemeColorType::Dark1),
sal_Int32(model::ThemeColorType::FollowedHyperlink));
return OUString(WColorNames[nClrNameIndex]);
}
@@ -1313,7 +1310,7 @@ void FontworkHelpers::createCharInteropGrabBagUpdatesFromShapeProps(
pGrabBagStack->push("attributes");
pGrabBagStack->addInt32("pos", (*it).first);
pGrabBagStack->pop();
- if ((*it).second.TTColor.getSchemeType() == model::ThemeColorType::Unknown)
+ if ((*it).second.TTColor.getThemeColorType() == model::ThemeColorType::Unknown)
{
pGrabBagStack->push("srgbClr");
pGrabBagStack->push("attributes");
diff --git a/oox/source/drawingml/lineproperties.cxx b/oox/source/drawingml/lineproperties.cxx
index 1372a6b96016..5d818a26c613 100644
--- a/oox/source/drawingml/lineproperties.cxx
+++ b/oox/source/drawingml/lineproperties.cxx
@@ -504,12 +504,12 @@ void LineProperties::pushToPropMap( ShapePropertyMap& rPropMap,
if (aColor == nPhClr)
{
- aComplexColor.setSchemeColor(model::convertToThemeColorType(nPhClrTheme));
+ aComplexColor.setThemeColor(model::convertToThemeColorType(nPhClrTheme));
rPropMap.setProperty(PROP_LineComplexColor, model::color::createXComplexColor(aComplexColor));
}
else
{
- aComplexColor.setSchemeColor(model::convertToThemeColorType(aLineColor.getSchemeColorIndex()));
+ aComplexColor.setThemeColor(model::convertToThemeColorType(aLineColor.getSchemeColorIndex()));
if (aLineColor.getLumMod() != 10000)
aComplexColor.addTransformation({model::TransformationType::LumMod, aLineColor.getLumMod()});
if (aLineColor.getLumOff() != 0)
diff --git a/oox/source/export/ThemeExport.cxx b/oox/source/export/ThemeExport.cxx
index 87cb5f2bc0bc..9fd9a97f847d 100644
--- a/oox/source/export/ThemeExport.cxx
+++ b/oox/source/export/ThemeExport.cxx
@@ -245,43 +245,45 @@ void ThemeExport::writeColorRGB(model::ComplexColor const& rComplexColor)
void ThemeExport::writeColorCRGB(model::ComplexColor const& rComplexColor)
{
- mpFS->startElementNS(XML_a, XML_scrgbClr, XML_r, OString::number(rComplexColor.mnComponent1),
- XML_g, OString::number(rComplexColor.mnComponent2), XML_b,
- OString::number(rComplexColor.mnComponent3));
- writeColorTransformations(rComplexColor.maTransformations);
+ mpFS->startElementNS(XML_a, XML_scrgbClr, XML_r,
+ OString::number(sal_Int32(rComplexColor.getRed())), XML_g,
+ OString::number(sal_Int32(rComplexColor.getGreen())), XML_b,
+ OString::number(sal_Int32(rComplexColor.getBlue())));
+ writeColorTransformations(rComplexColor.getTransformations());
mpFS->endElementNS(XML_a, XML_scrgbClr);
}
void ThemeExport::writeColorHSL(model::ComplexColor const& rComplexColor)
{
- mpFS->startElementNS(XML_a, XML_hslClr, XML_hue, OString::number(rComplexColor.mnComponent1),
- XML_sat, OString::number(rComplexColor.mnComponent2), XML_lum,
- OString::number(rComplexColor.mnComponent3));
- writeColorTransformations(rComplexColor.maTransformations);
+ mpFS->startElementNS(XML_a, XML_hslClr, XML_hue,
+ OString::number(sal_Int32(rComplexColor.getRed())), XML_sat,
+ OString::number(sal_Int32(rComplexColor.getGreen())), XML_lum,
+ OString::number(sal_Int32(rComplexColor.getBlue())));
+ writeColorTransformations(rComplexColor.getTransformations());
mpFS->endElementNS(XML_a, XML_hslClr);
}
-void ThemeExport::writeColorScheme(model::ComplexColor const& rComplexColor)
+void ThemeExport::writeColorTheme(model::ComplexColor const& rComplexColor)
{
- auto iterator = constThemeColorTypeTokenMap.find(rComplexColor.meSchemeType);
+ auto iterator = constThemeColorTypeTokenMap.find(rComplexColor.getThemeColorType());
if (iterator != constThemeColorTypeTokenMap.end())
{
const char* sValue = iterator->second;
mpFS->startElementNS(XML_a, XML_schemeClr, XML_val, sValue);
- writeColorTransformations(rComplexColor.maTransformations);
+ writeColorTransformations(rComplexColor.getTransformations());
mpFS->endElementNS(XML_a, XML_schemeClr);
}
}
void ThemeExport::writeColorSystem(model::ComplexColor const& rComplexColor)
{
- auto iterator = constSystemColorTypeTokenMap.find(rComplexColor.meSystemColorType);
+ auto iterator = constSystemColorTypeTokenMap.find(rComplexColor.getSystemColorType());
if (iterator != constSystemColorTypeTokenMap.end())
{
const char* sValue = iterator->second;
mpFS->startElementNS(XML_a, XML_sysClr, XML_val, sValue);
//XML_lastClr
- writeColorTransformations(rComplexColor.maTransformations);
+ writeColorTransformations(rComplexColor.getTransformations());
mpFS->endElementNS(XML_a, XML_schemeClr);
}
}
@@ -289,13 +291,13 @@ void ThemeExport::writeColorSystem(model::ComplexColor const& rComplexColor)
void ThemeExport::writeColorPlaceholder(model::ComplexColor const& rComplexColor)
{
mpFS->startElementNS(XML_a, XML_schemeClr, XML_val, "phClr");
- writeColorTransformations(rComplexColor.maTransformations);
+ writeColorTransformations(rComplexColor.getTransformations());
mpFS->endElementNS(XML_a, XML_schemeClr);
}
void ThemeExport::writeComplexColor(model::ComplexColor const& rComplexColor)
{
- switch (rComplexColor.meType)
+ switch (rComplexColor.getType())
{
case model::ColorType::Unused:
break;
@@ -308,8 +310,8 @@ void ThemeExport::writeComplexColor(model::ComplexColor const& rComplexColor)
case model::ColorType::HSL:
writeColorHSL(rComplexColor);
break;
- case model::ColorType::Scheme:
- writeColorScheme(rComplexColor);
+ case model::ColorType::Theme:
+ writeColorTheme(rComplexColor);
break;
case model::ColorType::Palette:
break;
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index a8c032259476..351c1b7cf265 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -540,9 +540,9 @@ bool DrawingML::WriteSchemeColor(OUString const& rPropertyName, const uno::Refer
return false;
auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
- if (aComplexColor.getSchemeType() == model::ThemeColorType::Unknown)
+ if (aComplexColor.getThemeColorType() == model::ThemeColorType::Unknown)
return false;
- const char* pColorName = g_aPredefinedClrNames[sal_Int16(aComplexColor.getSchemeType())];
+ const char* pColorName = g_aPredefinedClrNames[sal_Int16(aComplexColor.getThemeColorType())];
mpFS->startElementNS(XML_a, XML_solidFill);
mpFS->startElementNS(XML_a, XML_schemeClr, XML_val, pColorName);
for (auto const& rTransform : aComplexColor.getTransformations())