VirtualBox

Changeset 108289 in vbox


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

FE/Qt: bugref:10814: VBox Manager / Tool-pane: Split restricted tool list into Global and Machine lists; That is useful since each tool menu now supports items of both classes.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/manager
Files:
6 edited

Legend:

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

    r108277 r108289  
    351351    /* Hide restricted tools in the menu: */
    352352    const QList restrictions(restrictedTypes.begin(), restrictedTypes.end());
    353     toolMenu()->setRestrictedToolTypes(restrictions);
     353    toolMenu()->setRestrictedToolTypes(UIToolClass_Global, restrictions);
    354354
    355355    /* Close all restricted tools (besides the Machines): */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIMachineToolsManagerWidget.cpp

    r108277 r108289  
    574574void UIMachineToolsManagerWidget::updateToolsMenu(UIVirtualMachineItem *pItem)
    575575{
    576     /* Get current item state: */
    577     const bool fCurrentItemIsOk = isItemAccessible(pItem);
    578 
    579     /* Update machine tools restrictions: */
     576    /* Prepare tool restrictions: */
    580577    QSet<UIToolType> restrictedTypes;
     578
     579    /* Restrict some types for Basic mode: */
    581580    const bool fExpertMode = gEDataManager->isSettingsInExpertMode();
    582581    if (!fExpertMode)
    583582        restrictedTypes << UIToolType_FileManager;
     583
     584    /* Make sure local VM tools are hidden for cloud VMs: */
    584585    if (pItem && pItem->itemType() != UIVirtualMachineItemType_Local)
    585586        restrictedTypes << UIToolType_Snapshots
    586587                        << UIToolType_Logs
    587588                        << UIToolType_FileManager;
     589
     590    /* Make sure no restricted tool is selected: */
    588591    if (restrictedTypes.contains(toolMenu()->toolsType(UIToolClass_Machine)))
    589         toolMenu()->setToolsType(UIToolType_Details);
     592        setMenuToolType(UIToolType_Details);
     593
     594    /* Hide restricted tools in the menu: */
    590595    const QList restrictions(restrictedTypes.begin(), restrictedTypes.end());
    591     toolMenu()->setRestrictedToolTypes(restrictions);
     596    toolMenu()->setRestrictedToolTypes(UIToolClass_Machine, restrictions);
     597
     598    /* Disable even unrestricted tools for inacccessible VMs: */
     599    const bool fCurrentItemIsOk = isItemAccessible(pItem);
    592600    toolMenu()->setItemsEnabled(fCurrentItemIsOk);
    593601
    594     /* Take restrictions into account, closing all restricted tools: */
     602    /* Close all restricted tools: */
    595603    foreach (const UIToolType &enmRestrictedType, restrictedTypes)
    596604        toolPane()->closeTool(enmRestrictedType);
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.cpp

    r108277 r108289  
    7878}
    7979
    80 void UITools::setRestrictedToolTypes(const QList<UIToolType> &types)
     80void UITools::setRestrictedToolTypes(UIToolClass enmClass, const QList<UIToolType> &types)
    8181{
    82     m_pToolsModel->setRestrictedToolTypes(types);
    83 }
    84 
    85 QList<UIToolType> UITools::restrictedToolTypes() const
    86 {
    87     return m_pToolsModel->restrictedToolTypes();
     82    m_pToolsModel->setRestrictedToolTypes(enmClass, types);
    8883}
    8984
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.h

    r108277 r108289  
    8383        bool isItemsEnabled() const;
    8484
    85         /** Defines restructed tool @a types. */
    86         void setRestrictedToolTypes(const QList<UIToolType> &types);
    87         /** Returns restricted tool types. */
    88         QList<UIToolType> restrictedToolTypes() const;
     85        /** Defines restructed tool @a types for the @a enmClass specified. */
     86        void setRestrictedToolTypes(UIToolClass enmClass, const QList<UIToolType> &types);
    8987    /** @} */
    9088
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.cpp

    r108286 r108289  
    132132}
    133133
    134 void UIToolsModel::setRestrictedToolTypes(const QList<UIToolType> &types)
    135 {
    136     if (m_restrictedToolTypes != types)
    137     {
    138         m_restrictedToolTypes = types;
     134void UIToolsModel::setRestrictedToolTypes(UIToolClass enmClass, const QList<UIToolType> &types)
     135{
     136    if (m_mapRestrictedToolTypes.value(enmClass) != types)
     137    {
     138        m_mapRestrictedToolTypes[enmClass] = types;
    139139        foreach (UIToolsItem *pItem, items())
    140             pItem->setVisible(!m_restrictedToolTypes.contains(pItem->itemType()));
     140        {
     141            if (pItem->itemClass() != enmClass)
     142                continue;
     143            const bool fRestricted = m_mapRestrictedToolTypes.value(enmClass).contains(pItem->itemType());
     144            pItem->setVisible(!fRestricted);
     145        }
    141146
    142147        /* Update linked values: */
     
    145150        sltItemMinimumHeightHintChanged();
    146151    }
    147 }
    148 
    149 QList<UIToolType> UIToolsModel::restrictedToolTypes() const
    150 {
    151     return m_restrictedToolTypes;
    152152}
    153153
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.h

    r108283 r108289  
    119119        bool isItemsEnabled() const;
    120120
    121         /** Defines restructed tool @a types. */
    122         void setRestrictedToolTypes(const QList<UIToolType> &types);
    123         /** Returns restricted tool types. */
    124         QList<UIToolType> restrictedToolTypes() const;
     121        /** Defines restructed tool @a types for the @a enmClass specified. */
     122        void setRestrictedToolTypes(UIToolClass enmClass, const QList<UIToolType> &types);
    125123
    126124        /** Asks parent to close. */
     
    243241
    244242        /** Holds a list of restricted tool types. */
    245         QList<UIToolType>  m_restrictedToolTypes;
     243        QMap<UIToolClass, QList<UIToolType> >  m_mapRestrictedToolTypes;
    246244    /** @} */
    247245
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