VirtualBox

Changeset 108308 in vbox


Ignore:
Timestamp:
Feb 20, 2025 11:53:24 AM (3 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167652
Message:

FE/Qt: bugref:10814: VBox Manager / Tools pane: Extend Global tool manager with code to show/hide machine tools depending on global tool chosen; That is required for mixed tool class mode.

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

Legend:

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

    r108307 r108308  
    269269    const UIToolClass enmClass = UIToolStuff::castTypeToClass(enmType);
    270270
    271     /* For Global tool class => switch tool-pane accordingly: */
     271    /* For Global tool class: */
    272272    if (enmClass == UIToolClass_Global)
     273    {
     274        /* Mark Machine tools [un]suitable depending on Global tool selected: */
     275        toolMenu()->setUnsuitableToolClass(UIToolClass_Machine, enmType != UIToolType_Machines);
     276
     277        /* Switch tool-pane accordingly: */
    273278        switchToolTo(enmType);
     279    }
    274280    /* For Machine tool class => switch tool-pane accordingly: */
    275281    else if (enmClass == UIToolClass_Machine)
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.cpp

    r108289 r108308  
    8181{
    8282    m_pToolsModel->setRestrictedToolTypes(enmClass, types);
     83}
     84
     85void UITools::setUnsuitableToolClass(UIToolClass enmClass, bool fUnsuitable)
     86{
     87    m_pToolsModel->setUnsuitableToolClass(enmClass, fUnsuitable);
    8388}
    8489
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.h

    r108289 r108308  
    8383        bool isItemsEnabled() const;
    8484
    85         /** Defines restructed tool @a types for the @a enmClass specified. */
     85        /** Defines restricted tool @a types for the @a enmClass specified. */
    8686        void setRestrictedToolTypes(UIToolClass enmClass, const QList<UIToolType> &types);
     87        /** Defines whether the @a enmClass specified is @a fUnsuitable. */
     88        void setUnsuitableToolClass(UIToolClass enmClass, bool fUnsuitable);
    8789    /** @} */
    8890
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsItem.h

    r108295 r108308  
    8888        HidingReason_Null       = 0,
    8989        HidingReason_Restricted = RT_BIT(0),
     90        HidingReason_Unsuitable = RT_BIT(1),
    9091    };
    9192
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.cpp

    r108295 r108308  
    143143            const bool fRestricted = m_mapRestrictedToolTypes.value(enmClass).contains(pItem->itemType());
    144144            pItem->setHiddenByReason(fRestricted, UIToolsItem::HidingReason_Restricted);
     145        }
     146
     147        /* Update linked values: */
     148        updateLayout();
     149        sltItemMinimumWidthHintChanged();
     150        sltItemMinimumHeightHintChanged();
     151    }
     152}
     153
     154void UIToolsModel::setUnsuitableToolClass(UIToolClass enmClass, bool fUnsuitable)
     155{
     156    if (m_mapUnsuitableToolClasses.value(enmClass) != fUnsuitable)
     157    {
     158        m_mapUnsuitableToolClasses[enmClass] = fUnsuitable;
     159        foreach (UIToolsItem *pItem, items())
     160        {
     161            if (pItem->itemClass() != enmClass)
     162                continue;
     163            pItem->setHiddenByReason(fUnsuitable, UIToolsItem::HidingReason_Unsuitable);
    145164        }
    146165
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.h

    r108295 r108308  
    119119        bool isItemsEnabled() const;
    120120
    121         /** Defines restructed tool @a types for the @a enmClass specified. */
     121        /** Defines restricted tool @a types for the @a enmClass specified. */
    122122        void setRestrictedToolTypes(UIToolClass enmClass, const QList<UIToolType> &types);
     123        /** Defines whether the @a enmClass specified is @a fUnsuitable. */
     124        void setUnsuitableToolClass(UIToolClass enmClass, bool fUnsuitable);
    123125
    124126        /** Asks parent to close. */
     
    242244        /** Holds a map of restricted tool types. */
    243245        QMap<UIToolClass, QList<UIToolType> >  m_mapRestrictedToolTypes;
     246        /** Holds a map of unsuitable tool classes. */
     247        QMap<UIToolClass, bool >               m_mapUnsuitableToolClasses;
    244248    /** @} */
    245249
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