From 1d18fd01645e3b9efcd1a2c5dd030a5fc0f5892a Mon Sep 17 00:00:00 2001 From: Jan-Arve Saether Date: Thu, 19 Jan 2012 14:20:54 +0100 Subject: 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 --- src/widgets/accessible/qaccessiblewidget.cpp | 41 ++++++++++------------------ src/widgets/accessible/qaccessiblewidget.h | 1 + 2 files changed, 15 insertions(+), 27 deletions(-) (limited to 'src/widgets/accessible') 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())) { @@ -382,6 +378,20 @@ QAccessibleInterface *QAccessibleWidget::child(int index) const return 0; } +/*! \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; -- cgit v1.2.3