diff options
author | Jan-Arve Saether <jan-arve.saether@nokia.com> | 2012-01-19 14:20:54 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-06 10:15:09 +0100 |
commit | 1d18fd01645e3b9efcd1a2c5dd030a5fc0f5892a (patch) | |
tree | 84c4e4df3f91f80e07641a5a3b0b0cfcecbe6705 /src/widgets | |
parent | fdf9ee12916651c708dcd63d557e11e36ec7eb4e (diff) |
Remove QAccessible::FocusChild, add focusChild()
Also cleanup (reduce) all implementations of navigate() in order
to make the final removal of navigate smoother.
Change-Id: I2c216db8f5b2e40afcce8f859fc775053adc2fe3
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/accessible/qaccessiblewidget.cpp | 41 | ||||
-rw-r--r-- | src/widgets/accessible/qaccessiblewidget.h | 1 |
2 files changed, 15 insertions, 27 deletions
diff --git a/src/widgets/accessible/qaccessiblewidget.cpp b/src/widgets/accessible/qaccessiblewidget.cpp index a4a86e5d31..be579fecf8 100644 --- a/src/widgets/accessible/qaccessiblewidget.cpp +++ b/src/widgets/accessible/qaccessiblewidget.cpp @@ -339,10 +339,6 @@ QAccessible::Relation QAccessibleWidget::relationTo(const QAccessibleInterface * if (!o) return relation; - QWidget *focus = widget()->focusWidget(); - if (object() == focus && isAncestor(o, focus)) - relation |= QAccessible::FocusChild; - QACConnectionObject *connectionObject = (QACConnectionObject*)object(); for (int sig = 0; sig < d->primarySignals.count(); ++sig) { if (connectionObject->isSender(o, d->primarySignals.at(sig).toAscii())) { @@ -383,6 +379,20 @@ QAccessibleInterface *QAccessibleWidget::child(int index) const } /*! \reimp */ +QAccessibleInterface *QAccessibleWidget::focusChild() const +{ + if (widget()->hasFocus()) + return QAccessible::queryAccessibleInterface(object()); + + QWidget *fw = widget()->focusWidget(); + if (!fw) + return 0; + + if (isAncestor(widget(), fw) || fw == widget()) + return QAccessible::queryAccessibleInterface(fw); +} + +/*! \reimp */ int QAccessibleWidget::navigate(QAccessible::RelationFlag relation, int entry, QAccessibleInterface **target) const { @@ -394,29 +404,6 @@ int QAccessibleWidget::navigate(QAccessible::RelationFlag relation, int entry, switch (relation) { // Logical - case QAccessible::FocusChild: - { - if (widget()->hasFocus()) { - targetObject = object(); - break; - } - - QWidget *fw = widget()->focusWidget(); - if (!fw) - return -1; - - if (isAncestor(widget(), fw) || fw == widget()) - targetObject = fw; - /* ### - QWidget *parent = fw; - while (parent && !targetObject) { - parent = parent->parentWidget(); - if (parent == widget()) - targetObject = fw; - } - */ - } - break; case QAccessible::Label: if (entry > 0) { QAccessibleInterface *pIface = QAccessible::queryAccessibleInterface(parentObject()); diff --git a/src/widgets/accessible/qaccessiblewidget.h b/src/widgets/accessible/qaccessiblewidget.h index f96d298f90..d34d852e27 100644 --- a/src/widgets/accessible/qaccessiblewidget.h +++ b/src/widgets/accessible/qaccessiblewidget.h @@ -62,6 +62,7 @@ public: int childCount() const; int indexOfChild(const QAccessibleInterface *child) const; QAccessible::Relation relationTo(const QAccessibleInterface *other) const; + QAccessibleInterface *focusChild() const; QRect rect() const; |