diff options
Diffstat (limited to 'src/widgets/accessible/complexwidgets.cpp')
-rw-r--r-- | src/widgets/accessible/complexwidgets.cpp | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/widgets/accessible/complexwidgets.cpp b/src/widgets/accessible/complexwidgets.cpp index 63c6fbb9bb..ce2ceac938 100644 --- a/src/widgets/accessible/complexwidgets.cpp +++ b/src/widgets/accessible/complexwidgets.cpp @@ -97,10 +97,10 @@ public: if (t == QAccessible::ActionInterface) { return static_cast<QAccessibleActionInterface*>(this); } - return 0; + return nullptr; } - QObject *object() const override { return 0; } + QObject *object() const override { return nullptr; } QAccessible::Role role() const override { return QAccessible::PageTab; } QAccessible::State state() const override { if (!isValid()) { @@ -108,7 +108,10 @@ public: s.invalid = true; return s; } - return parent()->state(); + + QAccessible::State s = parent()->state(); + s.focused = (m_index == m_parent->currentIndex()); + return s; } QRect rect() const override { if (!isValid()) @@ -129,7 +132,7 @@ public: return false; } - QAccessibleInterface *childAt(int, int) const override { return 0; } + QAccessibleInterface *childAt(int, int) const override { return nullptr; } int childCount() const override { return 0; } int indexOfChild(const QAccessibleInterface *) const override { return -1; } @@ -168,7 +171,7 @@ public: QAccessibleInterface *parent() const override { return QAccessible::queryAccessibleInterface(m_parent.data()); } - QAccessibleInterface *child(int) const override { return 0; } + QAccessibleInterface *child(int) const override { return nullptr; } // action interface QStringList actionNames() const override @@ -216,6 +219,16 @@ QTabBar *QAccessibleTabBar::tabBar() const return qobject_cast<QTabBar*>(object()); } +QAccessibleInterface* QAccessibleTabBar::focusChild() const +{ + for (int i = 0; i < childCount(); ++i) { + if (child(i)->state().focused) + return child(i); + } + + return nullptr; +} + QAccessibleInterface* QAccessibleTabBar::child(int index) const { if (QAccessible::Id id = m_childInterfaces.value(index)) @@ -237,7 +250,7 @@ QAccessibleInterface* QAccessibleTabBar::child(int index) const return QAccessible::queryAccessibleInterface(tabBar()->d_func()->rightB); } } - return 0; + return nullptr; } int QAccessibleTabBar::indexOfChild(const QAccessibleInterface *child) const @@ -314,7 +327,7 @@ QAccessibleInterface *QAccessibleComboBox::child(int index) const } else if (index == 1 && comboBox()->isEditable()) { return QAccessible::queryAccessibleInterface(comboBox()->lineEdit()); } - return 0; + return nullptr; } int QAccessibleComboBox::childCount() const @@ -327,7 +340,7 @@ QAccessibleInterface *QAccessibleComboBox::childAt(int x, int y) const { if (comboBox()->isEditable() && comboBox()->lineEdit()->rect().contains(x, y)) return child(1); - return 0; + return nullptr; } int QAccessibleComboBox::indexOfChild(const QAccessibleInterface *child) const @@ -432,7 +445,7 @@ bool QAccessibleAbstractScrollArea::isValid() const QAccessibleInterface *QAccessibleAbstractScrollArea::childAt(int x, int y) const { if (!abstractScrollArea()->isVisible()) - return 0; + return nullptr; for (int i = 0; i < childCount(); ++i) { QPoint wpos = accessibleChildren().at(i)->mapToGlobal(QPoint(0, 0)); @@ -440,7 +453,7 @@ QAccessibleInterface *QAccessibleAbstractScrollArea::childAt(int x, int y) const if (rect.contains(x, y)) return child(i); } - return 0; + return nullptr; } QAbstractScrollArea *QAccessibleAbstractScrollArea::abstractScrollArea() const |