VirtualBox

Changeset 64744 in vbox


Ignore:
Timestamp:
Nov 24, 2016 4:36:28 PM (8 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:6899: Accessibility support (step 137): Make UIApplianceModel know about own root index, though still keep it hidden.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/widgets
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceEditorWidget.cpp

    r64695 r64744  
    965965}
    966966
     967QModelIndex UIApplianceModel::root() const
     968{
     969    return index(0, 0);
     970}
     971
    967972QModelIndex UIApplianceModel::index(int iRow, int iColumn, const QModelIndex &parentIdx /* = QModelIndex() */) const
    968973{
     
    970975        return QModelIndex();
    971976
    972     UIApplianceModelItem *pParentItem;
    973 
    974     if (!parentIdx.isValid())
    975         pParentItem = m_pRootItem;
    976     else
    977         pParentItem = static_cast<UIApplianceModelItem*>(parentIdx.internalPointer());
    978 
    979     UIApplianceModelItem *pChildItem = pParentItem->child(iRow);
    980     if (pChildItem)
    981         return createIndex(iRow, iColumn, pChildItem);
     977    UIApplianceModelItem *pItem = !parentIdx.isValid() ? m_pRootItem :
     978                                  static_cast<UIApplianceModelItem*>(parentIdx.internalPointer())->child(iRow);
     979
     980    return pItem ? createIndex(iRow, iColumn, pItem) : QModelIndex();
     981}
     982
     983QModelIndex UIApplianceModel::parent(const QModelIndex &idx) const
     984{
     985    if (!idx.isValid())
     986        return QModelIndex();
     987
     988    UIApplianceModelItem *pItem = static_cast<UIApplianceModelItem*>(idx.internalPointer());
     989    UIApplianceModelItem *pParentItem = pItem->parent();
     990
     991    if (pParentItem)
     992        return createIndex(pParentItem->row(), 0, pParentItem);
    982993    else
    983994        return QModelIndex();
    984995}
    985996
    986 QModelIndex UIApplianceModel::parent(const QModelIndex &idx) const
    987 {
    988     if (!idx.isValid())
    989         return QModelIndex();
    990 
    991     UIApplianceModelItem *pChildItem = static_cast<UIApplianceModelItem*>(idx.internalPointer());
    992     UIApplianceModelItem *pParentItem = pChildItem->parent();
    993 
    994     if (pParentItem == m_pRootItem)
    995         return QModelIndex();
    996 
    997     return createIndex(pParentItem->row(), 0, pParentItem);
    998 }
    999 
    1000997int UIApplianceModel::rowCount(const QModelIndex &parentIdx /* = QModelIndex() */) const
    1001998{
    1002     UIApplianceModelItem *pParentItem;
    1003     if (parentIdx.column() > 0)
    1004         return 0;
    1005 
    1006     if (!parentIdx.isValid())
    1007         pParentItem = m_pRootItem;
    1008     else
    1009         pParentItem = static_cast<UIApplianceModelItem*>(parentIdx.internalPointer());
    1010 
    1011     return pParentItem->childCount();
     999    return !parentIdx.isValid() ? 1 /* only root item has invalid parent */ :
     1000           static_cast<UIApplianceModelItem*>(parentIdx.internalPointer())->childCount();
    10121001}
    10131002
    10141003int UIApplianceModel::columnCount(const QModelIndex &parentIdx /* = QModelIndex() */) const
    10151004{
    1016     if (parentIdx.isValid())
    1017         return static_cast<UIApplianceModelItem*>(parentIdx.internalPointer())->columnCount();
    1018     else
    1019         return m_pRootItem->columnCount();
     1005    return !parentIdx.isValid() ? m_pRootItem->columnCount() :
     1006           static_cast<UIApplianceModelItem*>(parentIdx.internalPointer())->columnCount();
    10201007}
    10211008
     
    13261313                {
    13271314                    /* Configure tree-view: */
    1328                     m_pTreeViewSettings->setRootIsDecorated(false);
    13291315                    m_pTreeViewSettings->setAlternatingRowColors(true);
    13301316                    m_pTreeViewSettings->setAllColumnsShowFocus(true);
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceEditorWidget.h

    r64695 r64744  
    7171    ~UIApplianceModel();
    7272
     73    /** Returns the root index in the model. */
     74    virtual QModelIndex root() const;
    7375    /** Returns the index of the item in the model specified by the given @a iRow, @a iColumn and @a parentIdx. */
    7476    virtual QModelIndex index(int iRow, int iColumn, const QModelIndex &parentIdx = QModelIndex()) const /* override */;
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceExportEditorWidget.cpp

    r64692 r64744  
    102102    m_pTreeViewSettings->setColumnHidden(ApplianceViewSection_OriginalValue, true);
    103103    m_pTreeViewSettings->expandAll();
     104    /* Set model root index and make it current: */
     105    m_pTreeViewSettings->setRootIndex(pProxy->mapFromSource(m_pModel->root()));
     106    m_pTreeViewSettings->setCurrentIndex(pProxy->mapFromSource(m_pModel->root()));
    104107
    105108    /* Check for warnings & if there are one display them. */
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceImportEditorWidget.cpp

    r64692 r64744  
    108108                        m_pTreeViewSettings->setColumnHidden(ApplianceViewSection_OriginalValue, true);
    109109                        m_pTreeViewSettings->expandAll();
     110                        /* Set model root index and make it current: */
     111                        m_pTreeViewSettings->setRootIndex(pProxy->mapFromSource(m_pModel->root()));
     112                        m_pTreeViewSettings->setCurrentIndex(pProxy->mapFromSource(m_pModel->root()));
    110113
    111114                        /* Check for warnings & if there are one display them. */
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