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
José Millán Soto 2012-09-22 23:19:44 +02:00 committed by The Qt Project
parent 687e31df80
commit 8bed283f13
2 changed files with 7 additions and 7 deletions

View File

@ -3162,7 +3162,7 @@ void QListView::currentChanged(const QModelIndex &current, 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);

View File

@ -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));