diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-10-20 12:29:58 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-10-21 11:01:41 +0000 |
commit | 1e860d69bb16aa7f5edc608fb84b25df13b25c19 (patch) | |
tree | e2601704d0fb656eae0c23873b056b3be2104a9f /src/quick | |
parent | 31689b110956b4cb33973d955226bfc619e4c208 (diff) |
QQuickItemPrivate: added a accessibleRole()
Which is used in QAccessibleQuickItem.
Change-Id: Ie9c9d59783c4af0c53a3ffe88046132fb6b5c0fd
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/accessible/qaccessiblequickitem.cpp | 9 | ||||
-rw-r--r-- | src/quick/items/qquickitem.cpp | 13 | ||||
-rw-r--r-- | src/quick/items/qquickitem_p.h | 4 |
3 files changed, 22 insertions, 4 deletions
diff --git a/src/quick/accessible/qaccessiblequickitem.cpp b/src/quick/accessible/qaccessiblequickitem.cpp index 4ccfdb9142..44a2caecec 100644 --- a/src/quick/accessible/qaccessiblequickitem.cpp +++ b/src/quick/accessible/qaccessiblequickitem.cpp @@ -204,11 +204,12 @@ QAccessible::Role QAccessibleQuickItem::role() const if (qobject_cast<QQuickText*>(const_cast<QQuickItem *>(item()))) return QAccessible::StaticText; - QVariant v = QQuickAccessibleAttached::property(item(), "role"); - bool ok; - QAccessible::Role role = (QAccessible::Role)v.toInt(&ok); - if (!ok) // Not sure if this check is needed. + QAccessible::Role role = QAccessible::NoRole; + if (item()) + role = QQuickItemPrivate::get(item())->accessibleRole(); + if (role == QAccessible::NoRole) role = QAccessible::Client; + return role; } diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 1865ba9d03..b742dc16e9 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -8046,6 +8046,19 @@ QQuickItemPrivate::ExtraData::ExtraData() { } + +#ifndef QT_NO_ACCESSIBILITY +QAccessible::Role QQuickItemPrivate::accessibleRole() const +{ + Q_Q(const QQuickItem); + QQuickAccessibleAttached *accessibleAttached = qobject_cast<QQuickAccessibleAttached *>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(q, false)); + if (accessibleAttached) + return accessibleAttached->role(); + + return QAccessible::NoRole; +} +#endif + QT_END_NAMESPACE #include <moc_qquickitem.cpp> diff --git a/src/quick/items/qquickitem_p.h b/src/quick/items/qquickitem_p.h index 9172f7eff1..634aa2b658 100644 --- a/src/quick/items/qquickitem_p.h +++ b/src/quick/items/qquickitem_p.h @@ -534,6 +534,10 @@ public: virtual void implicitWidthChanged(); virtual void implicitHeightChanged(); +#ifndef QT_NO_ACCESSIBILITY + virtual QAccessible::Role accessibleRole() const; +#endif + void setImplicitAntialiasing(bool antialiasing); void resolveLayoutMirror(); |