summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2020-12-01 15:16:13 +0100
committerMiklos Vajna <vmiklos@collabora.com>2020-12-11 08:06:32 +0100
commit5d375815df5c0a509d99292616112052f199a053 (patch)
treed27dde388141a6b8c4c4fb40ca02cd8c59aca875 /svx
parent148f3e96d4d0c5376d50a93386b1a6411574e29d (diff)
tdf#129961 svx: add UNO API for table shadow as direct format
Adding it via a style was working already. (cherry picked from commit 55d4c6cfe5bd9b737698c6cd1f28ee8234abb5d0) Change-Id: I122c359716a404159d3521d63d44ef8bfe35c214 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107564 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'svx')
-rw-r--r--svx/qa/unit/unodraw.cxx26
-rw-r--r--svx/source/unodraw/unoprov.cxx1
2 files changed, 27 insertions, 0 deletions
diff --git a/svx/qa/unit/unodraw.cxx b/svx/qa/unit/unodraw.cxx
index a835dee951bd..51b1c8b43847 100644
--- a/svx/qa/unit/unodraw.cxx
+++ b/svx/qa/unit/unodraw.cxx
@@ -107,6 +107,32 @@ CPPUNIT_TEST_FIXTURE(UnodrawTest, testTdf93998)
xModelProps->getPropertyValue("Graphic") >>= xGraphic;
CPPUNIT_ASSERT(xGraphic.is());
}
+
+CPPUNIT_TEST_FIXTURE(UnodrawTest, testTableShadowDirect)
+{
+ // Create an Impress document an insert a table shape.
+ mxComponent = loadFromDesktop("private:factory/simpress",
+ "com.sun.star.presentation.PresentationDocument");
+ uno::Reference<lang::XMultiServiceFactory> xFactory(mxComponent, uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShape(
+ xFactory->createInstance("com.sun.star.drawing.TableShape"), uno::UNO_QUERY);
+ xShape->setPosition(awt::Point(1000, 1000));
+ xShape->setSize(awt::Size(10000, 10000));
+ uno::Reference<drawing::XDrawPagesSupplier> xSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPages> xDrawPages = xSupplier->getDrawPages();
+ uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPages->getByIndex(0), uno::UNO_QUERY);
+ xDrawPage->add(xShape);
+
+ // Create a red shadow on it without touching its style.
+ uno::Reference<beans::XPropertySet> xShapeProps(xShape, uno::UNO_QUERY);
+ // Without the accompanying fix in place, this test would have failed with throwing a
+ // beans.UnknownPropertyException, as shadow-as-direct-formatting on tables were not possible.
+ xShapeProps->setPropertyValue("Shadow", uno::makeAny(true));
+ sal_Int32 nRed = 0xff0000;
+ xShapeProps->setPropertyValue("ShadowColor", uno::makeAny(nRed));
+ CPPUNIT_ASSERT(xShapeProps->getPropertyValue("ShadowColor") >>= nRed);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0xff0000), nRed);
+}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/unodraw/unoprov.cxx b/svx/source/unodraw/unoprov.cxx
index c6a6ab7ada94..663a3d738b24 100644
--- a/svx/source/unodraw/unoprov.cxx
+++ b/svx/source/unodraw/unoprov.cxx
@@ -740,6 +740,7 @@ static SfxItemPropertyMapEntry const * ImplGetSvxTableShapePropertyMap()
{
static SfxItemPropertyMapEntry const aTableShapePropertyMap_Impl[] =
{
+ SHADOW_PROPERTIES
{ u"" UNO_NAME_MISC_OBJ_ZORDER, OWN_ATTR_ZORDER, cppu::UnoType<sal_Int32>::get(), 0, 0},
{ u"" UNO_NAME_MISC_OBJ_LAYERID, SDRATTR_LAYERID, cppu::UnoType<sal_Int16>::get(), 0, 0},
{ u"" UNO_NAME_MISC_OBJ_LAYERNAME, SDRATTR_LAYERNAME, cppu::UnoType<OUString>::get(), 0, 0},