X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/cc7343815ade78e86d306cc70b425d8fe2318c98..f1da070fd5845dbbdd5e20addffafe8c9929b3c9:/src/kitemviews/kitemlistviewaccessible.h diff --git a/src/kitemviews/kitemlistviewaccessible.h b/src/kitemviews/kitemlistviewaccessible.h index 23809a032..41aacf367 100644 --- a/src/kitemviews/kitemlistviewaccessible.h +++ b/src/kitemviews/kitemlistviewaccessible.h @@ -1,186 +1,144 @@ -#ifndef ACCESSIBLE_ITEMVIEWS_H -#define ACCESSIBLE_ITEMVIEWS_H +/* + * SPDX-FileCopyrightText: 2012 Amandeep Singh + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ -#include "QtCore/qpointer.h" -#include -#include -#include -#include -#include - -#include "kitemlistview.h" -#include "kitemlistcontainer.h" +#ifndef KITEMLISTVIEWACCESSIBLE_H +#define KITEMLISTVIEWACCESSIBLE_H #ifndef QT_NO_ACCESSIBILITY -#ifndef QT_NO_ITEMVIEWS +#include "dolphin_export.h" + +#include +#include +#include +#include -class KItemListWidgetAccessible; +class KItemListView; +class KItemListContainer; +class KItemListContainerAccessible; -class KItemListViewAccessible: public QAccessibleTable2Interface, public QAccessibleObjectEx +class DOLPHIN_EXPORT KItemListViewAccessible : public QAccessibleObject, public QAccessibleTableInterface { - Q_ACCESSIBLE_OBJECT public: - explicit KItemListViewAccessible(KItemListView *view); - - virtual ~KItemListViewAccessible(); - - Role role(int child) const; - State state(int child) const; - QString text(Text t, int child) const; - QRect rect(int child) const; - - int childAt(int x, int y) const; - int childCount() const; - int indexOfChild(const QAccessibleInterface *) const; - - int navigate(RelationFlag relation, int index, QAccessibleInterface **iface) const; - Relation relationTo(int child, const QAccessibleInterface *other, int otherChild) const; - -#ifndef QT_NO_ACTION - int userActionCount(int child) const; - QString actionText(int action, Text t, int child) const; - bool doAction(int action, int child, const QVariantList ¶ms); -#endif - QVariant invokeMethodEx(Method, int, const QVariantList &) { return QVariant(); } - - // table2 interface - virtual QAccessibleTable2CellInterface *cellAt(int row, int column) const; - virtual QAccessibleInterface *caption() const; - virtual QAccessibleInterface *summary() const; - virtual QString columnDescription(int column) const; - virtual QString rowDescription(int row) const; - virtual int columnCount() const; - virtual int rowCount() const; - virtual QAccessible2::TableModelChange modelChange() const; - - //Table - virtual void rowsInserted(const QModelIndex&, int, int) {} - virtual void rowsRemoved(const QModelIndex&, int, int) {} - virtual void columnsInserted(const QModelIndex&, int, int) {} - virtual void columnsRemoved(const QModelIndex&, int, int) {} - virtual void rowsMoved(const QModelIndex&, int, int, const QModelIndex&, int) {} - virtual void columnsMoved(const QModelIndex&, int, int, const QModelIndex&, int) {} - - // selection - virtual int selectedCellCount() const; - virtual int selectedColumnCount() const; - virtual int selectedRowCount() const; - virtual QList selectedCells() const; - virtual QList selectedColumns() const; - virtual QList selectedRows() const; - virtual bool isColumnSelected(int column) const; - virtual bool isRowSelected(int row) const; - virtual bool selectRow(int row); - virtual bool selectColumn(int column); - virtual bool unselectRow(int row); - virtual bool unselectColumn(int column); + explicit KItemListViewAccessible(KItemListView *view, KItemListContainerAccessible *parent); + ~KItemListViewAccessible() override; + + void *interface_cast(QAccessible::InterfaceType type) override; + + QAccessible::Role role() const override; + QAccessible::State state() const override; + QString text(QAccessible::Text t) const override; + QRect rect() const override; + + QAccessibleInterface *child(int index) const override; + int childCount() const override; + int indexOfChild(const QAccessibleInterface *) const override; + QAccessibleInterface *childAt(int x, int y) const override; + QAccessibleInterface *parent() const override; + + // Table interface + QAccessibleInterface *cellAt(int row, int column) const override; + QAccessibleInterface *caption() const override; + QAccessibleInterface *summary() const override; + QString columnDescription(int column) const override; + QString rowDescription(int row) const override; + int columnCount() const override; + int rowCount() const override; + + // Selection + int selectedCellCount() const override; + int selectedColumnCount() const override; + int selectedRowCount() const override; + QList selectedCells() const override; + QList selectedColumns() const override; + QList selectedRows() const override; + bool isColumnSelected(int column) const override; + bool isRowSelected(int row) const override; + bool selectRow(int row) override; + bool selectColumn(int column) override; + bool unselectRow(int row) override; + bool unselectColumn(int column) override; + void modelChange(QAccessibleTableModelChangeEvent *) override; KItemListView *view() const; protected: virtual void modelReset(); - -protected: - inline QAccessibleTable2CellInterface *cell(int index) const; - inline QAccessible::Role cellRole() const { - /* - switch (m_role) { - case QAccessible::List: - return QAccessible::ListItem; - case QAccessible::Table: - return QAccessible::Cell; - case QAccessible::Tree: - return QAccessible::TreeItem; - default: - Q_ASSERT(0); - } - return QAccessible::NoRole; - */ - return QAccessible::Cell; - } + /** + * Create an QAccessibleTableCellInterface representing the table + * cell at the @index. Index is 0-based. + */ + inline QAccessibleInterface *cell(int index) const; private: - //QAccessible::Role m_role; - // the child index for a model index - //inline int logicalIndex(const QModelIndex &index) const; - // the model index from the child index - //QAccessibleInterface *childFromLogical(int logicalIndex) const; + class AccessibleIdWrapper + { + public: + AccessibleIdWrapper(); + bool isValid; + QAccessible::Id id; + }; + mutable QVector m_cells; + + KItemListContainerAccessible *m_parent; }; -class KItemListWidgetAccessible: public QAccessibleTable2CellInterface +class DOLPHIN_EXPORT KItemListAccessibleCell : public QAccessibleInterface, public QAccessibleTableCellInterface { public: - KItemListWidgetAccessible(KItemListView *view, int m_index); - - QObject *object() const { return 0; } - Role role(int child) const; - State state(int child) const; - QRect rect(int child) const; - bool isValid() const; - - int childAt(int, int) const { return 0; } - int childCount() const { return 0; } - int indexOfChild(const QAccessibleInterface *) const { return -1; } - - QString text(Text t, int child) const; - void setText(Text t, int child, const QString &text); - - int navigate(RelationFlag relation, int m_index, QAccessibleInterface **iface) const; - Relation relationTo(int child, const QAccessibleInterface *other, int otherChild) const; - + KItemListAccessibleCell(KItemListView *view, int m_index); + + void *interface_cast(QAccessible::InterfaceType type) override; + QObject *object() const override; + bool isValid() const override; + QAccessible::Role role() const override; + QAccessible::State state() const override; + QRect rect() const override; + QString text(QAccessible::Text t) const override; + void setText(QAccessible::Text t, const QString &text) override; + + QAccessibleInterface *child(int index) const override; + int childCount() const override; + QAccessibleInterface *childAt(int x, int y) const override; + int indexOfChild(const QAccessibleInterface *) const override; + + QAccessibleInterface *parent() const override; bool isExpandable() const; -#ifndef QT_NO_ACTION - int userActionCount(int child) const; - QString actionText(int action, Text t, int child) const; - bool doAction(int action, int child, const QVariantList ¶ms); -#endif - - // cell interface - virtual int columnExtent() const; - virtual QList columnHeaderCells() const; - virtual int columnIndex() const; - virtual int rowExtent() const; - virtual QList rowHeaderCells() const; - 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; + // Cell Interface + int columnExtent() const override; + QList columnHeaderCells() const override; + int columnIndex() const override; + int rowExtent() const override; + QList rowHeaderCells() const override; + int rowIndex() const override; + bool isSelected() const override; + QAccessibleInterface *table() const override; - inline int getIndex() const - { return index; } + inline int index() const; private: - QPointer view; - int index; - KItemListWidget *widget; - -friend class KItemListViewAccessible; -//friend class QAccessibleTree; + QPointer m_view; + int m_index; }; -class KItemListContainerAccessible : public QAccessibleWidgetEx +class DOLPHIN_EXPORT KItemListContainerAccessible : public QAccessibleWidget { - Q_ACCESSIBLE_OBJECT public: - explicit KItemListContainerAccessible(KItemListContainer*); - virtual ~KItemListContainerAccessible (); - int childCount () const ; - int indexOfChild ( const QAccessibleInterface * child ) const ; - bool isValid () const ; - int navigate ( RelationFlag relation, int entry, QAccessibleInterface ** target ) const ; - QObject * object () const ; - QRect rect ( int child ) const ; - QAccessible::Relation relationTo ( int child, const QAccessibleInterface * other, int otherChild ) const ; - QAccessible::Role role ( int child ) const ; - QAccessible::State state ( int child ) const ; + explicit KItemListContainerAccessible(KItemListContainer *container); + ~KItemListContainerAccessible() override; + + QAccessibleInterface *child(int index) const override; + int childCount() const override; + int indexOfChild(const QAccessibleInterface *child) const override; + private: - KItemListContainer *m_container ; + const KItemListContainer *container() const; }; -#endif // QT_NO_ITEMVIEWS - #endif // QT_NO_ACCESSIBILITY -#endif // ACCESSIBLE_ITEMVIEWS_H +#endif