diff options
Diffstat (limited to 'src/plugins/accessible')
4 files changed, 6 insertions, 4 deletions
diff --git a/src/plugins/accessible/widgets/itemviews.cpp b/src/plugins/accessible/widgets/itemviews.cpp index 4ddd39f7ea..d460ec2c98 100644 --- a/src/plugins/accessible/widgets/itemviews.cpp +++ b/src/plugins/accessible/widgets/itemviews.cpp @@ -120,6 +120,8 @@ QHeaderView *QAccessibleTable::horizontalHeader() const #ifndef QT_NO_TREEVIEW } else if (const QTreeView *tv = qobject_cast<const QTreeView*>(view())) { header = tv->header(); + if (header && header->isHidden()) + header = 0; #endif } return header; @@ -766,7 +768,6 @@ int QAccessibleTree::indexOfChild(const QAccessibleInterface *iface) const int column = cell->m_index.column(); int index = row * view()->model()->columnCount() + column; - Q_ASSERT(index >= treeView->model()->columnCount()); return index; } else if (iface->role() == QAccessible::ColumnHeader){ const QAccessibleTableHeaderCell* cell = static_cast<const QAccessibleTableHeaderCell*>(iface); diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.cpp b/src/plugins/accessible/widgets/qaccessiblemenu.cpp index f248e6d05e..39ac335131 100644 --- a/src/plugins/accessible/widgets/qaccessiblemenu.cpp +++ b/src/plugins/accessible/widgets/qaccessiblemenu.cpp @@ -206,7 +206,7 @@ int QAccessibleMenuItem::indexOfChild(const QAccessibleInterface * child) const bool QAccessibleMenuItem::isValid() const { - return m_action ? true : false; + return m_action && m_owner ? true : false; } QAccessibleInterface *QAccessibleMenuItem::parent() const diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.h b/src/plugins/accessible/widgets/qaccessiblemenu.h index 74d118a09e..f933a4a37e 100644 --- a/src/plugins/accessible/widgets/qaccessiblemenu.h +++ b/src/plugins/accessible/widgets/qaccessiblemenu.h @@ -43,6 +43,7 @@ #define QACCESSIBLEMENU_H #include <QtWidgets/private/qaccessiblewidget_p.h> +#include <QtCore/qpointer.h> QT_BEGIN_NAMESPACE @@ -120,7 +121,7 @@ protected: QAction *action() const; private: QAction *m_action; - QWidget *m_owner; // can hold either QMenu or the QMenuBar that contains the action + QPointer<QWidget> m_owner; // can hold either QMenu or the QMenuBar that contains the action }; #endif // QT_NO_MENU diff --git a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp index f20823f25b..59dc03666b 100644 --- a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp +++ b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp @@ -1127,7 +1127,7 @@ QAccessibleMainWindow::QAccessibleMainWindow(QWidget *widget) QAccessibleInterface *QAccessibleMainWindow::child(int index) const { QList<QWidget*> kids = childWidgets(mainWindow(), true); - if (index < kids.count()) { + if (index >= 0 && index < kids.count()) { return QAccessible::queryAccessibleInterface(kids.at(index)); } return 0; |