diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-11-01 20:14:28 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-11-01 22:08:26 +0000 |
commit | a706965798e5485550c2781854bf0d2d8fda2379 (patch) | |
tree | 7e926e2e1f75c81384e5aaca2463ce4a3975fce4 /src | |
parent | c7fdb444a4a9f3cbcf4bbfe8d0deaeb7388e7f98 (diff) |
ComboBox: fix accessibility support
Change-Id: Icd196b3cd66b5b31a664c845e78953b4606022b7
Reviewed-by: Liang Qi <liang.qi@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickcombobox.cpp | 19 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcombobox_p.h | 5 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/quicktemplates2/qquickcombobox.cpp b/src/quicktemplates2/qquickcombobox.cpp index 52ee2b49..5194582b 100644 --- a/src/quicktemplates2/qquickcombobox.cpp +++ b/src/quicktemplates2/qquickcombobox.cpp @@ -273,6 +273,8 @@ void QQuickComboBoxPrivate::updateCurrentText() QString text = q->textAt(currentIndex); if (currentText != text) { currentText = text; + if (!hasDisplayText) + q->setAccessibleName(text); emit q->currentTextChanged(); } if (!hasDisplayText && displayText != text) { @@ -564,6 +566,7 @@ void QQuickComboBox::setDisplayText(const QString &text) return; d->displayText = text; + setAccessibleName(text); emit displayTextChanged(); } @@ -965,4 +968,20 @@ QFont QQuickComboBox::defaultFont() const return QQuickControlPrivate::themeFont(QPlatformTheme::ComboMenuItemFont); } +#ifndef QT_NO_ACCESSIBILITY +QAccessible::Role QQuickComboBox::accessibleRole() const +{ + return QAccessible::ComboBox; +} + +void QQuickComboBox::accessibilityActiveChanged(bool active) +{ + Q_D(QQuickComboBox); + QQuickControl::accessibilityActiveChanged(active); + + if (active) + setAccessibleName(d->hasDisplayText ? d->displayText : d->currentText); +} +#endif // QT_NO_ACCESSIBILITY + QT_END_NAMESPACE diff --git a/src/quicktemplates2/qquickcombobox_p.h b/src/quicktemplates2/qquickcombobox_p.h index 26b7688e..4cbdd77b 100644 --- a/src/quicktemplates2/qquickcombobox_p.h +++ b/src/quicktemplates2/qquickcombobox_p.h @@ -146,6 +146,11 @@ protected: QFont defaultFont() const override; +#ifndef QT_NO_ACCESSIBILITY + QAccessible::Role accessibleRole() const override; + void accessibilityActiveChanged(bool active) override; +#endif + private: Q_DISABLE_COPY(QQuickComboBox) Q_DECLARE_PRIVATE(QQuickComboBox) |