Do not include the treeview header if its hidden
Previously, accessibleTree->child(0) would return an interface for the header even if it was hidden. Also, the assertion was wrong since the index would be 0 if both row and column were 0. The assertion was actually found while using the project explorer of Qt Creator (2.7) Change-Id: I9f3cc2c13b6887569d10c4e062a64552f898231a Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>bb10
parent
2e0575ce89
commit
b9db3e4785
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -2600,6 +2600,12 @@ void tst_QAccessibility::treeTest()
|
|||
QCOMPARE(iface->indexOfChild(child2), 4);
|
||||
QCOMPARE(child2->text(QAccessible::Name), QString("Austria"));
|
||||
|
||||
treeView->setHeaderHidden(true);
|
||||
QAccessibleInterface *accSpain = iface->child(0);
|
||||
QCOMPARE(accSpain->role(), QAccessible::TreeItem);
|
||||
QCOMPARE(iface->indexOfChild(accSpain), 0);
|
||||
treeView->setHeaderHidden(false);
|
||||
|
||||
QTestAccessibility::clearEvents();
|
||||
|
||||
// table 2
|
||||
|
|
|
|||
Loading…
Reference in New Issue