summaryrefslogtreecommitdiffstats
path: root/src/plugins/accessible/widgets/simplewidgets.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@nokia.com>2011-09-15 21:41:54 +0200
committerQt by Nokia <qt-info@nokia.com>2011-09-19 12:06:13 +0200
commit76d0d1926466d42b1b25f0bac642c1e0f239074c (patch)
tree84397813957307cf1ac393ac29d045acc6e08846 /src/plugins/accessible/widgets/simplewidgets.cpp
parent3647a00d47fd774daccce9f143cc2046fb59099d (diff)
Add parent and child functions to QAccessibleInterface.
Stop the mis-use of navigate to find the parent. In order to make navigation straight forward parent and child functions are now part of QAccessibleInterface. This allows navigating the hierarchy of accessible objects without the 1-based indexes in the navigate function which lead to confusion. Eventually the support for Ancestor in navigate can be completely removed and forwarded in the windows bridge if needed. In addition default parameters for virtual children. This will make the transition smooth since it allows to remove the integer already. Change-Id: I278287ce17161f9fa46797ac244676778c859576 Reviewed-on: http://codereview.qt-project.org/5024 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com> Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Diffstat (limited to 'src/plugins/accessible/widgets/simplewidgets.cpp')
-rw-r--r--src/plugins/accessible/widgets/simplewidgets.cpp64
1 files changed, 41 insertions, 23 deletions
diff --git a/src/plugins/accessible/widgets/simplewidgets.cpp b/src/plugins/accessible/widgets/simplewidgets.cpp
index f74aba2e62..eae8bd907d 100644
--- a/src/plugins/accessible/widgets/simplewidgets.cpp
+++ b/src/plugins/accessible/widgets/simplewidgets.cpp
@@ -106,8 +106,7 @@ QAbstractButton *QAccessibleButton::button() const
/*! \reimp */
QString QAccessibleButton::actionText(int action, Text text, int child) const
{
- if (child)
- return QString();
+ Q_ASSERT(child == 0);
if (text == Name) switch (action) {
case Press:
@@ -117,7 +116,7 @@ QString QAccessibleButton::actionText(int action, Text text, int child) const
return QPushButton::tr("Open");
case CheckBox:
{
- if (state(child) & Checked)
+ if (state(0) & Checked)
return QCheckBox::tr("Uncheck");
QCheckBox *cb = qobject_cast<QCheckBox*>(object());
if (!cb || !cb->isTristate() || cb->checkState() == Qt::PartiallyChecked)
@@ -138,7 +137,8 @@ QString QAccessibleButton::actionText(int action, Text text, int child) const
/*! \reimp */
bool QAccessibleButton::doAction(int action, int child, const QVariantList &params)
{
- if (child || !widget()->isEnabled())
+ Q_ASSERT(child == 0);
+ if (!widget()->isEnabled())
return false;
switch (action) {
@@ -161,6 +161,7 @@ bool QAccessibleButton::doAction(int action, int child, const QVariantList &para
/*! \reimp */
QString QAccessibleButton::text(Text t, int child) const
{
+ Q_ASSERT(child == 0);
QString str;
switch (t) {
case Accelerator:
@@ -190,7 +191,8 @@ QString QAccessibleButton::text(Text t, int child) const
/*! \reimp */
QAccessible::State QAccessibleButton::state(int child) const
{
- State state = QAccessibleWidget::state(child);
+ Q_ASSERT(child == 0);
+ State state = QAccessibleWidget::state(0);
QAbstractButton *b = button();
QCheckBox *cb = qobject_cast<QCheckBox *>(b);
@@ -336,11 +338,16 @@ bool QAccessibleToolButton::isSplitButton() const
/*! \reimp */
QAccessible::Role QAccessibleToolButton::role(int child) const
{
- if (isSplitButton()) switch(child) {
- case ButtonExecute:
- return PushButton;
- case ButtonDropMenu:
- return ButtonMenu;
+ Q_ASSERT(child == 0);
+
+ // FIXME
+ if (isSplitButton()) {
+ switch (child) {
+ case ButtonExecute:
+ return PushButton;
+ case ButtonDropMenu:
+ return ButtonMenu;
+ }
}
return QAccessibleButton::role(child);
}
@@ -348,6 +355,7 @@ QAccessible::Role QAccessibleToolButton::role(int child) const
/*! \reimp */
QAccessible::State QAccessibleToolButton::state(int child) const
{
+ Q_ASSERT(child == 0);
QAccessible::State st = QAccessibleButton::state(child);
if (toolButton()->autoRaise())
st |= HotTracked;
@@ -374,22 +382,24 @@ int QAccessibleToolButton::childCount() const
*/
QRect QAccessibleToolButton::rect(int child) const
{
+ Q_ASSERT(child == 0);
if (!toolButton()->isVisible())
return QRect();
- if (!child)
- return QAccessibleButton::rect(child);
- QStyleOptionToolButton opt;
- opt.init(widget());
- QRect subrect = widget()->style()->subControlRect(QStyle::CC_ToolButton, &opt,
- QStyle::SC_ToolButtonMenu, toolButton());
+ return QAccessibleButton::rect(child);
- if (child == ButtonExecute)
- subrect = QRect(0, 0, subrect.x(), widget()->height());
+ // FIXME: sub buttons when SplitButton
+// QStyleOptionToolButton opt;
+// opt.init(widget());
+// QRect subrect = widget()->style()->subControlRect(QStyle::CC_ToolButton, &opt,
+// QStyle::SC_ToolButtonMenu, toolButton());
- QPoint ntl = widget()->mapToGlobal(subrect.topLeft());
- subrect.moveTopLeft(ntl);
- return subrect;
+// if (child == ButtonExecute)
+// subrect = QRect(0, 0, subrect.x(), widget()->height());
+
+// QPoint ntl = widget()->mapToGlobal(subrect.topLeft());
+// subrect.moveTopLeft(ntl);
+// return subrect;
}
/*!
@@ -400,6 +410,7 @@ QRect QAccessibleToolButton::rect(int child) const
*/
QString QAccessibleToolButton::text(Text t, int child) const
{
+ Q_ASSERT(child == 0);
QString str;
switch (t) {
case Name:
@@ -423,6 +434,7 @@ QString QAccessibleToolButton::text(Text t, int child) const
*/
int QAccessibleToolButton::actionCount(int child) const
{
+ Q_ASSERT(child == 0);
// each subelement has one action
if (child)
return isSplitButton() ? 1 : 0;
@@ -445,6 +457,7 @@ int QAccessibleToolButton::actionCount(int child) const
*/
QString QAccessibleToolButton::actionText(int action, Text text, int child) const
{
+ Q_ASSERT(child == 0);
if (text == Name) switch(child) {
case ButtonExecute:
return QToolButton::tr("Press");
@@ -472,6 +485,7 @@ QString QAccessibleToolButton::actionText(int action, Text text, int child) cons
*/
bool QAccessibleToolButton::doAction(int action, int child, const QVariantList &params)
{
+ Q_ASSERT(child == 0);
if (!widget()->isEnabled())
return false;
if (action == 1 || child == ButtonDropMenu) {
@@ -507,6 +521,7 @@ QAccessibleDisplay::QAccessibleDisplay(QWidget *w, Role role)
/*! \reimp */
QAccessible::Role QAccessibleDisplay::role(int child) const
{
+ Q_ASSERT(child == 0);
QLabel *l = qobject_cast<QLabel*>(object());
if (l) {
if (l->pixmap())
@@ -530,6 +545,7 @@ QAccessible::Role QAccessibleDisplay::role(int child) const
/*! \reimp */
QString QAccessibleDisplay::text(Text t, int child) const
{
+ Q_ASSERT(child == 0);
QString str;
switch (t) {
case Name:
@@ -570,6 +586,7 @@ QString QAccessibleDisplay::text(Text t, int child) const
QAccessible::Relation QAccessibleDisplay::relationTo(int child, const QAccessibleInterface *other,
int otherChild) const
{
+ Q_ASSERT(child == 0);
Relation relation = QAccessibleWidget::relationTo(child, other, otherChild);
if (child || otherChild)
return relation;
@@ -689,6 +706,7 @@ QLineEdit *QAccessibleLineEdit::lineEdit() const
/*! \reimp */
QString QAccessibleLineEdit::text(Text t, int child) const
{
+ Q_ASSERT(child == 0);
QString str;
switch (t) {
case Value:
@@ -723,6 +741,7 @@ void QAccessibleLineEdit::setText(Text t, int control, const QString &text)
/*! \reimp */
QAccessible::State QAccessibleLineEdit::state(int child) const
{
+ Q_ASSERT(child == 0);
State state = QAccessibleWidget::state(child);
QLineEdit *l = lineEdit();
@@ -744,8 +763,7 @@ QAccessible::State QAccessibleLineEdit::state(int child) const
QVariant QAccessibleLineEdit::invokeMethod(QAccessible::Method method, int child,
const QVariantList &params)
{
- if (child)
- return QVariant();
+ Q_ASSERT(child == 0);
switch (method) {
case ListSupportedMethods: {