summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRegina Henschel <rb.henschel@t-online.de>2023-10-07 17:37:46 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2023-10-09 16:40:43 +0200
commitdb0d583237a58becd245ee7e715827ecd6f72091 (patch)
treec8fa01fb09e30f1d5486a0696fcd017bdbdcee9c
parentremove obsolete -single_module linker flag (is the default) (diff)
downloadcore-db0d583237a58becd245ee7e715827ecd6f72091.tar.gz
core-db0d583237a58becd245ee7e715827ecd6f72091.zip
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 21261dc39930..147e0ac88c99 100644
--- a/oox/qa/unit/shape.cxx
+++ b/oox/qa/unit/shape.cxx
@@ -313,6 +313,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 4e4836fdf8b4..632b24d59c42 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -2026,7 +2026,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())));