Skip to content

Commit

Permalink
tdf#129961 svx: add UNO API for table shadow as direct format
Browse files Browse the repository at this point in the history
Adding it via a style was working already.

Change-Id: I122c359716a404159d3521d63d44ef8bfe35c214
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106987
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
  • Loading branch information
vmiklos committed Dec 1, 2020
1 parent dee2236 commit 55d4c6c
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
26 changes: 26 additions & 0 deletions svx/qa/unit/unodraw.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -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: */
1 change: 1 addition & 0 deletions svx/source/unodraw/unoprov.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -739,6 +739,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},
Expand Down

0 comments on commit 55d4c6c

Please sign in to comment.