From 2e038d681c2616ef99db7696dee473c7db55cd04 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Fri, 27 Jun 2014 15:05:16 +0200 Subject: [PATCH] Accessibility: Password QLineEdit should use * as text replacement Change-Id: Ie07e86f1b6dff3096cab462f918994efa07b2a87 Reviewed-by: Caroline Chao --- src/widgets/accessible/simplewidgets.cpp | 2 ++ tests/auto/other/qaccessibility/tst_qaccessibility.cpp | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/widgets/accessible/simplewidgets.cpp b/src/widgets/accessible/simplewidgets.cpp index 5612aa2e75..89bda70f31 100644 --- a/src/widgets/accessible/simplewidgets.cpp +++ b/src/widgets/accessible/simplewidgets.cpp @@ -626,6 +626,8 @@ QString QAccessibleLineEdit::text(QAccessible::Text t) const case QAccessible::Value: if (lineEdit()->echoMode() == QLineEdit::Normal) str = lineEdit()->text(); + else if (lineEdit()->echoMode() != QLineEdit::NoEcho) + str = QString(lineEdit()->text().length(), QChar::fromLatin1('*')); break; default: break; diff --git a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp index 23b48212ad..078a20578d 100644 --- a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp +++ b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp @@ -2012,13 +2012,13 @@ void tst_QAccessibility::lineEditTest() QCOMPARE(iface->text(QAccessible::Value), secret); le->setEchoMode(QLineEdit::NoEcho); QVERIFY(iface->state().passwordEdit); - QVERIFY(iface->text(QAccessible::Value).isEmpty()); + QCOMPARE(iface->text(QAccessible::Value), QString()); le->setEchoMode(QLineEdit::Password); QVERIFY(iface->state().passwordEdit); - QVERIFY(iface->text(QAccessible::Value).isEmpty()); + QCOMPARE(iface->text(QAccessible::Value), QString(secret.length(), QLatin1Char('*'))); le->setEchoMode(QLineEdit::PasswordEchoOnEdit); QVERIFY(iface->state().passwordEdit); - QVERIFY(iface->text(QAccessible::Value).isEmpty()); + QCOMPARE(iface->text(QAccessible::Value), QString(secret.length(), QLatin1Char('*'))); le->setEchoMode(QLineEdit::Normal); QVERIFY(!(iface->state().passwordEdit)); QCOMPARE(iface->text(QAccessible::Value), secret);