tdf#129841: fix GetTextTableCursorPropertyMap cell background values
... which were accidentally broken in 2003 in commit
eba784710e92597282a2284b56dce3a45ac38776.
Change-Id: I3dc96dff0a8935f927933bb3946528fb8ac9aed0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86315
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
diff --git a/sw/qa/extras/unowriter/unowriter.cxx b/sw/qa/extras/unowriter/unowriter.cxx
index 14fbbe2..271261f 100644
--- a/sw/qa/extras/unowriter/unowriter.cxx
+++ b/sw/qa/extras/unowriter/unowriter.cxx
@@ -864,6 +864,40 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf129839)
CPPUNIT_ASSERT_EQUAL(css::uno::Any(css::text::VertOrientation::NONE), aOrient);
}
CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf129841)
{
// Create a new document and add a table
loadURL("private:factory/swriter", nullptr);
css::uno::Reference<css::text::XTextDocument> xTextDocument(mxComponent,
css::uno::UNO_QUERY_THROW);
css::uno::Reference<css::lang::XMultiServiceFactory> xFac(xTextDocument,
css::uno::UNO_QUERY_THROW);
css::uno::Reference<css::text::XTextTable> xTable(
xFac->createInstance("com.sun.star.text.TextTable"), css::uno::UNO_QUERY_THROW);
xTable->initialize(4, 4);
auto xSimpleText = xTextDocument->getText();
xSimpleText->insertTextContent(xSimpleText->createTextCursor(), xTable, true);
// Get SwXTextTableCursor
css::uno::Reference<css::beans::XPropertySet> xTableCursor(xTable->createCursorByCellName("A1"),
css::uno::UNO_QUERY_THROW);
css::uno::Reference<css::table::XCellRange> xTableCellRange(xTable, css::uno::UNO_QUERY_THROW);
// Get SwXCellRange for the same cell
css::uno::Reference<css::beans::XPropertySet> xCellRange(
xTableCellRange->getCellRangeByName("A1:A1"), css::uno::UNO_QUERY_THROW);
const OUString sBackColor = "BackColor";
// Apply background color to table cursor, and read background color from cell range
css::uno::Any aRefColor(sal_Int32(0x00FF0000));
xTableCursor->setPropertyValue(sBackColor, aRefColor);
css::uno::Any aColor = xCellRange->getPropertyValue(sBackColor);
// This failed
CPPUNIT_ASSERT_EQUAL(aRefColor, aColor);
// Now the other way round
aRefColor <<= sal_Int32(0x0000FF00);
xCellRange->setPropertyValue(sBackColor, aRefColor);
aColor = xTableCursor->getPropertyValue(sBackColor);
CPPUNIT_ASSERT_EQUAL(aRefColor, aColor);
}
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/unocore/unomap1.cxx b/sw/source/core/unocore/unomap1.cxx
index c1fe17b..f506bf5 100644
--- a/sw/source/core/unocore/unomap1.cxx
+++ b/sw/source/core/unocore/unomap1.cxx
@@ -936,13 +936,13 @@ const SfxItemPropertyMapEntry* SwUnoPropertyMapProvider::GetTextTableCursorProp
TABSTOPS_MAP_ENTRY
// attributes from PROPERTY_MAP_TABLE_CELL:
{ OUString(UNO_NAME_BACK_COLOR), RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE , MID_BACK_COLOR },
{ OUString(UNO_NAME_BACK_COLOR), FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE , MID_BACK_COLOR },
{ OUString(UNO_NAME_BACK_GRAPHIC_URL), RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_URL },
{ OUString(UNO_NAME_BACK_GRAPHIC), RES_BACKGROUND, cppu::UnoType<graphic::XGraphic>::get(), PROPERTY_NONE, MID_GRAPHIC },
{ OUString(UNO_NAME_BACK_GRAPHIC_FILTER), RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
{ OUString(UNO_NAME_BACK_GRAPHIC_LOCATION), RES_BACKGROUND, cppu::UnoType<css::style::GraphicLocation>::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION},
{ OUString(UNO_NAME_BACK_GRAPHIC_LOCATION), FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType<css::style::GraphicLocation>::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION},
{ OUString(UNO_NAME_NUMBER_FORMAT), RES_BOXATR_FORMAT, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID ,0 },
{ OUString(UNO_NAME_BACK_TRANSPARENT), RES_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE , MID_GRAPHIC_TRANSPARENT },
{ OUString(UNO_NAME_BACK_TRANSPARENT), FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE , MID_GRAPHIC_TRANSPARENT },
{ OUString(UNO_NAME_USER_DEFINED_ATTRIBUTES), RES_UNKNOWNATR_CONTAINER, cppu::UnoType<css::container::XNameContainer>::get(), PropertyAttribute::MAYBEVOID, 0 },
{ OUString(UNO_NAME_TEXT_SECTION), FN_UNO_TEXT_SECTION, cppu::UnoType<css::text::XTextSection>::get(), PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY ,0 },
{ OUString(UNO_NAME_IS_PROTECTED), RES_PROTECT, cppu::UnoType<bool>::get(), 0, MID_PROTECT_CONTENT},