diff options
author | Regina Henschel <rb.henschel@t-online.de> | 2023-10-07 17:37:46 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2023-10-11 17:34:15 +0200 |
commit | 3db896a04e3c577b5bab36e51d5de61d0264f076 (patch) | |
tree | 453aea4b82b7c4ab7123c8e84841a9bdf7cc03ac | |
parent | 1fba9171dbe360c84901ea078a0cee9b4f4ed480 (diff) |
tdf#156902 Do not set glow on group shape in import
Currently a group is not able to use glow. But in MS Office it is
possible. When we try to set glow at the group, we produce an
exception and no children are imported. So for now the patch prevents
setting glow.
Change-Id: Ifa7245ebf3c38f8685239c2b62eefccd35aab870
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157679
Tested-by: Jenkins
Reviewed-by: Regina Henschel <rb.henschel@t-online.de>
(cherry picked from commit e84ae94270f0f0037fa2662a5f2765b37a50c33e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157711
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157702
-rw-r--r-- | oox/qa/unit/data/tdf156902_GlowOnGroup.docx | bin | 0 -> 34795 bytes | |||
-rw-r--r-- | oox/qa/unit/shape.cxx | 12 | ||||
-rw-r--r-- | oox/source/drawingml/shape.cxx | 3 |
3 files changed, 14 insertions, 1 deletions
diff --git a/oox/qa/unit/data/tdf156902_GlowOnGroup.docx b/oox/qa/unit/data/tdf156902_GlowOnGroup.docx Binary files differnew file mode 100644 index 000000000000..0c176eefa025 --- /dev/null +++ b/oox/qa/unit/data/tdf156902_GlowOnGroup.docx diff --git a/oox/qa/unit/shape.cxx b/oox/qa/unit/shape.cxx index cc44152a84b4..c0bae9cbb536 100644 --- a/oox/qa/unit/shape.cxx +++ b/oox/qa/unit/shape.cxx @@ -318,6 +318,18 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testTdf54095_SmartArtThemeTextColor) } } +CPPUNIT_TEST_FIXTURE(OoxShapeTest, testGlowOnGroup) +{ + // The document contains a group of two shapes. A glow-effect is set on the group. + // Without the fix, the children of the group were not imported at all. + loadFromURL(u"tdf156902_GlowOnGroup.docx"); + uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPagesSupplier->getDrawPages()->getByIndex(0), + uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xGroup(xDrawPage->getByIndex(0), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xGroup->getCount()); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx index c9a4137c77a1..9b4ee5f92d72 100644 --- a/oox/source/drawingml/shape.cxx +++ b/oox/source/drawingml/shape.cxx @@ -2033,7 +2033,8 @@ Reference< XShape > const & Shape::createAndInsert( } // Set glow effect properties - if ( aEffectProperties.maGlow.moGlowRad.has_value() ) + if (aEffectProperties.maGlow.moGlowRad.has_value() + && aServiceName != "com.sun.star.drawing.GroupShape") { uno::Reference<beans::XPropertySet> propertySet (mxShape, uno::UNO_QUERY); propertySet->setPropertyValue("GlowEffectRadius", Any(convertEmuToHmm(aEffectProperties.maGlow.moGlowRad.value()))); |