From ed8f1a09f881a7be6ca6f718564d094afb156d2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Mill=C3=A1n=20Soto?= Date: Sun, 20 Mar 2011 19:19:32 +0100 Subject: QAccessibleTextEdit: Using x coordinate for calculate character width Merge-request: 1148 Task-number: QTBUG-18233 Reviewed-by: Frederik Gladhorn (cherry picked from commit 6cd51aeec11e7a70ba560c350274d5a4bd43c9b9) --- src/plugins/accessible/widgets/qaccessiblewidgets.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/plugins/accessible') diff --git a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp index 09b5015785..ca3f82776e 100644 --- a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp +++ b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp @@ -1334,7 +1334,7 @@ QRect QAccessibleTextEdit::characterRect(int offset, CoordinateType coordType) QRect r = edit->cursorRect(cursor); if (cursor.movePosition(QTextCursor::NextCharacter)) { - r.setWidth(edit->cursorRect(cursor).y() - r.y()); + r.setWidth(edit->cursorRect(cursor).x() - r.x()); } else { // we don't know the width of the character - maybe because we're at document end // in that case, IAccessible2 tells us to return the width of a default character -- cgit v1.2.3 From a5e191de57a86e6cf2d5836f2cc950046bfdabe9 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Thu, 17 Feb 2011 15:37:43 +0100 Subject: Window and Application fixes for accessibility. Return app name instead of window title for root accessibility object. Return Window as accessible type for the main window. Reviewed-by: Jan-Arve (cherry picked from commit 9a5b0d7a579572cd7e7faf869ab1a6684800f592) --- src/plugins/accessible/widgets/qaccessiblewidgets.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/plugins/accessible') diff --git a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp index ca3f82776e..c9db1dcf01 100644 --- a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp +++ b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp @@ -1603,7 +1603,7 @@ void QAccessibleTextEdit::setAttributes(int startOffset, int endOffset, const QS #ifndef QT_NO_MAINWINDOW QAccessibleMainWindow::QAccessibleMainWindow(QWidget *widget) - : QAccessibleWidgetEx(widget, Application) { } + : QAccessibleWidgetEx(widget, Window) { } QVariant QAccessibleMainWindow::invokeMethodEx(QAccessible::Method /*method*/, int /*child*/, const QVariantList & /*params*/) { -- cgit v1.2.3 From d27fb341ec55121b48ac0ac6ece8214dc9b99e64 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Mon, 14 Mar 2011 18:57:27 +0100 Subject: Fix text for checkable buttons, unit tests. Return Check/Uncheck for checkable buttons. Partially revive the buttons unit test. Reviewed-by: Jan-Arve (cherry picked from commit 6040eeebfb1ab3be3906295c373033cd5b5d9dc3) --- src/plugins/accessible/widgets/simplewidgets.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/plugins/accessible') diff --git a/src/plugins/accessible/widgets/simplewidgets.cpp b/src/plugins/accessible/widgets/simplewidgets.cpp index 21d2d671f3..1510292312 100644 --- a/src/plugins/accessible/widgets/simplewidgets.cpp +++ b/src/plugins/accessible/widgets/simplewidgets.cpp @@ -227,6 +227,9 @@ QString QAccessibleButton::description(int actionIndex) { switch (actionIndex) { case 0: + if (button()->isCheckable()) { + return QLatin1String("Toggles the button."); + } return QLatin1String("Clicks the button."); default: return QString(); @@ -237,6 +240,13 @@ QString QAccessibleButton::name(int actionIndex) { switch (actionIndex) { case 0: + if (button()->isCheckable()) { + if (button()->isChecked()) { + return QLatin1String("Uncheck"); + } else { + return QLatin1String("Check"); + } + } return QLatin1String("Press"); default: return QString(); @@ -247,6 +257,13 @@ QString QAccessibleButton::localizedName(int actionIndex) { switch (actionIndex) { case 0: + if (button()->isCheckable()) { + if (button()->isChecked()) { + return tr("Uncheck"); + } else { + return tr("Check"); + } + } return tr("Press"); default: return QString(); -- cgit v1.2.3 From 0fbeed69a42415b375e33a9c8dcceff887a5df1c Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Fri, 18 Mar 2011 17:41:01 +0100 Subject: Make navigation in TabWidgets consistent. navigate would not return the right index in the parent if the current widget was not the visible one. Reviewed-by: Jan-Arve (cherry picked from commit fdeeaa9d61efea9cca783a1d4098ae505df24390) --- src/plugins/accessible/widgets/qaccessiblewidgets.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/plugins/accessible') diff --git a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp index c9db1dcf01..4402932a29 100644 --- a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp +++ b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp @@ -401,9 +401,14 @@ int QAccessibleStackedWidget::childCount() const int QAccessibleStackedWidget::indexOfChild(const QAccessibleInterface *child) const { - if (!child || (stackedWidget()->currentWidget() != child->object())) + if (!child) return -1; - return 1; + + QWidget* widget = qobject_cast(child->object()); + int index = stackedWidget()->indexOf(widget); + if (index >= 0) // one based counting of children + return index + 1; + return -1; } int QAccessibleStackedWidget::navigate(RelationFlag relation, int entry, QAccessibleInterface **target) const @@ -413,9 +418,9 @@ int QAccessibleStackedWidget::navigate(RelationFlag relation, int entry, QAccess QObject *targetObject = 0; switch (relation) { case Child: - if (entry != 1) + if (entry < 1 || entry > stackedWidget()->count()) return -1; - targetObject = stackedWidget()->currentWidget(); + targetObject = stackedWidget()->widget(entry-1); break; default: return QAccessibleWidgetEx::navigate(relation, entry, target); -- cgit v1.2.3 From 1422ce7ded3848501df2b4dd6cb9a4434a5dda36 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Fri, 1 Apr 2011 12:10:13 +0200 Subject: Let QAccessibleButton::text return something even when not visible. Buttons would not report their text when hidden, which is inconsistent. Reviewed-by: Jan-Arve (cherry picked from commit 1897ca20a343121422b354a7910814ddd37abd17) --- src/plugins/accessible/widgets/simplewidgets.cpp | 3 --- 1 file changed, 3 deletions(-) (limited to 'src/plugins/accessible') diff --git a/src/plugins/accessible/widgets/simplewidgets.cpp b/src/plugins/accessible/widgets/simplewidgets.cpp index 1510292312..afd2c80ef0 100644 --- a/src/plugins/accessible/widgets/simplewidgets.cpp +++ b/src/plugins/accessible/widgets/simplewidgets.cpp @@ -155,9 +155,6 @@ bool QAccessibleButton::doAction(int action, int child, const QVariantList ¶ QString QAccessibleButton::text(Text t, int child) const { QString str; - if (!widget()->isVisible()) - return str; - switch (t) { case Accelerator: { -- cgit v1.2.3 From 2c7c8cf5d0a5d44b2dd84181c1f1a1e84fd5e0ac Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Fri, 1 Apr 2011 12:12:32 +0200 Subject: Don't crash when requesting text. Sometimes during initialization the QAccessibleItemRow will still be in an invalid state. Reviewed-by: Jan-Arve (cherry picked from commit 90b4cf4b1aa0f70a62118e200e76dc1dc57985cc) --- src/plugins/accessible/widgets/complexwidgets.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/plugins/accessible') diff --git a/src/plugins/accessible/widgets/complexwidgets.cpp b/src/plugins/accessible/widgets/complexwidgets.cpp index e6384133c0..85be0b0131 100644 --- a/src/plugins/accessible/widgets/complexwidgets.cpp +++ b/src/plugins/accessible/widgets/complexwidgets.cpp @@ -971,7 +971,11 @@ QString QAccessibleItemView::text(Text t, int child) const return QAccessibleAbstractScrollArea::text(t, child); QAccessibleItemRow item(itemView(), childIndex(child)); - return item.text(t, 1); + if (item.isValid()) { + return item.text(t, 1); + } else { + return QString(); + } } else { return QAccessibleAbstractScrollArea::text(t, child); } -- cgit v1.2.3 From a92f96efa23e62d408b111e7e8595bd67b9722b3 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Fri, 22 Apr 2011 15:21:35 +0200 Subject: Return name and allow actions for invisible accessible items. There is no reason not to report the name or allow actions when a widget is invisible. Reviewed-by: Morten Sorvig (cherry picked from commit b88b2cb05c56a4c936a073ccf53c9fb3ad50d5d8) --- src/plugins/accessible/widgets/simplewidgets.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'src/plugins/accessible') diff --git a/src/plugins/accessible/widgets/simplewidgets.cpp b/src/plugins/accessible/widgets/simplewidgets.cpp index afd2c80ef0..aa64630731 100644 --- a/src/plugins/accessible/widgets/simplewidgets.cpp +++ b/src/plugins/accessible/widgets/simplewidgets.cpp @@ -131,7 +131,7 @@ QString QAccessibleButton::actionText(int action, Text text, int child) const /*! \reimp */ bool QAccessibleButton::doAction(int action, int child, const QVariantList ¶ms) { - if (child || !widget()->isEnabled() || !widget()->isVisible()) + if (child || !widget()->isEnabled()) return false; switch (action) { @@ -394,9 +394,6 @@ QRect QAccessibleToolButton::rect(int child) const QString QAccessibleToolButton::text(Text t, int child) const { QString str; - if (!toolButton()->isVisible()) - return str; - switch (t) { case Name: str = toolButton()->text(); @@ -468,7 +465,7 @@ QString QAccessibleToolButton::actionText(int action, Text text, int child) cons */ bool QAccessibleToolButton::doAction(int action, int child, const QVariantList ¶ms) { - if (!widget()->isEnabled() || !widget()->isVisible()) + if (!widget()->isEnabled()) return false; if (action == 1 || child == ButtonDropMenu) { if(!child) @@ -527,8 +524,6 @@ QAccessible::Role QAccessibleDisplay::role(int child) const QString QAccessibleDisplay::text(Text t, int child) const { QString str; - if (!widget()->isVisible()) - return str; switch (t) { case Name: str = widget()->accessibleName(); @@ -688,8 +683,6 @@ QLineEdit *QAccessibleLineEdit::lineEdit() const QString QAccessibleLineEdit::text(Text t, int child) const { QString str; - if (!lineEdit()->isVisible()) - return str; switch (t) { case Value: if (lineEdit()->echoMode() == QLineEdit::Normal) @@ -706,8 +699,6 @@ QString QAccessibleLineEdit::text(Text t, int child) const /*! \reimp */ void QAccessibleLineEdit::setText(Text t, int control, const QString &text) { - if (!lineEdit()->isVisible()) - return; if (t != Value || control) { QAccessibleWidgetEx::setText(t, control, text); return; -- cgit v1.2.3