VirtualBox

Changeset 108295 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Feb 19, 2025 2:12:58 PM (2 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167639
Message:

FE/Qt: bugref:10814: VBox Manager / Tool-pane: Implement possibility to hide tool item by reason; That is required to distinguish various reasons to hide item, such as restrictions and suitability.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/manager/tools
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsItem.cpp

    r108283 r108295  
    192192    , m_enmClass(enmClass)
    193193    , m_enmType(enmType)
     194    , m_enmReason(HidingReason_Null)
    194195    , m_fHovered(false)
    195196    , m_pHoveringMachine(0)
     
    242243    /* Update linked values: */
    243244    updatePixmap();
     245}
     246
     247void UIToolsItem::setHiddenByReason(bool fHidden, HidingReason enmReason)
     248{
     249    if (fHidden && !(m_enmReason & enmReason))
     250        m_enmReason = (HidingReason)(m_enmReason | enmReason);
     251    else if (!fHidden && (m_enmReason & enmReason))
     252        m_enmReason = (HidingReason)(m_enmReason ^ enmReason);
     253    setVisible(m_enmReason == HidingReason_Null);
    244254}
    245255
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsItem.h

    r108128 r108295  
    8383public:
    8484
     85    /** Hiding reasons. */
     86    enum HidingReason
     87    {
     88        HidingReason_Null       = 0,
     89        HidingReason_Restricted = RT_BIT(0),
     90    };
     91
    8592    /** Constructs item on the basis of passed arguments.
    8693      * @param  pScene        Brings the scene reference to add item to.
     
    113120        /** Defines whether item is @a fEnabled. */
    114121        void setEnabled(bool fEnabled);
     122
     123        /** Defines whether item is @a fHidden by the @a enmReason. */
     124        void setHiddenByReason(bool fHidden, HidingReason enmReason);
    115125
    116126        /** Returns whether item is hovered. */
     
    262272        /** Holds the item name font. */
    263273        QFont    m_nameFont;
     274
     275        /** Holds the hiding reason. */
     276        HidingReason  m_enmReason;
    264277
    265278        /** Holds whether item is hovered. */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.cpp

    r108289 r108295  
    142142                continue;
    143143            const bool fRestricted = m_mapRestrictedToolTypes.value(enmClass).contains(pItem->itemType());
    144             pItem->setVisible(!fRestricted);
     144            pItem->setHiddenByReason(fRestricted, UIToolsItem::HidingReason_Restricted);
    145145        }
    146146
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.h

    r108289 r108295  
    240240        bool  m_fItemsEnabled;
    241241
    242         /** Holds a list of restricted tool types. */
     242        /** Holds a map of restricted tool types. */
    243243        QMap<UIToolClass, QList<UIToolType> >  m_mapRestrictedToolTypes;
    244244    /** @} */
Note: See TracChangeset for help on using the changeset viewer.

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