summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@nokia.com>2011-11-29 14:07:46 +0100
committerQt by Nokia <qt-info@nokia.com>2011-12-01 19:18:34 +0100
commitdd02fcd711d689595eb16c36163045c80ff798b4 (patch)
tree98059d7cf82b447eebcd83bc425b2f31bc545c05 /src
parent63fa222e246b887d04be6e65a28cb29404587a89 (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.h7
-rw-r--r--src/gui/accessible/qaccessible2.h10
-rw-r--r--src/plugins/accessible/widgets/itemviews.cpp19
-rw-r--r--src/plugins/accessible/widgets/itemviews.h13
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