diff options
author | Frederik Gladhorn <frederik.gladhorn@nokia.com> | 2011-11-15 18:32:55 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-21 15:53:16 +0100 |
commit | 6e7f08182ea9a6e0e4f89c6b13ff8dcae1d3b87c (patch) | |
tree | f21315ed7fae074c147230f101a7d5be07d2ea6b /src | |
parent | 6f9fb98886c592060fb8c17520c49947659d0817 (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>
Diffstat (limited to 'src')
6 files changed, 35 insertions, 48 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); |