Correct accessibility index handling in QListView
authorJosé Millán Soto <fid@gpul.org>
Sat, 22 Sep 2012 21:19:44 +0000 (23:19 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Thu, 18 Oct 2012 22:44:54 +0000 (00:44 +0200)
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>
src/widgets/itemviews/qlistview.cpp
tests/auto/other/qaccessibility/tst_qaccessibility.cpp

index ff703c9..5923548 100644 (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);
index 9d61470..58ddf53 100644 (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));