From dd02fcd711d689595eb16c36163045c80ff798b4 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Tue, 29 Nov 2011 14:07:46 +0100 Subject: Make cell a proper QAccessible2Interface. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I9b245037e8448f39ed2cb80d1ef5fb0714173518 Reviewed-by: Jan-Arve Sæther --- src/plugins/accessible/widgets/itemviews.cpp | 19 +++++++++++++------ src/plugins/accessible/widgets/itemviews.h | 13 +++++++------ 2 files changed, 20 insertions(+), 12 deletions(-) (limited to 'src/plugins/accessible') diff --git a/src/plugins/accessible/widgets/itemviews.cpp b/src/plugins/accessible/widgets/itemviews.cpp index 6b986154b7..8bd6a6a452 100644 --- a/src/plugins/accessible/widgets/itemviews.cpp +++ b/src/plugins/accessible/widgets/itemviews.cpp @@ -220,7 +220,7 @@ QAccessibleTable2Cell *QAccessibleTable2::cell(const QModelIndex &index) const return 0; } -QAccessibleTable2CellInterface *QAccessibleTable2::cellAt(int row, int column) const +QAccessibleInterface *QAccessibleTable2::cellAt(int row, int column) const { Q_ASSERT(role() != QAccessible::Tree); QModelIndex index = view->model()->index(row, column); @@ -272,9 +272,9 @@ QString QAccessibleTable2::rowDescription(int row) const return view->model()->headerData(row, Qt::Vertical).toString(); } -QList QAccessibleTable2::selectedCells() const +QList QAccessibleTable2::selectedCells() const { - QList cells; + QList cells; Q_FOREACH (const QModelIndex &index, view->selectionModel()->selectedIndexes()) { cells.append(cell(index)); } @@ -588,7 +588,7 @@ QAccessible::Relation QAccessibleTree::relationTo(const QAccessibleInterface *) return QAccessible::Unrelated; } -QAccessibleTable2CellInterface *QAccessibleTree::cellAt(int row, int column) const +QAccessibleInterface *QAccessibleTree::cellAt(int row, int column) const { QModelIndex index = indexFromLogical(row, column); if (!index.isValid()) { @@ -626,6 +626,13 @@ QAccessibleTable2Cell::QAccessibleTable2Cell(QAbstractItemView *view_, const QMo Q_ASSERT(index_.isValid()); } +void *QAccessibleTable2Cell::interface_cast(QAccessible::InterfaceType t) +{ + if (t == QAccessible::Table2CellInterface) + return static_cast(this); + return 0; +} + int QAccessibleTable2Cell::columnExtent() const { return 1; } int QAccessibleTable2Cell::rowExtent() const { return 1; } @@ -705,9 +712,9 @@ void QAccessibleTable2Cell::rowColumnExtents(int *row, int *column, int *rowExte *selected = isSelected(); } -QAccessibleTable2Interface* QAccessibleTable2Cell::table() const +QAccessibleInterface *QAccessibleTable2Cell::table() const { - return QAccessible::queryAccessibleInterface(view)->table2Interface(); + return QAccessible::queryAccessibleInterface(view); } QAccessible::Role QAccessibleTable2Cell::role() const diff --git a/src/plugins/accessible/widgets/itemviews.h b/src/plugins/accessible/widgets/itemviews.h index 80d22650d4..8088337076 100644 --- a/src/plugins/accessible/widgets/itemviews.h +++ b/src/plugins/accessible/widgets/itemviews.h @@ -84,7 +84,7 @@ public: void *interface_cast(QAccessible::InterfaceType t); // table2 interface - virtual QAccessibleTable2CellInterface *cellAt(int row, int column) const; + virtual QAccessibleInterface *cellAt(int row, int column) const; virtual QAccessibleInterface *caption() const; virtual QAccessibleInterface *summary() const; virtual QString columnDescription(int column) const; @@ -97,7 +97,7 @@ public: virtual int selectedCellCount() const; virtual int selectedColumnCount() const; virtual int selectedRowCount() const; - virtual QList selectedCells() const; + virtual QList selectedCells() const; virtual QList selectedColumns() const; virtual QList selectedRows() const; virtual bool isColumnSelected(int column) const; @@ -163,7 +163,7 @@ public: Relation relationTo(const QAccessibleInterface *other) const; // table2 interface - QAccessibleTable2CellInterface *cellAt(int row, int column) const; + QAccessibleInterface *cellAt(int row, int column) const; QString rowDescription(int row) const; bool isRowSelected(int row) const; bool selectRow(int row); @@ -172,11 +172,12 @@ private: QModelIndex indexFromLogical(int row, int column = 0) const; }; -class QAccessibleTable2Cell: public QAccessibleTable2CellInterface /*), public QAccessibleTextInterface, public QAccessibleSimpleEditableTextInterface*/ +class QAccessibleTable2Cell: public QAccessibleInterface, public QAccessibleTable2CellInterface { public: QAccessibleTable2Cell(QAbstractItemView *view, const QModelIndex &m_index, QAccessible::Role role); + void *interface_cast(QAccessible::InterfaceType t); QObject *object() const { return 0; } Role role() const; State state() const; @@ -206,7 +207,7 @@ public: virtual int rowIndex() const; virtual bool isSelected() const; virtual void rowColumnExtents(int *row, int *column, int *rowExtents, int *columnExtents, bool *selected) const; - virtual QAccessibleTable2Interface* table() const; + virtual QAccessibleInterface* table() const; private: QHeaderView *verticalHeader() const; @@ -220,7 +221,7 @@ friend class QAccessibleTree; }; -class QAccessibleTable2HeaderCell: public QAccessibleInterface /*), public QAccessibleTextInterface, public QAccessibleSimpleEditableTextInterface*/ +class QAccessibleTable2HeaderCell: public QAccessibleInterface { public: // For header cells, pass the header view in addition -- cgit v1.2.3