diff options
author | Frederik Gladhorn <frederik.gladhorn@nokia.com> | 2012-01-04 14:37:27 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-10 13:47:53 +0100 |
commit | 1b4897f0710921fb0a55932a7fb6f17a45989c41 (patch) | |
tree | 312393c117c688a1feb6be19e8f55030f118c404 /src/plugins/accessible/quick/qaccessiblequickitem.cpp | |
parent | 6ffcd091511bed98fbc698262d42597722910a15 (diff) |
Accessibility: Checked state for check boxes and radio buttons.
Also adapt to new api in qtbase - state is now a bit field.
Change-Id: Ia4266f3d5094a6c32e0ace3499910b57c3e71c25
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Diffstat (limited to 'src/plugins/accessible/quick/qaccessiblequickitem.cpp')
-rw-r--r-- | src/plugins/accessible/quick/qaccessiblequickitem.cpp | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/src/plugins/accessible/quick/qaccessiblequickitem.cpp b/src/plugins/accessible/quick/qaccessiblequickitem.cpp index 7523f805e6..5cedfe62d6 100644 --- a/src/plugins/accessible/quick/qaccessiblequickitem.cpp +++ b/src/plugins/accessible/quick/qaccessiblequickitem.cpp @@ -174,17 +174,34 @@ QList<QQuickItem *> QAccessibleQuickItem::childItems() const return item()->childItems(); } -QFlags<QAccessible::StateFlag> QAccessibleQuickItem::state() const +QAccessible::State QAccessibleQuickItem::state() const { - QAccessible::State state = QAccessible::Normal; - - if (item()->hasActiveFocus()) { - state |= QAccessible::Focused; + QAccessible::State state; + + if (item()->hasActiveFocus()) + state.focused = true; + + QAccessible::Role r = role(); + switch (r) { + case QAccessible::Button: { + QVariant checkable = item()->property("checkable"); + if (!checkable.toBool()) + break; + // fall through + } + case QAccessible::CheckBox: + case QAccessible::RadioButton: { + // FIXME when states are extended: state.checkable = true; + state.checked = item()->property("checked").toBool(); + break; + } + default: + break; } + return state; } - QAccessible::Role QAccessibleQuickItem::role() const { // Workaround for setAccessibleRole() not working for |