summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@nokia.com>2011-11-15 18:32:55 +0100
committerQt by Nokia <qt-info@nokia.com>2011-11-21 15:53:16 +0100
commit6e7f08182ea9a6e0e4f89c6b13ff8dcae1d3b87c (patch)
treef21315ed7fae074c147230f101a7d5be07d2ea6b
parent6f9fb98886c592060fb8c17520c49947659d0817 (diff)
Accessibility: Clean up usage of navigate.
Prefer to use parent/child functions instead. Change-Id: Ic92165b9439eb750c9d762ddf5dcd2a5ccf0277d Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
-rw-r--r--src/gui/accessible/qplatformaccessibility_qpa.cpp3
-rw-r--r--src/plugins/accessible/widgets/complexwidgets.cpp27
-rw-r--r--src/plugins/accessible/widgets/itemviews.cpp5
-rw-r--r--src/plugins/accessible/widgets/qaccessiblemenu.cpp39
-rw-r--r--src/plugins/accessible/widgets/qaccessiblewidgets.cpp3
-rw-r--r--src/plugins/platforms/windows/qwindowsaccessibility.cpp6
-rw-r--r--tests/auto/integrationtests/macgui/guitest.cpp9
-rw-r--r--tests/auto/integrationtests/qaccessibility/tst_qaccessibility.cpp24
8 files changed, 47 insertions, 69 deletions
diff --git a/src/gui/accessible/qplatformaccessibility_qpa.cpp b/src/gui/accessible/qplatformaccessibility_qpa.cpp
index fa8da1f78c..7df827552d 100644
--- a/src/gui/accessible/qplatformaccessibility_qpa.cpp
+++ b/src/gui/accessible/qplatformaccessibility_qpa.cpp
@@ -88,8 +88,7 @@ void QPlatformAccessibility::notifyAccessibilityUpdate(QObject *o,
// updates for List/Table/Tree should send child
if (who) {
- QAccessibleInterface *child;
- iface->navigate(QAccessible::Child, who, &child);
+ QAccessibleInterface *child = iface->child(who - 1);
if (child) {
delete iface;
iface = child;
diff --git a/src/plugins/accessible/widgets/complexwidgets.cpp b/src/plugins/accessible/widgets/complexwidgets.cpp
index f26637bd17..5f144b6952 100644
--- a/src/plugins/accessible/widgets/complexwidgets.cpp
+++ b/src/plugins/accessible/widgets/complexwidgets.cpp
@@ -512,12 +512,11 @@ int QAccessibleItemRow::navigate(RelationFlag relation, int index,
return index;}
case Sibling:
if (index) {
- QAccessibleInterface *ifaceParent = 0;
- navigate(Ancestor, 1, &ifaceParent);
+ QAccessibleInterface *ifaceParent = parent();
if (ifaceParent) {
- int entry = ifaceParent->navigate(Child, index, iface);
+ *iface = ifaceParent->child(index - 1);
delete ifaceParent;
- return entry;
+ return *iface ? 0 : -1;
}
}
return -1;
@@ -589,11 +588,11 @@ QAccessible::State QAccessibleItemRow::state(int child) const
if (!view)
return st;
- QAccessibleInterface *parent = 0;
+ QAccessibleInterface *parentIface = parent();
QRect globalRect;
- if (navigate(Ancestor, 1, &parent) == 0) {
- globalRect = parent->rect(0);
- delete parent;
+ if (parentIface) {
+ globalRect = parentIface->rect(0);
+ delete parentIface;
}
if (!globalRect.intersects(rect(child)))
st |= Invisible;
@@ -998,11 +997,11 @@ void QAccessibleItemView::setText(Text t, int child, const QString &text)
}
}
-QRect QAccessibleItemView::rect(int child) const
+QRect QAccessibleItemView::rect(int childIndex) const
{
if (atViewport()) {
QRect r;
- if (!child) {
+ if (!childIndex) {
// Make sure that the rect *include* the vertical and horizontal headers, while
// not including the potential vertical and horizontal scrollbars.
QAbstractItemView *w = itemView();
@@ -1025,16 +1024,16 @@ QRect QAccessibleItemView::rect(int child) const
r.adjust(0, 0, -vscrollWidth, -hscrollHeight);
}
} else {
- QAccessibleInterface *iface = 0;
- if (navigate(Child, child, &iface) == 0) {
+ QAccessibleInterface *iface = child(childIndex - 1);
+ if (iface) {
r = iface->rect(0);
delete iface;
}
}
return r;
} else {
- QRect r = QAccessibleAbstractScrollArea::rect(child);
- if (child == 1) {
+ QRect r = QAccessibleAbstractScrollArea::rect(childIndex);
+ if (childIndex == 1) {
// include the potential vertical and horizontal headers
const QHeaderView *header = verticalHeader();
diff --git a/src/plugins/accessible/widgets/itemviews.cpp b/src/plugins/accessible/widgets/itemviews.cpp
index 98d298263c..8b03bba686 100644
--- a/src/plugins/accessible/widgets/itemviews.cpp
+++ b/src/plugins/accessible/widgets/itemviews.cpp
@@ -851,10 +851,9 @@ int QAccessibleTable2Cell::navigate(RelationFlag relation, int index, QAccessibl
case Sibling:
if (index > 0) {
QAccessibleInterface *parent = queryAccessibleInterface(view);
- int ret = parent->navigate(QAccessible::Child, index, iface);
+ *iface = parent->child(index - 1);
delete parent;
- if (*iface)
- return ret;
+ return *iface ? 0 : -1;
}
return -1;
diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.cpp b/src/plugins/accessible/widgets/qaccessiblemenu.cpp
index f2978267b8..8e0f2a0c1a 100644
--- a/src/plugins/accessible/widgets/qaccessiblemenu.cpp
+++ b/src/plugins/accessible/widgets/qaccessiblemenu.cpp
@@ -272,50 +272,45 @@ QAccessibleInterface *QAccessibleMenuItem::child(int index) const
return 0;
}
-int QAccessibleMenuItem::navigate(RelationFlag relation, int entry, QAccessibleInterface ** target ) const
+int QAccessibleMenuItem::navigate(RelationFlag relation, int entry, QAccessibleInterface **target) const
{
- int ret = -1;
if (entry < 0) {
*target = 0;
- return ret;
+ return -1;
}
switch (relation) {
case Child:
*target = child(entry - 1);
- ret = *target ? 0 : -1;
break;
case Ancestor:
*target = parent();
- return 0;
+ break;
case Up:
case Down:{
- QAccessibleInterface *parent = 0;
- int ent = navigate(Ancestor, 1, &parent);
- if (ent == 0) {
- int index = parent->indexOfChild(this);
+ QAccessibleInterface *parentIface = parent();
+ if (parentIface) {
+ int index = parentIface->indexOfChild(this);
if (index != -1) {
index += (relation == Down ? +1 : -1);
- ret = parent->navigate(Child, index, target);
+ *target = parentIface->child(index - 1);
}
}
- delete parent;
- break;}
+ delete parentIface;
+ break;
+ }
case Sibling: {
- QAccessibleInterface *parent = 0;
- int ent = navigate(Ancestor, 1, &parent);
- if (ent == 0) {
- ret = parent->navigate(Child, entry, target);
- }
- delete parent;
- break;}
+ QAccessibleInterface *parentIface = parent();
+ if (parentIface)
+ *target = parentIface->child(entry - 1);
+ delete parentIface;
+ break;
+ }
default:
break;
}
- if (ret == -1)
- *target = 0;
- return ret;
+ return *target ? 0 : -1;
}
QObject *QAccessibleMenuItem::object() const
diff --git a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp
index a79507b3ce..31a3aa7032 100644
--- a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp
+++ b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp
@@ -1419,9 +1419,6 @@ int QAccessibleTitleBar::navigate(RelationFlag relation, int entry, QAccessibleI
case Ancestor:
*iface = parent();
return iface ? 0 : -1;
- case Sibling:
- return navigate(Child, entry, iface);
- break;
default:
break;
}
diff --git a/src/plugins/platforms/windows/qwindowsaccessibility.cpp b/src/plugins/platforms/windows/qwindowsaccessibility.cpp
index 4a12f8f7d2..66afb636a2 100644
--- a/src/plugins/platforms/windows/qwindowsaccessibility.cpp
+++ b/src/plugins/platforms/windows/qwindowsaccessibility.cpp
@@ -824,8 +824,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::accNavigate(long navDir, VARIANT v
case NAVDIR_NEXT:
case NAVDIR_PREVIOUS:
if (!varStart.lVal){
- QAccessibleInterface *parent = 0;
- accessible->navigate(Ancestor, 1, &parent);
+ QAccessibleInterface *parent = accessible->parent();
if (parent) {
int index = parent->indexOfChild(accessible);
index += (navDir == NAVDIR_NEXT) ? 1 : -1;
@@ -944,8 +943,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accParent(IDispatch** ppdispPa
if (!accessible->isValid())
return E_FAIL;
- QAccessibleInterface *acc = 0;
- accessible->navigate(Ancestor, 1, &acc);
+ QAccessibleInterface *acc = accessible->parent();
if (acc) {
QWindowsAccessible* wacc = new QWindowsAccessible(acc);
wacc->QueryInterface(IID_IDispatch, (void**)ppdispParent);
diff --git a/tests/auto/integrationtests/macgui/guitest.cpp b/tests/auto/integrationtests/macgui/guitest.cpp
index 521134f6b8..ac8b66ba9b 100644
--- a/tests/auto/integrationtests/macgui/guitest.cpp
+++ b/tests/auto/integrationtests/macgui/guitest.cpp
@@ -109,7 +109,7 @@ InterfaceChildPair WidgetNavigator::find(QAccessible::Text textType, const QStri
}
/*
- Recursiveley navigates the accessible hiearchy looking for an interfafce that
+ Recursiveley navigates the accessible hiearchy looking for an interface that
passsed the Test (meaning it returns true).
*/
InterfaceChildPair WidgetNavigator::recursiveSearch(TestBase *test, QAccessibleInterface *iface, int possibleChild)
@@ -128,13 +128,10 @@ InterfaceChildPair WidgetNavigator::recursiveSearch(TestBase *test, QAccessibleI
const int numChildren = testInterface.iface->childCount();
for (int i = 0; i < numChildren; ++i) {
- QAccessibleInterface *childInterface = 0;
- int newPossibleChild = testInterface.iface->navigate(QAccessible::Child, i + 1, &childInterface);
+ QAccessibleInterface *childInterface = testInterface.iface->child(i);
if (childInterface) {
- todoInterfaces.push(InterfaceChildPair(childInterface, newPossibleChild));
+ todoInterfaces.push(InterfaceChildPair(childInterface, 0));
deleteInDestructor(childInterface);
- } else if (newPossibleChild != -1) {
- todoInterfaces.push(InterfaceChildPair(testInterface.iface, newPossibleChild));
}
}
}
diff --git a/tests/auto/integrationtests/qaccessibility/tst_qaccessibility.cpp b/tests/auto/integrationtests/qaccessibility/tst_qaccessibility.cpp
index 9b2d015005..fc583d8bd8 100644
--- a/tests/auto/integrationtests/qaccessibility/tst_qaccessibility.cpp
+++ b/tests/auto/integrationtests/qaccessibility/tst_qaccessibility.cpp
@@ -172,8 +172,7 @@ static int verifyHierarchy(QAccessibleInterface *iface)
if2 = iface->child(i);
EXPECT(if2 != 0);
// navigate Ancestor...
- QAccessibleInterface *parent = 0;
- parent = if2->parent();
+ QAccessibleInterface *parent = if2->parent();
EXPECT(iface->object() == parent->object());
delete parent;
@@ -1533,8 +1532,8 @@ void tst_QAccessibility::menuTest()
QAccessibleInterface *iface2 = 0;
// traverse siblings with navigate(Sibling, ...)
- int entry = interface->navigate(QAccessible::Child, 1, &iface);
- QCOMPARE(entry, 0);
+ int entry;
+ iface = interface->child(0);
QVERIFY(iface);
QCOMPARE(iface->role(), QAccessible::MenuItem);
@@ -1555,8 +1554,7 @@ void tst_QAccessibility::menuTest()
delete iface;
// traverse menu items with navigate(Down, ...)
- entry = interface->navigate(QAccessible::Child, 1, &iface);
- QCOMPARE(entry, 0);
+ iface = interface->child(0);
QVERIFY(iface);
QCOMPARE(iface->role(), QAccessible::MenuItem);
@@ -1571,8 +1569,7 @@ void tst_QAccessibility::menuTest()
delete iface;
// traverse menu items with navigate(Up, ...)
- entry = interface->navigate(QAccessible::Child, interface->childCount(), &iface);
- QCOMPARE(entry, 0);
+ iface = interface->child(interface->childCount() - 1);
QVERIFY(iface);
QCOMPARE(iface->role(), QAccessible::MenuItem);
@@ -1587,13 +1584,12 @@ void tst_QAccessibility::menuTest()
delete iface;
// "New" item
- entry = interface->navigate(QAccessible::Child, 1, &iface);
- QCOMPARE(entry, 0);
+ iface = interface->child(0);
QVERIFY(iface);
QCOMPARE(iface->role(), QAccessible::MenuItem);
// "New" menu
- entry = iface->navigate(QAccessible::Child, 1, &iface2);
+ iface2 = iface->child(0);
delete iface;
iface = iface2;
QCOMPARE(entry, 0);
@@ -1601,10 +1597,9 @@ void tst_QAccessibility::menuTest()
QCOMPARE(iface->role(), QAccessible::PopupMenu);
// "Text file" menu item
- entry = iface->navigate(QAccessible::Child, 1, &iface2);
+ iface2 = iface->child(0);
delete iface;
iface = iface2;
- QCOMPARE(entry, 0);
QVERIFY(iface);
QCOMPARE(iface->role(), QAccessible::MenuItem);
@@ -1905,8 +1900,7 @@ void tst_QAccessibility::mdiSubWindowTest()
if (isSubWindowsPlacedNextToEachOther) {
// This part of the test can only be run if the sub windows are
// placed next to each other.
- QAccessibleInterface *destination = 0;
- QCOMPARE(interface->navigate(QAccessible::Child, 1, &destination), 0);
+ QAccessibleInterface *destination = interface->child(0);
QVERIFY(destination);
QCOMPARE(destination->object(), (QObject*)testWindow->widget());
delete destination;