From 0c5e2328284e97a293e1153c6ad1bcd2706e044a Mon Sep 17 00:00:00 2001 From: Volker Krause Date: Wed, 5 Dec 2012 11:42:58 +0100 Subject: Compile with QT_NO_CURSOR. Mostly straightforward, the a11y changes might look a bit drastic, but the base class QAccessibleTextWidget was already disabled in this case, so we have to obviously take out its sub-classes as well. Change-Id: I682ace20d6938688ddb1da23c3463f3c025fab8e Reviewed-by: Marc Mutz Reviewed-by: Tasuku Suzuki Reviewed-by: Frederik Gladhorn Reviewed-by: Lars Knoll Reviewed-by: Nicolas Arnaud-Cormos --- src/plugins/accessible/widgets/main.cpp | 4 ++-- src/plugins/accessible/widgets/qaccessiblewidgets.cpp | 8 ++++---- src/plugins/accessible/widgets/qaccessiblewidgets.h | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src/plugins/accessible') diff --git a/src/plugins/accessible/widgets/main.cpp b/src/plugins/accessible/widgets/main.cpp index 55b1d375dd..8392ef3a6d 100644 --- a/src/plugins/accessible/widgets/main.cpp +++ b/src/plugins/accessible/widgets/main.cpp @@ -199,7 +199,7 @@ QAccessibleInterface *AccessibleFactory::create(const QString &classname, QObjec } else if (classname == QLatin1String("QSplitterHandle")) { iface = new QAccessibleWidget(widget, QAccessible::Grip); #endif -#ifndef QT_NO_TEXTEDIT +#if !defined(QT_NO_TEXTEDIT) && !defined(QT_NO_CURSOR) } else if (classname == QLatin1String("QTextEdit")) { iface = new QAccessibleTextEdit(widget); } else if (classname == QLatin1String("QPlainTextEdit")) { @@ -233,7 +233,7 @@ QAccessibleInterface *AccessibleFactory::create(const QString &classname, QObjec } else if (classname == QLatin1String("QRubberBand")) { iface = new QAccessibleWidget(widget, QAccessible::Border); #endif -#ifndef QT_NO_TEXTBROWSER +#if !defined(QT_NO_TEXTBROWSER) && !defined(QT_NO_CURSOR) } else if (classname == QLatin1String("QTextBrowser")) { iface = new QAccessibleTextBrowser(widget); #endif diff --git a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp index 56e6166e85..e93a82c0ce 100644 --- a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp +++ b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp @@ -99,7 +99,7 @@ QList childWidgets(const QWidget *widget, bool includeTopLevel) return widgets; } -#ifndef QT_NO_TEXTEDIT +#if !defined(QT_NO_TEXTEDIT) && !defined(QT_NO_CURSOR) QAccessiblePlainTextEdit::QAccessiblePlainTextEdit(QWidget* o) :QAccessibleTextWidget(o) @@ -292,7 +292,7 @@ void QAccessibleTextEdit::scrollToSubstring(int startIndex, int endIndex) qWarning("AccessibleTextEdit::scrollToSubstring failed!"); } -#endif // QT_NO_TEXTEDIT +#endif // QT_NO_TEXTEDIT && QT_NO_CURSOR #ifndef QT_NO_STACKEDWIDGET // ======================= QAccessibleStackedWidget ====================== @@ -488,7 +488,7 @@ QAccessibleDialogButtonBox::QAccessibleDialogButtonBox(QWidget *widget) #endif // QT_NO_DIALOGBUTTONBOX -#ifndef QT_NO_TEXTBROWSER +#if !defined(QT_NO_TEXTBROWSER) && !defined(QT_NO_CURSOR) QAccessibleTextBrowser::QAccessibleTextBrowser(QWidget *widget) : QAccessibleTextEdit(widget) { @@ -499,7 +499,7 @@ QAccessible::Role QAccessibleTextBrowser::role() const { return QAccessible::StaticText; } -#endif // QT_NO_TEXTBROWSER +#endif // QT_NO_TEXTBROWSER && QT_NO_CURSOR #ifndef QT_NO_CALENDARWIDGET // ===================== QAccessibleCalendarWidget ======================== diff --git a/src/plugins/accessible/widgets/qaccessiblewidgets.h b/src/plugins/accessible/widgets/qaccessiblewidgets.h index e14b89a63b..fd76dbd076 100644 --- a/src/plugins/accessible/widgets/qaccessiblewidgets.h +++ b/src/plugins/accessible/widgets/qaccessiblewidgets.h @@ -122,7 +122,6 @@ protected: virtual QTextDocument *textDocument() const = 0; virtual QWidget *viewport() const = 0; }; -#endif //QT_NO_CURSOR #ifndef QT_NO_TEXTEDIT class QAccessiblePlainTextEdit : public QAccessibleTextWidget @@ -177,6 +176,7 @@ protected: QWidget *viewport() const; }; #endif // QT_NO_TEXTEDIT +#endif //QT_NO_CURSOR class QAccessibleStackedWidget : public QAccessibleWidget { @@ -245,7 +245,7 @@ public: explicit QAccessibleDialogButtonBox(QWidget *widget); }; -#ifndef QT_NO_TEXTBROWSER +#if !defined(QT_NO_TEXTBROWSER) && !defined(QT_NO_CURSOR) class QAccessibleTextBrowser : public QAccessibleTextEdit { public: @@ -253,7 +253,7 @@ public: QAccessible::Role role() const; }; -#endif // QT_NO_TEXTBROWSER +#endif // QT_NO_TEXTBROWSER && QT_NO_CURSOR #ifndef QT_NO_CALENDARWIDGET class QAccessibleCalendarWidget : public QAccessibleWidget -- cgit v1.2.3 From c9d40ef2c1ff9e701cd052dadfc0e515ff6b523f Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 10 Dec 2012 11:49:09 +0200 Subject: Add PLUGIN_CLASS_NAME to qtbase plugins Needed for automating static plugin loading. Task-number: QTBUG-28131 Change-Id: Icd993c0fc8335f29aeec30e853a408d888069399 Reviewed-by: Oswald Buddenhagen --- src/plugins/accessible/widgets/widgets.pro | 1 + 1 file changed, 1 insertion(+) (limited to 'src/plugins/accessible') diff --git a/src/plugins/accessible/widgets/widgets.pro b/src/plugins/accessible/widgets/widgets.pro index afabbac9bc..aff60d9781 100644 --- a/src/plugins/accessible/widgets/widgets.pro +++ b/src/plugins/accessible/widgets/widgets.pro @@ -1,6 +1,7 @@ TARGET = qtaccessiblewidgets PLUGIN_TYPE = accessible +PLUGIN_CLASS_NAME = AccessibleFactory load(qt_plugin) QT += core-private gui-private widgets-private -- cgit v1.2.3 From 22c234a34e8af6a26b374ef810630ba9e82c696a Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Sat, 3 Nov 2012 19:21:12 +0100 Subject: Accessible: Improve value interface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The stepSize property was missing in Qt 4 and is a sensible addition to the value interface. Change-Id: I7571800d50ee7e4194c09c4db40300809a1ce45a Reviewed-by: Jan Arve Sæther Reviewed-by: Frederik Gladhorn --- src/plugins/accessible/widgets/rangecontrols.cpp | 10 ++++++++++ src/plugins/accessible/widgets/rangecontrols.h | 2 ++ src/plugins/accessible/widgets/simplewidgets.cpp | 8 ++++++++ src/plugins/accessible/widgets/simplewidgets.h | 1 + 4 files changed, 21 insertions(+) (limited to 'src/plugins/accessible') diff --git a/src/plugins/accessible/widgets/rangecontrols.cpp b/src/plugins/accessible/widgets/rangecontrols.cpp index 954369b6b3..d03130f148 100644 --- a/src/plugins/accessible/widgets/rangecontrols.cpp +++ b/src/plugins/accessible/widgets/rangecontrols.cpp @@ -122,6 +122,11 @@ QVariant QAccessibleAbstractSpinBox::minimumValue() const return abstractSpinBox()->property("minimum"); } +QVariant QAccessibleAbstractSpinBox::minimumStepSize() const +{ + return abstractSpinBox()->property("stepSize"); +} + /*! \class QAccessibleSpinBox \brief The QAccessibleSpinBox class implements the QAccessibleInterface for spinbox widgets. @@ -278,6 +283,11 @@ QVariant QAccessibleAbstractSlider::minimumValue() const return abstractSlider()->minimum(); } +QVariant QAccessibleAbstractSlider::minimumStepSize() const +{ + return abstractSlider()->singleStep(); +} + QAbstractSlider *QAccessibleAbstractSlider::abstractSlider() const { return static_cast(object()); diff --git a/src/plugins/accessible/widgets/rangecontrols.h b/src/plugins/accessible/widgets/rangecontrols.h index b26d97421a..a370ada199 100644 --- a/src/plugins/accessible/widgets/rangecontrols.h +++ b/src/plugins/accessible/widgets/rangecontrols.h @@ -71,6 +71,7 @@ public: void setCurrentValue(const QVariant &value); QVariant maximumValue() const; QVariant minimumValue() const; + QVariant minimumStepSize() const; // FIXME Action interface @@ -110,6 +111,7 @@ public: void setCurrentValue(const QVariant &value); QVariant maximumValue() const; QVariant minimumValue() const; + QVariant minimumStepSize() const; protected: QAbstractSlider *abstractSlider() const; diff --git a/src/plugins/accessible/widgets/simplewidgets.cpp b/src/plugins/accessible/widgets/simplewidgets.cpp index 1bd509dc41..8bf71da6e1 100644 --- a/src/plugins/accessible/widgets/simplewidgets.cpp +++ b/src/plugins/accessible/widgets/simplewidgets.cpp @@ -832,6 +832,14 @@ QVariant QAccessibleProgressBar::minimumValue() const return progressBar()->minimum(); } +QVariant QAccessibleProgressBar::minimumStepSize() const +{ + // This is arbitrary since any value between min and max is valid. + // Some screen readers (orca use it to calculate how many digits to display though, + // so it makes sense to return a "sensible" value. Providing 100 increments seems ok. + return (progressBar()->maximum() - progressBar()->minimum()) / 100.0; +} + QProgressBar *QAccessibleProgressBar::progressBar() const { return qobject_cast(object()); diff --git a/src/plugins/accessible/widgets/simplewidgets.h b/src/plugins/accessible/widgets/simplewidgets.h index 2e1bca88b4..dbea8d4f09 100644 --- a/src/plugins/accessible/widgets/simplewidgets.h +++ b/src/plugins/accessible/widgets/simplewidgets.h @@ -188,6 +188,7 @@ public: QVariant currentValue() const; QVariant maximumValue() const; QVariant minimumValue() const; + QVariant minimumStepSize() const; inline void setCurrentValue(const QVariant &) {} protected: -- cgit v1.2.3 From abf95b7f77a5d698f05dacdf86a6b23aa3ab8260 Mon Sep 17 00:00:00 2001 From: Morten Johan Sorvig Date: Thu, 13 Dec 2012 10:43:36 +0100 Subject: Prevent crash in childAt when there are 0 children Fix off-by-one error. QAccessibleInterface::child() is 0-based, start the iteration at childCount() - 1. Change-Id: I0c841b692adab0aae4e8ac44c7d308cd7a176ac8 Reviewed-by: Frederik Gladhorn --- src/plugins/accessible/widgets/qaccessiblemenu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/plugins/accessible') diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.cpp b/src/plugins/accessible/widgets/qaccessiblemenu.cpp index 5f7d9a9c30..c7dcee78f0 100644 --- a/src/plugins/accessible/widgets/qaccessiblemenu.cpp +++ b/src/plugins/accessible/widgets/qaccessiblemenu.cpp @@ -165,7 +165,7 @@ QAccessibleMenuItem::~QAccessibleMenuItem() QAccessibleInterface *QAccessibleMenuItem::childAt(int x, int y ) const { - for (int i = childCount(); i >= 0; --i) { + for (int i = childCount() - 1; i >= 0; --i) { QAccessibleInterface *childInterface = child(i); if (childInterface->rect().contains(x,y)) { return childInterface; -- cgit v1.2.3