diff options
author | Frederik Gladhorn <frederik.gladhorn@nokia.com> | 2011-09-28 17:03:07 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-10-03 09:58:27 +0200 |
commit | b67708f3d3b162b77c12ba73e8885cc499a3046b (patch) | |
tree | abcc06b1e484a210739477ec4e44ebec3ed9abb9 /src | |
parent | 5ea07a9cd1220c1988199ed90a74dd4112fec6e9 (diff) |
Use interfaces in QAccessibleWidget childAt.
Simplify the implementation of childAt.
Using rect(child) depends on the virtual children.
For QAccessibleMenuBar the implementation would assert.
Change-Id: I6ef018a063beee67d7436dff148e8b0219ff2a3c
Reviewed-on: http://codereview.qt-project.org/5742
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/accessible/widgets/qaccessiblemenu.cpp | 9 | ||||
-rw-r--r-- | src/plugins/accessible/widgets/qaccessiblemenu.h | 1 | ||||
-rw-r--r-- | src/widgets/accessible/qaccessiblewidget.cpp | 24 |
3 files changed, 7 insertions, 27 deletions
diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.cpp b/src/plugins/accessible/widgets/qaccessiblemenu.cpp index 46954c4fbf..48fb471ace 100644 --- a/src/plugins/accessible/widgets/qaccessiblemenu.cpp +++ b/src/plugins/accessible/widgets/qaccessiblemenu.cpp @@ -199,15 +199,6 @@ QRect QAccessibleMenuBar::rect(int child) const return QAccessibleWidget::rect(child); } -int QAccessibleMenuBar::childAt(int x, int y) const -{ - for (int i = childCount(); i >= 0; --i) { - if (rect(i).contains(x,y)) - return i; - } - return -1; -} - QAccessibleInterface *QAccessibleMenuBar::child(int index) const { if (index < childCount()) diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.h b/src/plugins/accessible/widgets/qaccessiblemenu.h index 0144bf90b9..82bb93b3c4 100644 --- a/src/plugins/accessible/widgets/qaccessiblemenu.h +++ b/src/plugins/accessible/widgets/qaccessiblemenu.h @@ -85,7 +85,6 @@ public: QAccessibleInterface *child(int index) const; int childCount() const; - int childAt(int x, int y) const; QRect rect(int child) const; QString text(Text t, int child) const; diff --git a/src/widgets/accessible/qaccessiblewidget.cpp b/src/widgets/accessible/qaccessiblewidget.cpp index 930e28002c..e2c867ea96 100644 --- a/src/widgets/accessible/qaccessiblewidget.cpp +++ b/src/widgets/accessible/qaccessiblewidget.cpp @@ -231,24 +231,14 @@ int QAccessibleWidget::childAt(int x, int y) const if (!QRect(gp.x(), gp.y(), w->width(), w->height()).contains(x, y)) return -1; - QWidgetList list = childWidgets(w); - int ccount = childCount(); - - // a complex child - if (list.size() < ccount) { - for (int i = 1; i <= ccount; ++i) { - if (rect(i).contains(x, y)) - return i; - } - return 0; - } - - QPoint rp = w->mapFromGlobal(QPoint(x, y)); - for (int i = 0; i<list.size(); ++i) { - QWidget *child = list.at(i); - if (!child->isWindow() && !child->isHidden() && child->geometry().contains(rp)) { + for (int i = 0; i < childCount(); ++i) { + QAccessibleInterface *childIface = child(i); + bool found = false; + if (childIface->rect().contains(x, y)) + found = true; + delete childIface; + if (found) return i + 1; - } } return 0; } |