Qt 4.8
Public Functions | Private Functions | List of all members
QAccessibleTree Class Reference

#include <itemviews.h>

Inheritance diagram for QAccessibleTree:
QAccessibleTable2 QAccessibleTable2Interface QAccessibleObjectEx QAccessible2Interface QAccessibleInterfaceEx QAccessibleInterface QAccessible

Public Functions

QAccessibleTable2CellInterfacecellAt (int row, int column) const
 
int childAt (int x, int y) const
 Returns the 1-based index of the child that contains the screen coordinates (x, y). More...
 
int childCount () const
 Returns the number of children that belong to this object. More...
 
int indexOfChild (const QAccessibleInterface *) const
 Returns the 1-based index of the object child in this object's children list, or -1 if child is not a child of this object. More...
 
bool isRowSelected (int row) const
 
int navigate (RelationFlag relation, int index, QAccessibleInterface **iface) const
 Navigates from this object to an object that has a relationship relation to this object, and returns the respective object in target. More...
 
 QAccessibleTree (QWidget *w)
 
Relation relationTo (int child, const QAccessibleInterface *other, int otherChild) const
 
Returns the relationship between this object's \a child and the \a
other object's \a otherChild.
More...
 
int rowCount () const
 
QString rowDescription (int row) const
 
bool selectRow (int row)
 
virtual ~QAccessibleTree ()
 
- Public Functions inherited from QAccessibleTable2
QString actionText (int action, Text t, int child) const
 Returns the text property t of the action action supported by the object, or of the object's child if child is not 0. More...
 
virtual QAccessibleInterfacecaption () const
 
virtual int columnCount () const
 
virtual QString columnDescription (int column) const
 
bool doAction (int action, int child, const QVariantList &params)
 Asks the object, or the object's child if child is not 0, to execute action using the parameters, params. More...
 
QVariant invokeMethodEx (Method, int, const QVariantList &)
 
virtual bool isColumnSelected (int column) const
 
virtual QAccessible2::TableModelChange modelChange () const
 
 QAccessibleTable2 (QWidget *w)
 
QRect rect (int child) const
 Returns the geometry of the object, or of the object's child if child is not 0. More...
 
Role role (int child) const
 Returns the role of the object, or of the object's child if child is not 0. More...
 
virtual bool selectColumn (int column)
 
virtual int selectedCellCount () const
 
virtual QList< QAccessibleTable2CellInterface * > selectedCells () const
 
virtual int selectedColumnCount () const
 
virtual QList< int > selectedColumns () const
 
virtual int selectedRowCount () const
 
virtual QList< int > selectedRows () const
 
State state (int child) const
 Returns the current state of the object, or of the object's child if child is not 0. More...
 
virtual QAccessibleInterfacesummary () const
 
QString text (Text t, int child) const
 Returns the value of the text property t of the object, or of the object's child if child is not 0. More...
 
virtual bool unselectColumn (int column)
 
virtual bool unselectRow (int row)
 
int userActionCount (int child) const
 Returns the number of custom actions of the object, or of the object's child if child is not 0. More...
 
QAbstractItemViewview () const
 
virtual ~QAccessibleTable2 ()
 
- Public Functions inherited from QAccessibleTable2Interface
QAccessible2InterfaceqAccessibleTable2CastHelper ()
 
- Public Functions inherited from QAccessible2Interface
virtual ~QAccessible2Interface ()
 
- Public Functions inherited from QAccessibleObjectEx
bool isValid () const
 Returns true if all the data necessary to use this interface implementation is valid (e. More...
 
QObjectobject () const
 Returns a pointer to the QObject this interface implementation provides information for. More...
 
 QAccessibleObjectEx (QObject *object)
 
void setText (Text t, int child, const QString &text)
 Sets the text property t of the object, or of the object's child if child is not 0, to text. More...
 
- Public Functions inherited from QAccessibleInterfaceEx
virtual QAccessible2Interfaceinterface_cast (QAccessible2::InterfaceType)
 
virtual QVariant virtual_hook (const QVariant &data)
 
- Public Functions inherited from QAccessibleInterface
QAccessibleActionInterfaceactionInterface ()
 
QColor backgroundColor ()
 
QAccessibleEditableTextInterfaceeditableTextInterface ()
 
QColor foregroundColor ()
 
QAccessibleImageInterfaceimageInterface ()
 
QVariant invokeMethod (Method method, int child=0, const QVariantList &params=QVariantList())
 Invokes a method on child with the given parameters params and returns the result of the operation as QVariant. More...
 
QSet< MethodsupportedMethods ()
 Returns a QSet of QAccessible::Method that are supported by this accessible interface. More...
 
QAccessibleTable2Interfacetable2Interface ()
 
QAccessibleTableInterfacetableInterface ()
 
QAccessibleTextInterfacetextInterface ()
 
QAccessibleValueInterfacevalueInterface ()
 
virtual ~QAccessibleInterface ()
 Destroys the object. More...
 

Private Functions

QModelIndex indexFromLogical (int row, int column=0) const
 

Additional Inherited Members

- Public Types inherited from QAccessible
enum  Action {
  DefaultAction = 0, Press = -1, FirstStandardAction = Press, SetFocus = -2,
  Increase = -3, Decrease = -4, Accept = -5, Cancel = -6,
  Select = -7, ClearSelection = -8, RemoveSelection = -9, ExtendSelection = -10,
  AddToSelection = -11, LastStandardAction = AddToSelection
}
 This enum describes the possible types of action that can occur. More...
 
enum  Event {
  SoundPlayed = 0x0001, Alert = 0x0002, ForegroundChanged = 0x0003, MenuStart = 0x0004,
  MenuEnd = 0x0005, PopupMenuStart = 0x0006, PopupMenuEnd = 0x0007, ContextHelpStart = 0x000C,
  ContextHelpEnd = 0x000D, DragDropStart = 0x000E, DragDropEnd = 0x000F, DialogStart = 0x0010,
  DialogEnd = 0x0011, ScrollingStart = 0x0012, ScrollingEnd = 0x0013, MenuCommand = 0x0018,
  ActionChanged = 0x0101, ActiveDescendantChanged = 0x0102, AttributeChanged = 0x0103, DocumentContentChanged = 0x0104,
  DocumentLoadComplete = 0x0105, DocumentLoadStopped = 0x0106, DocumentReload = 0x0107, HyperlinkEndIndexChanged = 0x0108,
  HyperlinkNumberOfAnchorsChanged = 0x0109, HyperlinkSelectedLinkChanged = 0x010A, HypertextLinkActivated = 0x010B, HypertextLinkSelected = 0x010C,
  HyperlinkStartIndexChanged = 0x010D, HypertextChanged = 0x010E, HypertextNLinksChanged = 0x010F, ObjectAttributeChanged = 0x0110,
  PageChanged = 0x0111, SectionChanged = 0x0112, TableCaptionChanged = 0x0113, TableColumnDescriptionChanged = 0x0114,
  TableColumnHeaderChanged = 0x0115, TableModelChanged = 0x0116, TableRowDescriptionChanged = 0x0117, TableRowHeaderChanged = 0x0118,
  TableSummaryChanged = 0x0119, TextAttributeChanged = 0x011A, TextCaretMoved = 0x011B, TextColumnChanged = 0x011D,
  TextInserted = 0x011E, TextRemoved = 0x011F, TextUpdated = 0x0120, TextSelectionChanged = 0x0121,
  VisibleDataChanged = 0x0122, ObjectCreated = 0x8000, ObjectDestroyed = 0x8001, ObjectShow = 0x8002,
  ObjectHide = 0x8003, ObjectReorder = 0x8004, Focus = 0x8005, Selection = 0x8006,
  SelectionAdd = 0x8007, SelectionRemove = 0x8008, SelectionWithin = 0x8009, StateChanged = 0x800A,
  LocationChanged = 0x800B, NameChanged = 0x800C, DescriptionChanged = 0x800D, ValueChanged = 0x800E,
  ParentChanged = 0x800F, HelpChanged = 0x80A0, DefaultActionChanged = 0x80B0, AcceleratorChanged = 0x80C0
}
 This enum type defines accessible event types. More...
 
typedef QAccessibleInterface *(* InterfaceFactory) (const QString &key, QObject *)
 This is a typedef for a pointer to a function with the following signature: More...
 
enum  Method {
  ListSupportedMethods = 0, SetCursorPosition = 1, GetCursorPosition = 2, ForegroundColor = 3,
  BackgroundColor = 4
}
 This enum describes the possible types of methods that can be invoked on an accessible object. More...
 
enum  RelationFlag {
  Unrelated = 0x00000000, Self = 0x00000001, Ancestor = 0x00000002, Child = 0x00000004,
  Descendent = 0x00000008, Sibling = 0x00000010, HierarchyMask = 0x000000ff, Up = 0x00000100,
  Down = 0x00000200, Left = 0x00000400, Right = 0x00000800, Covers = 0x00001000,
  Covered = 0x00002000, GeometryMask = 0x0000ff00, FocusChild = 0x00010000, Label = 0x00020000,
  Labelled = 0x00040000, Controller = 0x00080000, Controlled = 0x00100000, LogicalMask = 0x00ff0000
}
 This enum type defines bit flags that can be combined to indicate the relationship between two accessible objects. More...
 
enum  Role {
  NoRole = 0x00000000, TitleBar = 0x00000001, MenuBar = 0x00000002, ScrollBar = 0x00000003,
  Grip = 0x00000004, Sound = 0x00000005, Cursor = 0x00000006, Caret = 0x00000007,
  AlertMessage = 0x00000008, Window = 0x00000009, Client = 0x0000000A, PopupMenu = 0x0000000B,
  MenuItem = 0x0000000C, ToolTip = 0x0000000D, Application = 0x0000000E, Document = 0x0000000F,
  Pane = 0x00000010, Chart = 0x00000011, Dialog = 0x00000012, Border = 0x00000013,
  Grouping = 0x00000014, Separator = 0x00000015, ToolBar = 0x00000016, StatusBar = 0x00000017,
  Table = 0x00000018, ColumnHeader = 0x00000019, RowHeader = 0x0000001A, Column = 0x0000001B,
  Row = 0x0000001C, Cell = 0x0000001D, Link = 0x0000001E, HelpBalloon = 0x0000001F,
  Assistant = 0x00000020, List = 0x00000021, ListItem = 0x00000022, Tree = 0x00000023,
  TreeItem = 0x00000024, PageTab = 0x00000025, PropertyPage = 0x00000026, Indicator = 0x00000027,
  Graphic = 0x00000028, StaticText = 0x00000029, EditableText = 0x0000002A, PushButton = 0x0000002B,
  CheckBox = 0x0000002C, RadioButton = 0x0000002D, ComboBox = 0x0000002E, ProgressBar = 0x00000030,
  Dial = 0x00000031, HotkeyField = 0x00000032, Slider = 0x00000033, SpinBox = 0x00000034,
  Canvas = 0x00000035, Animation = 0x00000036, Equation = 0x00000037, ButtonDropDown = 0x00000038,
  ButtonMenu = 0x00000039, ButtonDropGrid = 0x0000003A, Whitespace = 0x0000003B, PageTabList = 0x0000003C,
  Clock = 0x0000003D, Splitter = 0x0000003E, LayeredPane = 0x0000003F, Terminal = 0x00000040,
  Desktop = 0x00000041, UserRole = 0x0000ffff
}
 This enum defines the role of an accessible object. More...
 
typedef void(* RootObjectHandler) (QObject *)
 A function pointer type. More...
 
enum  StateFlag {
  Normal = 0x00000000, Unavailable = 0x00000001, Selected = 0x00000002, Focused = 0x00000004,
  Pressed = 0x00000008, Checked = 0x00000010, Mixed = 0x00000020, ReadOnly = 0x00000040,
  HotTracked = 0x00000080, DefaultButton = 0x00000100, Expanded = 0x00000200, Collapsed = 0x00000400,
  Busy = 0x00000800, Marqueed = 0x00002000, Animated = 0x00004000, Invisible = 0x00008000,
  Offscreen = 0x00010000, Sizeable = 0x00020000, Movable = 0x00040000, SelfVoicing = 0x00080000,
  Focusable = 0x00100000, Selectable = 0x00200000, Linked = 0x00400000, Traversed = 0x00800000,
  MultiSelectable = 0x01000000, ExtSelectable = 0x02000000, Protected = 0x20000000, HasPopup = 0x40000000,
  Modal = 0x80000000, HasInvokeExtension = 0x10000000
}
 This enum type defines bit flags that can be combined to indicate the state of an accessible object. More...
 
enum  Text {
  Name = 0, Description, Value, Help,
  Accelerator, UserText = 0x0000ffff
}
 This enum specifies string information that an accessible object returns. More...
 
typedef void(* UpdateHandler) (QObject *, int who, Event reason)
 A function pointer type. More...
 
- Static Public Functions inherited from QAccessible
static void cleanup ()
 
static void initialize ()
 
static void installFactory (InterfaceFactory)
 Installs the InterfaceFactory factory. More...
 
static RootObjectHandler installRootObjectHandler (RootObjectHandler)
 Installs the given handler as the function to be used by setRootObject(), and returns the previously installed handler. More...
 
static UpdateHandler installUpdateHandler (UpdateHandler)
 Installs the given handler as the function to be used by updateAccessibility(), and returns the previously installed handler. More...
 
static bool isActive ()
 Returns true if an accessibility implementation has been requested during the runtime of the application; otherwise returns false. More...
 
static QAccessibleInterfacequeryAccessibleInterface (QObject *)
 If a QAccessibleInterface implementation exists for the given object, this function returns a pointer to the implementation; otherwise it returns 0. More...
 
static void removeFactory (InterfaceFactory)
 Removes factory from the list of installed InterfaceFactories. More...
 
static void setRootObject (QObject *)
 Sets the root accessible object of this application to object. More...
 
static void updateAccessibility (QObject *, int who, Event reason)
 Notifies accessibility clients about a change in object's accessibility information. More...
 
- Protected Functions inherited from QAccessibleTable2
QAccessibleTable2Cellcell (const QModelIndex &index) const
 
QAccessible::Role cellRole () const
 
virtual void columnsInserted (const QModelIndex &parent, int first, int last)
 
virtual void columnsMoved (const QModelIndex &parent, int start, int end, const QModelIndex &destination, int column)
 
virtual void columnsRemoved (const QModelIndex &parent, int first, int last)
 
QHeaderViewhorizontalHeader () const
 
virtual void modelReset ()
 
virtual void rowsInserted (const QModelIndex &parent, int first, int last)
 
virtual void rowsMoved (const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row)
 
virtual void rowsRemoved (const QModelIndex &parent, int first, int last)
 
QHeaderViewverticalHeader () const
 
- Protected Functions inherited from QAccessibleObjectEx
virtual ~QAccessibleObjectEx ()
 
- Protected Variables inherited from QAccessibleTable2
QAccessible2::TableModelChange lastChange
 

Detailed Description

Definition at line 152 of file itemviews.h.

Constructors and Destructors

◆ QAccessibleTree()

QAccessibleTree::QAccessibleTree ( QWidget w)
inlineexplicit

Definition at line 155 of file itemviews.h.

156  : QAccessibleTable2(w)
157  {}
QAccessibleTable2(QWidget *w)
Definition: itemviews.cpp:123

◆ ~QAccessibleTree()

virtual QAccessibleTree::~QAccessibleTree ( )
inlinevirtual

Definition at line 159 of file itemviews.h.

159 {}

Functions

◆ cellAt()

QAccessibleTable2CellInterface * QAccessibleTree::cellAt ( int  row,
int  column 
) const
virtual

Reimplemented from QAccessibleTable2.

Definition at line 659 of file itemviews.cpp.

660 {
661  QModelIndex index = indexFromLogical(row, column);
662  if (!index.isValid()) {
663  qWarning() << "Requested invalid tree cell: " << row << column;
664  return 0;
665  }
666  return new QAccessibleTable2Cell(view(), index, cellRole());
667 }
QAccessible::Role cellRole() const
Definition: itemviews.h:128
QAbstractItemView * view() const
Definition: itemviews.cpp:70
QModelIndex indexFromLogical(int row, int column=0) const
Definition: itemviews.cpp:536
Q_CORE_EXPORT void qWarning(const char *,...)
bool isValid() const
Returns true if this model index is valid; otherwise returns false.
The QModelIndex class is used to locate data in a data model.
quint16 index

◆ childAt()

int QAccessibleTree::childAt ( int  x,
int  y 
) const
virtual

Returns the 1-based index of the child that contains the screen coordinates (x, y).

This function returns 0 if the point is positioned on the object itself. If the tested point is outside the boundaries of the object this function returns -1.

This function is only relyable for visible objects (invisible object might not be laid out correctly).

All visual objects provide this information.

See also
rect()

Reimplemented from QAccessibleTable2.

Definition at line 554 of file itemviews.cpp.

555 {
556  QPoint viewportOffset = view()->viewport()->mapTo(view(), QPoint(0,0));
557  QPoint indexPosition = view()->mapFromGlobal(QPoint(x, y) - viewportOffset);
558 
559  QModelIndex index = view()->indexAt(indexPosition);
560  if (!index.isValid())
561  return -1;
562 
563  const QTreeView *treeView = qobject_cast<const QTreeView*>(view());
564  int row = treeView->d_func()->viewIndex(index) + (horizontalHeader() ? 1 : 0);
565  int column = index.column();
566 
567  int i = row * view()->model()->columnCount() + column + 1;
568  Q_ASSERT(i > view()->model()->columnCount());
569  return i;
570 }
T qobject_cast(QObject *object)
Definition: qobject.h:375
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const =0
Returns the number of columns for the children of the given parent.
QPoint mapTo(QWidget *, const QPoint &) const
Translates the widget coordinate pos to the coordinate system of parent.
Definition: qwidget.cpp:4409
QAbstractItemView * view() const
Definition: itemviews.cpp:70
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
QWidget * viewport() const
Returns the viewport widget.
virtual int columnCount() const
Definition: itemviews.cpp:262
The QTreeView class provides a default model/view implementation of a tree view.
Definition: qtreeview.h:58
bool isValid() const
Returns true if this model index is valid; otherwise returns false.
QHeaderView * horizontalHeader() const
Definition: itemviews.cpp:144
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:53
The QModelIndex class is used to locate data in a data model.
quint16 index
QPoint mapFromGlobal(const QPoint &) const
Translates the global screen coordinate pos to widget coordinates.
QAbstractItemModel * model() const
Returns the model that this view is presenting.
int column() const
Returns the column this model index refers to.
virtual QModelIndex indexAt(const QPoint &point) const =0
Returns the model index of the item at the viewport coordinates point.

◆ childCount()

int QAccessibleTree::childCount ( ) const
virtual

Returns the number of children that belong to this object.

A child can provide accessibility information on its own (e.g. a child widget), or be a sub-element of this accessible object.

All objects provide this information.

See also
indexOfChild()

Reimplemented from QAccessibleTable2.

Definition at line 572 of file itemviews.cpp.

573 {
574  const QTreeView *treeView = qobject_cast<const QTreeView*>(view());
575  Q_ASSERT(treeView);
576  if (!view()->model())
577  return 0;
578 
579  int hHeader = horizontalHeader() ? 1 : 0;
580  return (treeView->d_func()->viewItems.count() + hHeader)* view()->model()->columnCount();
581 }
T qobject_cast(QObject *object)
Definition: qobject.h:375
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const =0
Returns the number of columns for the children of the given parent.
QAbstractItemView * view() const
Definition: itemviews.cpp:70
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
The QTreeView class provides a default model/view implementation of a tree view.
Definition: qtreeview.h:58
QHeaderView * horizontalHeader() const
Definition: itemviews.cpp:144
QAbstractItemModel * model() const
Returns the model that this view is presenting.

◆ indexFromLogical()

QModelIndex QAccessibleTree::indexFromLogical ( int  row,
int  column = 0 
) const
private

Definition at line 536 of file itemviews.cpp.

537 {
538  if (!isValid() || !view()->model())
539  return QModelIndex();
540 
541  const QTreeView *treeView = qobject_cast<const QTreeView*>(view());
542  if (treeView->d_func()->viewItems.count() <= row) {
543  qWarning() << "QAccessibleTree::indexFromLogical: invalid index: " << row << column << " for " << treeView;
544  return QModelIndex();
545  }
546  QModelIndex modelIndex = treeView->d_func()->viewItems.at(row).index;
547 
548  if (modelIndex.isValid() && column > 0) {
549  modelIndex = view()->model()->index(modelIndex.row(), column, modelIndex.parent());
550  }
551  return modelIndex;
552 }
T qobject_cast(QObject *object)
Definition: qobject.h:375
QAbstractItemView * view() const
Definition: itemviews.cpp:70
QModelIndex parent() const
Returns the parent of the model index, or QModelIndex() if it has no parent.
virtual QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const =0
Returns the index of the item in the model specified by the given row, column and parent index...
The QTreeView class provides a default model/view implementation of a tree view.
Definition: qtreeview.h:58
int row() const
Returns the row this model index refers to.
Q_CORE_EXPORT void qWarning(const char *,...)
bool isValid() const
Returns true if this model index is valid; otherwise returns false.
The QModelIndex class is used to locate data in a data model.
bool isValid() const
Returns true if all the data necessary to use this interface implementation is valid (e...
QAbstractItemModel * model() const
Returns the model that this view is presenting.

◆ indexOfChild()

int QAccessibleTree::indexOfChild ( const QAccessibleInterface child) const
virtual

Returns the 1-based index of the object child in this object's children list, or -1 if child is not a child of this object.

0 is not a possible return value.

All objects provide this information about their children.

See also
childCount()

Reimplemented from QAccessibleTable2.

Definition at line 590 of file itemviews.cpp.

591 {
592  if (!view()->model())
593  return -1;
594  if (iface->role(0) == QAccessible::TreeItem) {
595  const QAccessibleTable2Cell* cell = static_cast<const QAccessibleTable2Cell*>(iface);
596  const QTreeView *treeView = qobject_cast<const QTreeView*>(view());
597  Q_ASSERT(treeView);
598  int row = treeView->d_func()->viewIndex(cell->m_index) + (horizontalHeader() ? 1 : 0);
599  int column = cell->m_index.column();
600 
601  int index = row * view()->model()->columnCount() + column + 1;
602  //qDebug() << "QAccessibleTree::indexOfChild r " << row << " c " << column << "index " << index;
603  Q_ASSERT(index > treeView->model()->columnCount());
604  return index;
605  } else if (iface->role(0) == QAccessible::ColumnHeader){
606  const QAccessibleTable2HeaderCell* cell = static_cast<const QAccessibleTable2HeaderCell*>(iface);
607  //qDebug() << "QAccessibleTree::indexOfChild header " << cell->index << "is: " << cell->index + 1;
608  return cell->index + 1;
609  } else {
610  qWarning() << "WARNING QAccessibleTable2::indexOfChild invalid child"
611  << iface->role(0) << iface->text(QAccessible::Name, 0);
612  }
613  // FIXME: add scrollbars and don't just ignore them
614  return -1;
615 }
T qobject_cast(QObject *object)
Definition: qobject.h:375
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const =0
Returns the number of columns for the children of the given parent.
QAbstractItemView * view() const
Definition: itemviews.cpp:70
QAccessibleTable2Cell * cell(const QModelIndex &index) const
Definition: itemviews.cpp:229
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
QModelIndex m_index
Definition: itemviews.h:224
The QTreeView class provides a default model/view implementation of a tree view.
Definition: qtreeview.h:58
Q_CORE_EXPORT void qWarning(const char *,...)
QHeaderView * horizontalHeader() const
Definition: itemviews.cpp:144
quint16 index
QAbstractItemModel * model() const
Returns the model that this view is presenting.
int column() const
Returns the column this model index refers to.

◆ isRowSelected()

bool QAccessibleTree::isRowSelected ( int  row) const
virtual

Reimplemented from QAccessibleTable2.

Definition at line 674 of file itemviews.cpp.

675 {
676  if (!view()->selectionModel())
677  return false;
679  return view()->selectionModel()->isRowSelected(index.row(), index.parent());
680 }
QAbstractItemView * view() const
Definition: itemviews.cpp:70
QModelIndex indexFromLogical(int row, int column=0) const
Definition: itemviews.cpp:536
QModelIndex parent() const
Returns the parent of the model index, or QModelIndex() if it has no parent.
QItemSelectionModel * selectionModel() const
Returns the current selection model.
int row() const
Returns the row this model index refers to.
The QModelIndex class is used to locate data in a data model.
quint16 index
bool isRowSelected(int row, const QModelIndex &parent) const
Returns true if all items are selected in the row with the given parent.

◆ navigate()

int QAccessibleTree::navigate ( RelationFlag  relation,
int  index,
QAccessibleInterface **  iface 
) const
virtual

Navigates from this object to an object that has a relationship relation to this object, and returns the respective object in target.

It is the caller's responsibility to delete *target after use.

If an object is found, target is set to point to the object, and the index of the child of target is returned. The return value is 0 if target itself is the requested object. target is set to null if this object is the target object (i.e. the requested object is a handled by this object).

If no object is found target is set to null, and the return value is -1.

The entry parameter has two different meanings:

  • Hierarchical and Logical relationships – if multiple objects with the requested relationship exist entry specifies which one to return. entry is 1-based, e.g. use 1 to get the first (and possibly only) object with the requested relationship.

    The following code demonstrates how to use this function to navigate to the first child of an object:

    int targetChild = object->navigate(Accessible::Child, 1, &child);
    if (child) {
    // ...
    delete child;
    }
  • Geometric relationships – the index of the child from which to start navigating in the specified direction. entry can be 0 to navigate to a sibling of this object, or non-null to navigate within contained children that don't provide their own accessible information.

Note that the Descendent value for relation is not supported.

All objects support navigation.

See also
relationTo(), childCount()

Reimplemented from QAccessibleTable2.

Definition at line 617 of file itemviews.cpp.

618 {
619  *iface = 0;
620  if ((index < 0) || (!view()->model()))
621  return -1;
622 
623  switch (relation) {
624  case QAccessible::Child: {
625  Q_ASSERT(index > 0);
626  --index;
627  int hHeader = horizontalHeader() ? 1 : 0;
628 
629  if (hHeader) {
630  if (index < view()->model()->columnCount()) {
632  return 0;
633  } else {
634  index -= view()->model()->columnCount();
635  }
636  }
637 
638  int row = index / view()->model()->columnCount();
639  int column = index % view()->model()->columnCount();
640  QModelIndex modelIndex = indexFromLogical(row, column);
641  if (modelIndex.isValid()) {
642  *iface = cell(modelIndex);
643  return 0;
644  }
645  return -1;
646  }
647  default:
648  break;
649  }
650  // handle everything except child
651  return QAccessibleTable2::navigate(relation, index, iface);
652 }
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const =0
Returns the number of columns for the children of the given parent.
QAbstractItemView * view() const
Definition: itemviews.cpp:70
QAccessibleTable2Cell * cell(const QModelIndex &index) const
Definition: itemviews.cpp:229
QModelIndex indexFromLogical(int row, int column=0) const
Definition: itemviews.cpp:536
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
virtual int columnCount() const
Definition: itemviews.cpp:262
int navigate(RelationFlag relation, int index, QAccessibleInterface **iface) const
Navigates from this object to an object that has a relationship relation to this object, and returns the respective object in target.
Definition: itemviews.cpp:484
bool isValid() const
Returns true if this model index is valid; otherwise returns false.
QHeaderView * horizontalHeader() const
Definition: itemviews.cpp:144
The QModelIndex class is used to locate data in a data model.
quint16 index
QAbstractItemModel * model() const
Returns the model that this view is presenting.

◆ relationTo()

QAccessible::Relation QAccessibleTree::relationTo ( int  child,
const QAccessibleInterface other,
int  otherChild 
) const
virtual

Returns the relationship between this object's \a child and the \a
other object's \a otherChild.

If child is 0 the object's own relation is returned.

The returned value indicates the relation of the called object to the other object, e.g. if this object is a child of other the return value will be Child.

The return value is a combination of the bit flags in the QAccessible::Relation enumeration.

All objects provide this information.

See also
indexOfChild(), navigate()

Reimplemented from QAccessibleTable2.

Definition at line 654 of file itemviews.cpp.

655 {
656  return QAccessible::Unrelated;
657 }

◆ rowCount()

int QAccessibleTree::rowCount ( ) const
virtual

Reimplemented from QAccessibleTable2.

Definition at line 583 of file itemviews.cpp.

584 {
585  const QTreeView *treeView = qobject_cast<const QTreeView*>(view());
586  Q_ASSERT(treeView);
587  return treeView->d_func()->viewItems.count();
588 }
T qobject_cast(QObject *object)
Definition: qobject.h:375
QAbstractItemView * view() const
Definition: itemviews.cpp:70
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
The QTreeView class provides a default model/view implementation of a tree view.
Definition: qtreeview.h:58

◆ rowDescription()

QString QAccessibleTree::rowDescription ( int  row) const
virtual

Reimplemented from QAccessibleTable2.

Definition at line 669 of file itemviews.cpp.

670 {
671  return QString(); // no headers for rows in trees
672 }
The QString class provides a Unicode character string.
Definition: qstring.h:83

◆ selectRow()

bool QAccessibleTree::selectRow ( int  row)
virtual

Reimplemented from QAccessibleTable2.

Definition at line 682 of file itemviews.cpp.

683 {
684  if (!view()->selectionModel())
685  return false;
688  return false;
690  return true;
691 }
QAbstractItemView * view() const
Definition: itemviews.cpp:70
QModelIndex indexFromLogical(int row, int column=0) const
Definition: itemviews.cpp:536
SelectionMode selectionMode
which selection mode the view operates in
QItemSelectionModel * selectionModel() const
Returns the current selection model.
bool isValid() const
Returns true if this model index is valid; otherwise returns false.
virtual void select(const QModelIndex &index, QItemSelectionModel::SelectionFlags command)
Selects the model item index using the specified command, and emits selectionChanged().
The QModelIndex class is used to locate data in a data model.
quint16 index

The documentation for this class was generated from the following files: