Correct accessibility index handling in QListView
QListView::currentChanged and QListView::selectionChanged changed to use 0-based indexes instead of 1-based indexes. Change-Id: Ie618970c9a37ec76156dbfab2e86685c3c8f374c Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>bb10
parent
687e31df80
commit
8bed283f13
|
|
@ -3162,7 +3162,7 @@ void QListView::currentChanged(const QModelIndex ¤t, const QModelIndex &pr
|
|||
#ifndef QT_NO_ACCESSIBILITY
|
||||
if (QAccessible::isActive()) {
|
||||
if (current.isValid()) {
|
||||
int entry = visualIndex(current) + 1;
|
||||
int entry = visualIndex(current);
|
||||
QAccessibleEvent event(this, QAccessible::Focus);
|
||||
event.setChild(entry);
|
||||
QAccessible::updateAccessibility(&event);
|
||||
|
|
@ -3183,14 +3183,14 @@ void QListView::selectionChanged(const QItemSelection &selected,
|
|||
// ### does not work properly for selection ranges.
|
||||
QModelIndex sel = selected.indexes().value(0);
|
||||
if (sel.isValid()) {
|
||||
int entry = visualIndex(sel) + 1;
|
||||
int entry = visualIndex(sel);
|
||||
QAccessibleEvent event(this, QAccessible::Selection);
|
||||
event.setChild(entry);
|
||||
QAccessible::updateAccessibility(&event);
|
||||
}
|
||||
QModelIndex desel = deselected.indexes().value(0);
|
||||
if (desel.isValid()) {
|
||||
int entry = visualIndex(desel) + 1;
|
||||
int entry = visualIndex(desel);
|
||||
QAccessibleEvent event(this, QAccessible::SelectionRemove);
|
||||
event.setChild(entry);
|
||||
QAccessible::updateAccessibility(&event);
|
||||
|
|
|
|||
|
|
@ -2369,17 +2369,17 @@ 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);
|
||||
selectionEvent.setChild(2);
|
||||
selectionEvent.setChild(1);
|
||||
QAccessibleEvent focusEvent(listView, QAccessible::Focus);
|
||||
focusEvent.setChild(2);
|
||||
focusEvent.setChild(1);
|
||||
QVERIFY(QTestAccessibility::containsEvent(&selectionEvent));
|
||||
QVERIFY(QTestAccessibility::containsEvent(&focusEvent));
|
||||
QTest::mouseClick(listView->viewport(), Qt::LeftButton, 0, listView->visualItemRect(listView->item(2)).center());
|
||||
|
||||
QAccessibleEvent selectionEvent2(listView, QAccessible::Selection);
|
||||
selectionEvent2.setChild(3);
|
||||
selectionEvent2.setChild(2);
|
||||
QAccessibleEvent focusEvent2(listView, QAccessible::Focus);
|
||||
focusEvent2.setChild(3);
|
||||
focusEvent2.setChild(2);
|
||||
QVERIFY(QTestAccessibility::containsEvent(&selectionEvent2));
|
||||
QVERIFY(QTestAccessibility::containsEvent(&focusEvent2));
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue