diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2022-04-27 20:12:52 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2022-04-28 08:15:54 +0200 |
commit | 30735bdb5a0a81619000fdd24b2d0fbf45687f01 (patch) | |
tree | 43a99bea091701eee066d9f1410777671d3b3b9f | |
parent | bd568b360450b348ff0e6813862a49892df81140 (diff) |
sd theme: add PPTX import for shape fill color effects
This is always direct formatting, so FillProperties::pushToPropMap()
always has the needed info at hand.
Change-Id: I3317b618e0e8bb7688d0f0fbfe4546e2e8b4e947
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133525
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r-- | include/oox/drawingml/color.hxx | 4 | ||||
-rw-r--r-- | oox/source/drawingml/color.cxx | 4 | ||||
-rw-r--r-- | oox/source/drawingml/fillproperties.cxx | 6 | ||||
-rw-r--r-- | oox/source/token/properties.txt | 2 | ||||
-rw-r--r-- | svx/qa/unit/styles.cxx | 21 |
5 files changed, 27 insertions, 10 deletions
diff --git a/include/oox/drawingml/color.hxx b/include/oox/drawingml/color.hxx index c0dd8d67a31c..cc65c1346720 100644 --- a/include/oox/drawingml/color.hxx +++ b/include/oox/drawingml/color.hxx @@ -100,8 +100,8 @@ public: const OUString& getSchemeColorName() const { return msSchemeName; } sal_Int16 getSchemeColorIndex() const; sal_Int16 getTintOrShade(); - sal_Int16 getLumMod(); - sal_Int16 getLumOff(); + sal_Int16 getLumMod() const; + sal_Int16 getLumOff() const; /** Returns the unaltered list of transformations for interoperability purposes */ const css::uno::Sequence< css::beans::PropertyValue >& getTransformations() const { return maInteropTransformations;} diff --git a/oox/source/drawingml/color.cxx b/oox/source/drawingml/color.cxx index ee854a761fa2..982b77ff4831 100644 --- a/oox/source/drawingml/color.cxx +++ b/oox/source/drawingml/color.cxx @@ -496,7 +496,7 @@ sal_Int16 Color::getTintOrShade() return 0; } -sal_Int16 Color::getLumMod() +sal_Int16 Color::getLumMod() const { for (const auto& rTransform : maTransforms) { @@ -512,7 +512,7 @@ sal_Int16 Color::getLumMod() return 10000; } -sal_Int16 Color::getLumOff() +sal_Int16 Color::getLumOff() const { for (const auto& rTransform : maTransforms) { diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx index 5555a6d5250f..2d85bf807e1a 100644 --- a/oox/source/drawingml/fillproperties.cxx +++ b/oox/source/drawingml/fillproperties.cxx @@ -397,6 +397,12 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, { rPropMap.setProperty(PROP_FillColorTheme, nPhClrTheme); } + else + { + rPropMap.setProperty(PROP_FillColorTheme, maFillColor.getSchemeColorIndex()); + rPropMap.setProperty(PROP_FillColorLumMod, maFillColor.getLumMod()); + rPropMap.setProperty(PROP_FillColorLumOff, maFillColor.getLumOff()); + } eFillStyle = FillStyle_SOLID; } diff --git a/oox/source/token/properties.txt b/oox/source/token/properties.txt index e318e0038ecb..8467d3683875 100644 --- a/oox/source/token/properties.txt +++ b/oox/source/token/properties.txt @@ -177,6 +177,8 @@ FillBitmapSizeY FillBitmap FillColor FillColorTheme +FillColorLumMod +FillColorLumOff FillGradient FillGradientName FillHatch diff --git a/svx/qa/unit/styles.cxx b/svx/qa/unit/styles.cxx index ce9a039ce453..dd27e24f02ae 100644 --- a/svx/qa/unit/styles.cxx +++ b/svx/qa/unit/styles.cxx @@ -94,17 +94,26 @@ CPPUNIT_TEST_FIXTURE(Test, testThemeChange) // Blue. CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x4472c4), GetShapeFillColor(xShape4)); // The theme index of this filled shape is set by the PPTX import: - sal_Int32 nColorTheme = -1; + sal_Int16 nColorTheme = -1; xShape4->getPropertyValue("FillColorTheme") >>= nColorTheme; // 4 means accent1, this was -1 without the PPTX import bit in place. - CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(4), nColorTheme); + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(4), nColorTheme); uno::Reference<beans::XPropertySet> xShape5(xDrawPageShapes->getByIndex(5), uno::UNO_QUERY); // Blue, lighter. CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0xb4c7e7), GetShapeFillColor(xShape5)); - // Set theme index to accent 1 & effects till PPTX import is missing. - xShape5->setPropertyValue("FillColorTheme", uno::makeAny(static_cast<sal_Int16>(4))); - xShape5->setPropertyValue("FillColorLumMod", uno::makeAny(static_cast<sal_Int16>(4000))); - xShape5->setPropertyValue("FillColorLumOff", uno::makeAny(static_cast<sal_Int16>(6000))); + // The theme index, and effects (lum mod, lum off) are set by the PPTX import: + nColorTheme = -1; + xShape5->getPropertyValue("FillColorTheme") >>= nColorTheme; + // 4 means accent1, this was -1 without the PPTX import bit in place. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(4), nColorTheme); + sal_Int16 nColorLumMod = 10000; + xShape5->getPropertyValue("FillColorLumMod") >>= nColorLumMod; + // This was 10000 without the PPTX import bit in place. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(4000), nColorLumMod); + sal_Int16 nColorLumOff = 0; + xShape5->getPropertyValue("FillColorLumOff") >>= nColorLumOff; + // This was 0 without the PPTX import bit in place. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(6000), nColorLumOff); // When changing the master slide of slide 1 to use the theme of the second master slide: uno::Reference<drawing::XMasterPageTarget> xDrawPage2( |