]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistviewaccessible.h
Port away from deprecated QFontMetrics::width()
[dolphin.git] / src / kitemviews / kitemlistviewaccessible.h
index c2213cd67be435b1d415c19173e76a1399f98af6..3e39e239920603b78f930752fa72775313169229 100644 (file)
 
 #ifndef QT_NO_ACCESSIBILITY
 
-#include <QtCore/qpointer.h>
-#include <QtGui/qaccessible.h>
-#include <QtGui/qaccessible2.h>
-#include <QtGui/qaccessiblewidget.h>
-#include <QtGui/qaccessibleobject.h>
+#include "dolphin_export.h"
+
+#include <QAccessible>
+#include <QAccessibleObject>
+#include <QAccessibleWidget>
+#include <QPointer>
 
 class KItemListView;
 class KItemListContainer;
 
-class KItemListViewAccessible: public QAccessibleTable2Interface, public QAccessibleObjectEx
+class DOLPHIN_EXPORT KItemListViewAccessible: public QAccessibleObject, public QAccessibleTableInterface
 {
-    Q_ACCESSIBLE_OBJECT
-
 public:
     explicit KItemListViewAccessible(KItemListView* view);
-
-    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** interface) 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& params);
-#endif
-    QVariant invokeMethodEx(Method, int, const QVariantList&);
-
-    // 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;
-    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) {}
+    ~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
-    virtual int selectedCellCount() const;
-    virtual int selectedColumnCount() const;
-    virtual int selectedRowCount() const;
-    virtual QList<QAccessibleTable2CellInterface*> selectedCells() const;
-    virtual QList<int> selectedColumns() const;
-    virtual QList<int> 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);
+    int selectedCellCount() const override;
+    int selectedColumnCount() const override;
+    int selectedRowCount() const override;
+    QList<QAccessibleInterface*> selectedCells() const override;
+    QList<int> selectedColumns() const override;
+    QList<int> 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();
     /**
-     * Create an QAccessibleTable2CellInterface representing the table
+     * Create an QAccessibleTableCellInterface representing the table
      * cell at the @index. Index is 0-based.
      */
-    inline QAccessibleTable2CellInterface* cell(int index) const;
-    inline QAccessible::Role cellRole() const;
+    inline QAccessibleInterface* cell(int index) const;
+
+private:
+    class AccessibleIdWrapper {
+    public:
+        AccessibleIdWrapper();
+        bool isValid;
+        QAccessible::Id id;
+    };
+    mutable QVector<AccessibleIdWrapper> m_cells;
 };
 
-class KItemListAccessibleCell: public QAccessibleTable2CellInterface
+class DOLPHIN_EXPORT KItemListAccessibleCell: public QAccessibleInterface, public QAccessibleTableCellInterface
 {
 public:
     KItemListAccessibleCell(KItemListView* view, int m_index);
 
-    QObject* object() const;
-    Role role(int) const;
-    State state(int) const;
-    QRect rect(int) const;
-    bool isValid() const;
-    int childAt(int, int) const;
-    int childCount() const;
-    int indexOfChild(const QAccessibleInterface*) const;
-    QString text(Text t, int child) const;
-    void setText(Text t, int child, const QString& text);
-    int navigate(RelationFlag relation, int m_index, QAccessibleInterface** interface) const;
-    Relation relationTo(int child, const QAccessibleInterface* other, int otherChild) const;
+    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& params);
-#endif
-
     // Cell Interface
-    virtual int columnExtent() const;
-    virtual QList<QAccessibleInterface*> columnHeaderCells() const;
-    virtual int columnIndex() const;
-    virtual int rowExtent() const;
-    virtual QList<QAccessibleInterface*> 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;
+    int columnExtent() const override;
+    QList<QAccessibleInterface*> columnHeaderCells() const override;
+    int columnIndex() const override;
+    int rowExtent() const override;
+    QList<QAccessibleInterface*> rowHeaderCells() const override;
+    int rowIndex() const override;
+    bool isSelected() const override;
+    QAccessibleInterface* table() const override;
 
     inline int index() const;
 
@@ -142,17 +134,15 @@ private:
     int m_index;
 };
 
-class KItemListContainerAccessible : public QAccessibleWidgetEx
+class DOLPHIN_EXPORT KItemListContainerAccessible : public QAccessibleWidget
 {
-    Q_ACCESSIBLE_OBJECT
-
 public:
     explicit KItemListContainerAccessible(KItemListContainer* container);
-    virtual ~KItemListContainerAccessible();
+    ~KItemListContainerAccessible() override;
 
-    int childCount() const;
-    int indexOfChild(const QAccessibleInterface* child) const;
-    int navigate(RelationFlag relation, int entry, QAccessibleInterface** target) const;
+    QAccessibleInterface* child(int index) const override;
+    int childCount() const override;
+    int indexOfChild(const QAccessibleInterface* child) const override;
 
 private:
     const KItemListContainer* container() const;