summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRegina Henschel <rb.henschel@t-online.de>2023-10-07 17:37:46 +0200
committerAndras Timar <andras.timar@collabora.com>2023-10-11 17:34:15 +0200
commit3db896a04e3c577b5bab36e51d5de61d0264f076 (patch)
tree453aea4b82b7c4ab7123c8e84841a9bdf7cc03ac
parent1fba9171dbe360c84901ea078a0cee9b4f4ed480 (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.docxbin0 -> 34795 bytes
-rw-r--r--oox/qa/unit/shape.cxx12
-rw-r--r--oox/source/drawingml/shape.cxx3
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
new file mode 100644
index 000000000000..0c176eefa025
--- /dev/null
+++ b/oox/qa/unit/data/tdf156902_GlowOnGroup.docx
Binary files differ
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())));