summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@nokia.com>2011-06-30 17:31:36 +0200
committerQt by Nokia <qt-info@nokia.com>2011-08-18 20:12:15 +0200
commitb0c1c98f76e2006a67da0b8455b44205753be30b (patch)
tree65e5561689ad87fb0c05423b489dcf9b078cf984
parent2c91710679556f1abc00a728d71137a33e0c6c52 (diff)
Use name for combobox on Unix.
This is more conforming to the AT-SPI specs. Also we have working relations for the label when a buddy is set. Reviewed-by: Gabi (cherry picked from commit 8be3168aa2f300f9a93a53b417704f3f10b1dc8b) Change-Id: I1831d5063b003df2d209aba99d54558b6493a3e9 Reviewed-on: http://codereview.qt.nokia.com/3027 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
-rw-r--r--src/gui/widgets/qcombobox.cpp18
-rw-r--r--src/plugins/accessible/widgets/complexwidgets.cpp12
2 files changed, 25 insertions, 5 deletions
diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp
index bf6730e9e3..650227214a 100644
--- a/src/gui/widgets/qcombobox.cpp
+++ b/src/gui/widgets/qcombobox.cpp
@@ -80,6 +80,9 @@
#if defined(Q_WS_S60)
#include "private/qt_s60_p.h"
#endif
+#ifndef QT_NO_ACCESSIBILITY
+#include "qaccessible.h"
+#endif
QT_BEGIN_NAMESPACE
@@ -1018,6 +1021,9 @@ void QComboBoxPrivate::_q_dataChanged(const QModelIndex &topLeft, const QModelIn
}
q->update();
}
+#ifndef QT_NO_ACCESSIBILITY
+ QAccessible::updateAccessibility(q, 0, QAccessible::NameChanged);
+#endif
}
void QComboBoxPrivate::_q_rowsInserted(const QModelIndex &parent, int start, int end)
@@ -1271,6 +1277,9 @@ void QComboBoxPrivate::_q_emitCurrentIndexChanged(const QModelIndex &index)
Q_Q(QComboBox);
emit q->currentIndexChanged(index.row());
emit q->currentIndexChanged(itemText(index));
+#ifndef QT_NO_ACCESSIBILITY
+ QAccessible::updateAccessibility(q, 0, QAccessible::NameChanged);
+#endif
}
QString QComboBoxPrivate::itemText(const QModelIndex &index) const
@@ -2635,6 +2644,9 @@ void QComboBox::clear()
{
Q_D(QComboBox);
d->model->removeRows(0, d->model->rowCount(d->root), d->root);
+#ifndef QT_NO_ACCESSIBILITY
+ QAccessible::updateAccessibility(this, 0, QAccessible::NameChanged);
+#endif
}
/*!
@@ -2651,6 +2663,9 @@ void QComboBox::clearEditText()
Q_D(QComboBox);
if (d->lineEdit)
d->lineEdit->clear();
+#ifndef QT_NO_ACCESSIBILITY
+ QAccessible::updateAccessibility(this, 0, QAccessible::NameChanged);
+#endif
}
/*!
@@ -2661,6 +2676,9 @@ void QComboBox::setEditText(const QString &text)
Q_D(QComboBox);
if (d->lineEdit)
d->lineEdit->setText(text);
+#ifndef QT_NO_ACCESSIBILITY
+ QAccessible::updateAccessibility(this, 0, QAccessible::NameChanged);
+#endif
}
/*!
diff --git a/src/plugins/accessible/widgets/complexwidgets.cpp b/src/plugins/accessible/widgets/complexwidgets.cpp
index 8843d3edcb..563d3b9472 100644
--- a/src/plugins/accessible/widgets/complexwidgets.cpp
+++ b/src/plugins/accessible/widgets/complexwidgets.cpp
@@ -1776,16 +1776,12 @@ QString QAccessibleComboBox::text(Text t, int child) const
switch (t) {
case Name:
+#ifndef Q_WS_X11 // on Linux we use relations for this, name is text (fall through to Value)
if (child == OpenList)
str = QComboBox::tr("Open");
else
str = QAccessibleWidgetEx::text(t, 0);
break;
-#ifndef QT_NO_SHORTCUT
- case Accelerator:
- if (child == OpenList)
- str = (QString)QKeySequence(Qt::Key_Down);
- // missing break?
#endif
case Value:
if (comboBox()->isEditable())
@@ -1793,6 +1789,12 @@ QString QAccessibleComboBox::text(Text t, int child) const
else
str = comboBox()->currentText();
break;
+#ifndef QT_NO_SHORTCUT
+ case Accelerator:
+ if (child == OpenList)
+ str = (QString)QKeySequence(Qt::Key_Down);
+ break;
+#endif
default:
break;
}