From 92be18bfd0cfff5af49f70d786db4d76980d710a Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Wed, 24 Aug 2011 16:16:14 +0200 Subject: Add a function to get all relations of an accessible. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a default implementation for RelationTo. Usually this should be empty and it is pointless to return the parent-child releations in this function. Instead we will have proper parent-child functions and also remove this functionallity from navigate. Having default implementations for these removes the necessity to reimplement them to return Unrelated in many places. Change-Id: I13b7ad3256533681e5a0548ae15da98ca0d16b94 Reviewed-on: http://codereview.qt-project.org/4785 Reviewed-by: Qt Sanity Bot Reviewed-by: Jan-Arve Sæther --- src/widgets/accessible/qaccessible.cpp | 25 ++++++++++++++++++++++--- src/widgets/accessible/qaccessible.h | 4 +++- 2 files changed, 25 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/widgets/accessible/qaccessible.cpp b/src/widgets/accessible/qaccessible.cpp index 10e5785cd5..e657cd0db1 100644 --- a/src/widgets/accessible/qaccessible.cpp +++ b/src/widgets/accessible/qaccessible.cpp @@ -822,16 +822,35 @@ const QAccessibleInterface *other, int otherChild) const is returned. The returned value indicates the relation of the called object to - the \a other object, e.g. if this object is a child of \a other - the return value will be \c Child. + the \a other object, e.g. if this object is a label for \a other + the return value will be \c Label. + + Usually parent-child relations are not returned. The return value is a combination of the bit flags in the QAccessible::Relation enumeration. All objects provide this information. - \sa indexOfChild(), navigate() + \sa relations(), indexOfChild(), navigate() */ +QAccessible::Relation QAccessibleInterface::relationTo(int, + const QAccessibleInterface *, int) const +{ + return Unrelated; +} + +/*! + Returns the meaningful relations to other widgets. Usually this will not return parent/child + relations, unless they are handled in a specific way such as in tree views. + It will typically return the labelled-by and label relations. + + \sa relationTo(), navigate() +*/ +QVector > QAccessibleInterface::relations() const +{ + return QVector >(); +} /*! \fn int QAccessibleInterface::childAt(int x, int y) const diff --git a/src/widgets/accessible/qaccessible.h b/src/widgets/accessible/qaccessible.h index 3a59810866..f03f86ce7a 100644 --- a/src/widgets/accessible/qaccessible.h +++ b/src/widgets/accessible/qaccessible.h @@ -379,7 +379,9 @@ public: // relations virtual Relation relationTo(int child, const QAccessibleInterface *other, - int otherChild) const = 0; + int otherChild) const; + virtual QVector > relations() const; + virtual int childAt(int x, int y) const = 0; // navigation -- cgit v1.2.3