Accessibility: Fix selection change notifications on Linux

The selection update is not implemented on other platforms (if needed at
all).

Task-number: QTBUG-39440
Change-Id: I8eb8c4eb1c23ba2d246bc95f1c77dc9da9e22495
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
This commit is contained in:
Frederik Gladhorn 2014-07-01 15:39:32 +02:00 committed by Frederik Gladhorn
parent fad17cf79c
commit 0eaa86dd01
5 changed files with 8 additions and 8 deletions

View File

@ -1047,6 +1047,8 @@ void AtSpiAdaptor::notify(QAccessibleEvent *event)
}
break;
}
case QAccessible::SelectionAdd:
case QAccessible::SelectionRemove:
case QAccessible::Selection: {
QAccessibleInterface * iface = event->accessibleInterface();
if (!iface) {
@ -1104,7 +1106,6 @@ void AtSpiAdaptor::notify(QAccessibleEvent *event)
case QAccessible::ParentChanged:
case QAccessible::DialogStart:
case QAccessible::DialogEnd:
case QAccessible::SelectionRemove:
case QAccessible::PopupMenuStart:
case QAccessible::PopupMenuEnd:
case QAccessible::SoundPlayed:
@ -1146,7 +1147,6 @@ void AtSpiAdaptor::notify(QAccessibleEvent *event)
case QAccessible::TextAttributeChanged:
case QAccessible::TextColumnChanged:
case QAccessible::VisibleDataChanged:
case QAccessible::SelectionAdd:
case QAccessible::SelectionWithin:
case QAccessible::LocationChanged:
case QAccessible::HelpChanged:

View File

@ -3198,7 +3198,7 @@ void QListView::selectionChanged(const QItemSelection &selected,
QModelIndex sel = selected.indexes().value(0);
if (sel.isValid()) {
int entry = visualIndex(sel);
QAccessibleEvent event(this, QAccessible::Selection);
QAccessibleEvent event(this, QAccessible::SelectionAdd);
event.setChild(entry);
QAccessible::updateAccessibility(&event);
}

View File

@ -3337,7 +3337,7 @@ void QTableView::selectionChanged(const QItemSelection &selected,
QModelIndex sel = selected.indexes().value(0);
if (sel.isValid()) {
int entry = d->accessibleTable2Index(sel);
QAccessibleEvent event(this, QAccessible::Selection);
QAccessibleEvent event(this, QAccessible::SelectionAdd);
event.setChild(entry);
QAccessible::updateAccessibility(&event);
}

View File

@ -3981,7 +3981,7 @@ void QTreeView::selectionChanged(const QItemSelection &selected,
if (sel.isValid()) {
int entry = d->accessibleTree2Index(sel);
Q_ASSERT(entry >= 0);
QAccessibleEvent event(this, QAccessible::Selection);
QAccessibleEvent event(this, QAccessible::SelectionAdd);
event.setChild(entry);
QAccessible::updateAccessibility(&event);
}

View File

@ -2779,7 +2779,7 @@ void tst_QAccessibility::listTest()
// Check for events
QTest::mouseClick(listView->viewport(), Qt::LeftButton, 0, listView->visualItemRect(listView->item(1)).center());
QAccessibleEvent selectionEvent(listView, QAccessible::Selection);
QAccessibleEvent selectionEvent(listView, QAccessible::SelectionAdd);
selectionEvent.setChild(1);
QAccessibleEvent focusEvent(listView, QAccessible::Focus);
focusEvent.setChild(1);
@ -2787,7 +2787,7 @@ void tst_QAccessibility::listTest()
QVERIFY(QTestAccessibility::containsEvent(&focusEvent));
QTest::mouseClick(listView->viewport(), Qt::LeftButton, 0, listView->visualItemRect(listView->item(2)).center());
QAccessibleEvent selectionEvent2(listView, QAccessible::Selection);
QAccessibleEvent selectionEvent2(listView, QAccessible::SelectionAdd);
selectionEvent2.setChild(2);
QAccessibleEvent focusEvent2(listView, QAccessible::Focus);
focusEvent2.setChild(2);
@ -3281,7 +3281,7 @@ void tst_QAccessibility::tableTest()
tableView->setSelectionBehavior(QAbstractItemView::SelectItems);
tableView->setSelectionMode(QAbstractItemView::SingleSelection);
tableView->selectionModel()->select(index00, QItemSelectionModel::ClearAndSelect);
QAccessibleEvent event(tableView, QAccessible::Selection);
QAccessibleEvent event(tableView, QAccessible::SelectionAdd);
event.setChild(12);
QCOMPARE(QTestAccessibility::containsEvent(&event), true);
QTestAccessibility::clearEvents();