diff options
author | Frederik Gladhorn <frederik.gladhorn@nokia.com> | 2011-11-29 14:07:46 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-01 19:18:34 +0100 |
commit | dd02fcd711d689595eb16c36163045c80ff798b4 (patch) | |
tree | 98059d7cf82b447eebcd83bc425b2f31bc545c05 /src | |
parent | 63fa222e246b887d04be6e65a28cb29404587a89 (diff) |
Make cell a proper QAccessible2Interface.
Change-Id: I9b245037e8448f39ed2cb80d1ef5fb0714173518
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/accessible/qaccessible.h | 7 | ||||
-rw-r--r-- | src/gui/accessible/qaccessible2.h | 10 | ||||
-rw-r--r-- | src/plugins/accessible/widgets/itemviews.cpp | 19 | ||||
-rw-r--r-- | src/plugins/accessible/widgets/itemviews.h | 13 |
4 files changed, 30 insertions, 19 deletions
diff --git a/src/gui/accessible/qaccessible.h b/src/gui/accessible/qaccessible.h index f374e05dc2..4043fa6e42 100644 --- a/src/gui/accessible/qaccessible.h +++ b/src/gui/accessible/qaccessible.h @@ -317,7 +317,8 @@ public: TableInterface, ActionInterface, ImageInterface, - Table2Interface + Table2Interface, + Table2CellInterface }; typedef QAccessibleInterface*(*InterfaceFactory)(const QString &key, QObject*); @@ -355,6 +356,7 @@ class QAccessibleTableInterface; class QAccessibleActionInterface; class QAccessibleImageInterface; class QAccessibleTable2Interface; +class QAccessibleTable2CellInterface; class Q_GUI_EXPORT QAccessibleInterface : public QAccessible { @@ -414,6 +416,9 @@ public: inline QAccessibleTable2Interface *table2Interface() { return reinterpret_cast<QAccessibleTable2Interface *>(interface_cast(QAccessible::Table2Interface)); } + inline QAccessibleTable2CellInterface *table2CellInterface() + { return reinterpret_cast<QAccessibleTable2CellInterface *>(interface_cast(QAccessible::Table2CellInterface)); } + // FIXME virtual QVariant virtual_hook(const QVariant &data); virtual void *interface_cast(QAccessible::InterfaceType) diff --git a/src/gui/accessible/qaccessible2.h b/src/gui/accessible/qaccessible2.h index e0db9e039b..1080c343a2 100644 --- a/src/gui/accessible/qaccessible2.h +++ b/src/gui/accessible/qaccessible2.h @@ -163,8 +163,6 @@ public: class Q_GUI_EXPORT QAccessibleTableInterface { public: - - virtual QAccessibleInterface *accessibleAt(int row, int column) = 0; virtual QAccessibleInterface *caption() = 0; virtual int childIndex(int rowIndex, int columnIndex) = 0; @@ -194,7 +192,7 @@ public: int *columnSpan, bool *isSelected) = 0; }; -class Q_GUI_EXPORT QAccessibleTable2CellInterface: public QAccessibleInterface +class Q_GUI_EXPORT QAccessibleTable2CellInterface { public: // Returns the number of columns occupied by this cell accessible. @@ -217,7 +215,7 @@ public: // Gets the row and column indexes and extents of this cell accessible and whether or not it is selected. virtual void rowColumnExtents(int *row, int *column, int *rowExtents, int *columnExtents, bool *selected) const = 0; // Returns a reference to the accessbile of the containing table. - virtual QAccessibleTable2Interface* table() const = 0; + virtual QAccessibleInterface* table() const = 0; // #### Qt5 this should not be here but part of the state virtual bool isExpandable() const = 0; @@ -228,7 +226,7 @@ class Q_GUI_EXPORT QAccessibleTable2Interface public: // Returns the cell at the specified row and column in the table. - virtual QAccessibleTable2CellInterface *cellAt (int row, int column) const = 0; + virtual QAccessibleInterface *cellAt (int row, int column) const = 0; // Returns the caption for the table. virtual QAccessibleInterface *caption() const = 0; // Returns the description text of the specified column in the table. @@ -246,7 +244,7 @@ public: // Returns the description text of the specified row in the table. virtual QString rowDescription(int row) const = 0; // Returns a list of accessibles currently selected. - virtual QList<QAccessibleTable2CellInterface*> selectedCells() const = 0; + virtual QList<QAccessibleInterface*> selectedCells() const = 0; // Returns a list of column indexes currently selected (0 based). virtual QList<int> selectedColumns() const = 0; // Returns a list of row indexes currently selected (0 based). 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<QAccessibleTable2CellInterface*> QAccessibleTable2::selectedCells() const +QList<QAccessibleInterface *> QAccessibleTable2::selectedCells() const { - QList<QAccessibleTable2CellInterface*> cells; + QList<QAccessibleInterface*> 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<QAccessibleTable2CellInterface*>(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<QAccessibleTable2CellInterface*> selectedCells() const; + virtual QList<QAccessibleInterface*> selectedCells() const; virtual QList<int> selectedColumns() const; virtual QList<int> 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 |