qt a11y: Implement QtAccessibleWidget::table
Implement that `QAccessibleTableCellInterface::table`
override by returning the parent, if it is a table.
This turned out to be the missing piece when working
on an implementation for the Qt library to expose the
AT-SPI table cell interface for a11y objects that implement
`QAccessibleTableCellInterface`, and testing the
"GetTable" method by calling
`acc.queryTableCell().get_table()` on a selected
LO Calc cell in Accerciser's IPython console.
Change-Id: I6144c613f31cafc338ccac739cd7db1bf314d4a4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136836
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
diff --git a/vcl/qt5/QtAccessibleWidget.cxx b/vcl/qt5/QtAccessibleWidget.cxx
index 88616a5..44d9f89 100644
--- a/vcl/qt5/QtAccessibleWidget.cxx
+++ b/vcl/qt5/QtAccessibleWidget.cxx
@@ -1480,8 +1480,15 @@ int QtAccessibleWidget::rowIndex() const
QAccessibleInterface* QtAccessibleWidget::table() const
{
SAL_WARN("vcl.qt", "Unsupported QAccessibleTableCellInterface::table");
return nullptr;
Reference<XAccessibleTable> xTable = getAccessibleTableForParent();
if (!xTable.is())
return nullptr;
Reference<XAccessible> xTableAcc(xTable, UNO_QUERY);
if (!xTableAcc.is())
return nullptr;
return QAccessible::queryAccessibleInterface(new QtXAccessible(xTableAcc));
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */