VirtualBox

Changeset 64473 in vbox


Ignore:
Timestamp:
Oct 28, 2016 3:31:29 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
111607
Message:

FE/Qt: bugref:6899: Accessibility support (step 105): Extend QITreeView with API allowing to make items accessible.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/extensions
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeView.cpp

    r64470 r64473  
    2929#endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
    3030
     31
     32/*********************************************************************************************************************************
     33*   Class QITreeViewItem implementation.                                                                                         *
     34*********************************************************************************************************************************/
     35
     36QRect QITreeViewItem::rect() const
     37{
     38    /* Redirect call to parent-tree: */
     39    return parentTree() ? parentTree()->visualRect(modelIndex()) : QRect();
     40}
     41
     42QModelIndex QITreeViewItem::modelIndex() const
     43{
     44    /* Make sure it's not root model-index: */
     45    if (   parentTree()->rootIndex().internalPointer()
     46        && parentTree()->rootIndex().internalPointer() == this)
     47        return parentTree()->rootIndex();
     48
     49    /* Determine our index inside parent: */
     50    int iIndexInParent = -1;
     51    if (parentItem())
     52    {
     53        for (int i = 0; i < parentItem()->childCount(); ++i)
     54            if (parentItem()->childItem(i) == this)
     55            {
     56                iIndexInParent = i;
     57                break;
     58            }
     59    }
     60    else
     61    {
     62        for (int i = 0; i < parentTree()->childCount(); ++i)
     63            if (parentTree()->childItem(i) == this)
     64            {
     65                iIndexInParent = i;
     66                break;
     67            }
     68    }
     69    if (iIndexInParent == -1)
     70        return QModelIndex();
     71
     72    /* Get parent model-index: */
     73    QModelIndex parentModelIndex = parentItem() ? parentItem()->modelIndex() : parentTree()->rootIndex();
     74
     75    /* Return model-index as child of parent model-index: */
     76    return parentModelIndex.child(iIndexInParent, 0);
     77}
     78
     79
     80/*********************************************************************************************************************************
     81*   Class QITreeView implementation.                                                                                             *
     82*********************************************************************************************************************************/
    3183
    3284QITreeView::QITreeView(QWidget *pParent)
  • trunk/src/VBox/Frontends/VirtualBox/src/extensions/QITreeView.h

    r64470 r64473  
    2121/* Qt includes: */
    2222#include <QTreeView>
     23
     24/* Forward declarations: */
     25class QITreeViewItem;
     26class QITreeView;
     27
     28
     29/** OObject subclass used as item for the QITreeView. */
     30class QITreeViewItem : public QObject
     31{
     32    Q_OBJECT;
     33
     34public:
     35
     36    /** Constructs tree-view item for passed @a pParent. */
     37    QITreeViewItem(QITreeView *pParent)
     38        : m_pParentTree(pParent)
     39        , m_pParentItem(0)
     40    {}
     41
     42    /** Constructs tree-view item for passed @a pParent. */
     43    QITreeViewItem(QITreeViewItem *pParentItem)
     44        : m_pParentTree(pParentItem->parentTree())
     45        , m_pParentItem(pParentItem)
     46    {}
     47
     48    /** Returns the parent tree-view. */
     49    QITreeView *parentTree() const { return m_pParentTree; }
     50    /** Returns the parent tree-view item. */
     51    QITreeViewItem *parentItem() const { return m_pParentItem; }
     52
     53    /** Returns the number of children. */
     54    virtual int childCount() const = 0;
     55    /** Returns the child item with @a iIndex. */
     56    virtual QITreeViewItem *childItem(int iIndex) const = 0;
     57
     58    /** Returns the item text. */
     59    virtual QString text() const = 0;
     60
     61    /** Returns the rectangle. */
     62    QRect rect() const;
     63
     64private:
     65
     66    /** Returns the model-index: */
     67    QModelIndex modelIndex() const;
     68
     69    /** Holds the parent tree reference. */
     70    QITreeView *m_pParentTree;
     71    /** Holds the parent item reference. */
     72    QITreeViewItem *m_pParentItem;
     73};
    2374
    2475
     
    50101    /** Constructs table-view passing @a pParent to the base-class. */
    51102    QITreeView(QWidget *pParent = 0);
     103
     104    /** Returns the number of children. */
     105    virtual int childCount() const { return 0; }
     106    /** Returns the child item with @a iIndex. */
     107    virtual QITreeViewItem *childItem(int /* iIndex */) const { return 0; }
    52108
    53109    /** Returns child rectangle. */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette