summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJosé Millán Soto <fid@gpul.org>2012-09-23 11:46:21 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-09-27 06:07:27 +0200
commitc39b6e31884a2ef16aa71e7ed191c9dcff35eefe (patch)
tree6028b4951ddce02ee1cf0fb85b322fde389400ae /src
parentf6bd02317db7beadda1237df7feddd4a780415cb (diff)
Return correct accessible name when a label has rich text
When a QLabel was displaying rich text, the raw html was being returned as accessible name. Now the plain text is returned. Task-number: QTBUG-27302 Change-Id: I169d5eff527a0aef810af11d7712a362148974a5 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/accessible/widgets/simplewidgets.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/accessible/widgets/simplewidgets.cpp b/src/plugins/accessible/widgets/simplewidgets.cpp
index 555289cf26..2015929010 100644
--- a/src/plugins/accessible/widgets/simplewidgets.cpp
+++ b/src/plugins/accessible/widgets/simplewidgets.cpp
@@ -55,6 +55,7 @@
#include <qlineedit.h>
#include <qstyle.h>
#include <qstyleoption.h>
+#include <qtextdocument.h>
#include <QtCore/qvarlengtharray.h>
#ifdef Q_OS_MAC
@@ -392,7 +393,14 @@ QString QAccessibleDisplay::text(QAccessible::Text t) const
str = widget()->accessibleName();
if (str.isEmpty()) {
if (qobject_cast<QLabel*>(object())) {
- str = qobject_cast<QLabel*>(object())->text();
+ QLabel *label = qobject_cast<QLabel*>(object());
+ str = label->text();
+ if (label->textFormat() == Qt::RichText
+ || (label->textFormat() == Qt::AutoText && Qt::mightBeRichText(str))) {
+ QTextDocument doc;
+ doc.setHtml(str);
+ str = doc.toPlainText();
+ }
#ifndef QT_NO_LCDNUMBER
} else if (qobject_cast<QLCDNumber*>(object())) {
QLCDNumber *l = qobject_cast<QLCDNumber*>(object());