summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTilman Sauerbeck <tilman@code-monkey.de>2012-08-17 18:14:12 +0200
committerQt by Nokia <qt-info@nokia.com>2012-08-23 16:38:03 +0200
commit465c6fe7a16365c2fb7b46b664faaa9c1bacd022 (patch)
tree5254d8b881249ac84f18188226ff62ef5446940f /src
parent88b4128ae0c992cedbbe785137ee55dfd623cf42 (diff)
Make QStatusBar text available via accessibility.
Change-Id: Iec3efb4b91bdba33fe93b928ff2349440e15aa35 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/widgets/qstatusbar.cpp10
-rw-r--r--src/plugins/accessible/widgets/main.cpp2
-rw-r--r--src/plugins/accessible/widgets/simplewidgets.cpp5
3 files changed, 16 insertions, 1 deletions
diff --git a/src/gui/widgets/qstatusbar.cpp b/src/gui/widgets/qstatusbar.cpp
index 5cfbe7cfe3..2cec5f714c 100644
--- a/src/gui/widgets/qstatusbar.cpp
+++ b/src/gui/widgets/qstatusbar.cpp
@@ -53,6 +53,10 @@
#include "qsizegrip.h"
#include "qmainwindow.h"
+#ifndef QT_NO_ACCESSIBILITY
+#include "qaccessible.h"
+#endif
+
#include <private/qlayoutengine_p.h>
#include <private/qwidget_p.h>
@@ -690,6 +694,12 @@ void QStatusBar::hideOrShow()
}
emit messageChanged(d->tempItem);
+
+#ifndef QT_NO_ACCESSIBILITY
+ if (QAccessible::isActive())
+ QAccessible::updateAccessibility(this, 0, QAccessible::NameChanged);
+#endif
+
repaint(d->messageRect());
}
diff --git a/src/plugins/accessible/widgets/main.cpp b/src/plugins/accessible/widgets/main.cpp
index f1fad350f8..ae1a090790 100644
--- a/src/plugins/accessible/widgets/main.cpp
+++ b/src/plugins/accessible/widgets/main.cpp
@@ -239,7 +239,7 @@ QAccessibleInterface *AccessibleFactory::create(const QString &classname, QObjec
iface = new QAccessibleGroupBox(widget);
#endif
} else if (classname == QLatin1String("QStatusBar")) {
- iface = new QAccessibleWidgetEx(widget, StatusBar);
+ iface = new QAccessibleDisplay(widget);
#ifndef QT_NO_PROGRESSBAR
} else if (classname == QLatin1String("QProgressBar")) {
iface = new QAccessibleProgressBar(widget);
diff --git a/src/plugins/accessible/widgets/simplewidgets.cpp b/src/plugins/accessible/widgets/simplewidgets.cpp
index 126045e543..2e1ca5b898 100644
--- a/src/plugins/accessible/widgets/simplewidgets.cpp
+++ b/src/plugins/accessible/widgets/simplewidgets.cpp
@@ -45,6 +45,7 @@
#include <qcheckbox.h>
#include <qpushbutton.h>
#include <qprogressbar.h>
+#include <qstatusbar.h>
#include <qradiobutton.h>
#include <qtoolbutton.h>
#include <qlabel.h>
@@ -524,6 +525,8 @@ QAccessible::Role QAccessibleDisplay::role(int child) const
} else if (qobject_cast<QProgressBar*>(object())) {
return ProgressBar;
#endif
+ } else if (qobject_cast<QStatusBar*>(object())) {
+ return StatusBar;
}
return QAccessibleWidgetEx::role(child);
}
@@ -546,6 +549,8 @@ QString QAccessibleDisplay::text(Text t, int child) const
else
str = QString::number(l->intValue());
#endif
+ } else if (qobject_cast<QStatusBar*>(object())) {
+ return qobject_cast<QStatusBar*>(object())->currentMessage();
}
}
break;