VirtualBox

Changeset 88122 in vbox


Ignore:
Timestamp:
Mar 15, 2021 3:44:48 PM (4 years ago)
Author:
vboxsync
Message:

FE/Qt: VirtualBox Manager: Tools pane: Do not hide restricted tools, just disable them; Merge disabling logic for restricted tool types and disabled tool classes.

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

Legend:

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

    r88082 r88122  
    10491049    m_pPaneTools->setRestrictedToolTypes(retrictedTypes);
    10501050    /* Update machine tools availability: */
    1051     m_pPaneTools->setToolsEnabled(UIToolClass_Machine, fCurrentItemIsOk);
     1051    m_pPaneTools->setToolClassEnabled(UIToolClass_Machine, fCurrentItemIsOk);
    10521052
    10531053    /* Propagate current item anyway: */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.cpp

    r83023 r88122  
    7979}
    8080
    81 void UITools::setToolsEnabled(UIToolClass enmClass, bool fEnabled)
    82 {
    83     m_pToolsModel->setToolsEnabled(enmClass, fEnabled);
    84 }
    85 
    86 bool UITools::areToolsEnabled(UIToolClass enmClass) const
    87 {
    88     return m_pToolsModel->areToolsEnabled(enmClass);
     81void UITools::setToolClassEnabled(UIToolClass enmClass, bool fEnabled)
     82{
     83    m_pToolsModel->setToolClassEnabled(enmClass, fEnabled);
     84}
     85
     86bool UITools::toolClassEnabled(UIToolClass enmClass) const
     87{
     88    return m_pToolsModel->toolClassEnabled(enmClass);
    8989}
    9090
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.h

    r83023 r88122  
    9090
    9191        /** Defines whether certain @a enmClass of tools is @a fEnabled.*/
    92         void setToolsEnabled(UIToolClass enmClass, bool fEnabled);
     92        void setToolClassEnabled(UIToolClass enmClass, bool fEnabled);
    9393        /** Returns whether certain class of tools is enabled.*/
    94         bool areToolsEnabled(UIToolClass enmClass) const;
     94        bool toolClassEnabled(UIToolClass enmClass) const;
    9595
    9696        /** Defines restructed tool @a types. */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.cpp

    r88095 r88122  
    163163}
    164164
    165 void UIToolsModel::setToolsEnabled(UIToolClass enmClass, bool fEnabled)
     165void UIToolsModel::setToolClassEnabled(UIToolClass enmClass, bool fEnabled)
    166166{
    167167    /* Update linked values: */
    168     m_statesToolsEnabled[enmClass] = fEnabled;
    169     foreach (UIToolsItem *pItem, items())
    170         if (pItem->itemClass() == enmClass)
    171             pItem->setEnabled(m_statesToolsEnabled.value(enmClass));
    172 }
    173 
    174 bool UIToolsModel::areToolsEnabled(UIToolClass enmClass) const
    175 {
    176     return m_statesToolsEnabled.value(enmClass);
     168    if (m_enabledToolClasses.value(enmClass) != fEnabled)
     169    {
     170        m_enabledToolClasses[enmClass] = fEnabled;
     171        foreach (UIToolsItem *pItem, items())
     172            pItem->setEnabled(   m_enabledToolClasses.value(enmClass)
     173                              && !m_restrictedToolTypes.contains(pItem->itemType()));
     174    }
     175}
     176
     177bool UIToolsModel::toolClassEnabled(UIToolClass enmClass) const
     178{
     179    return m_enabledToolClasses.value(enmClass);
    177180}
    178181
     
    183186    {
    184187        m_restrictedToolTypes = types;
    185         updateLayout();
    186         updateNavigation();
    187         sltItemMinimumWidthHintChanged();
    188         sltItemMinimumHeightHintChanged();
     188        foreach (UIToolsItem *pItem, items())
     189            pItem->setEnabled(   m_enabledToolClasses.value(pItem->itemClass())
     190                              && !m_restrictedToolTypes.contains(pItem->itemType()));
    189191    }
    190192}
     
    354356    {
    355357        /* Hide/skip unrelated items: */
    356         if (   pItem->itemClass() != m_enmCurrentClass
    357             || m_restrictedToolTypes.contains(pItem->itemType()))
     358        if (pItem->itemClass() != m_enmCurrentClass)
    358359        {
    359360            pItem->hide();
     
    496497{
    497498    /* Enable both classes of tools initially: */
    498     m_statesToolsEnabled[UIToolClass_Global] = true;
    499     m_statesToolsEnabled[UIToolClass_Machine] = true;
     499    m_enabledToolClasses[UIToolClass_Global] = true;
     500    m_enabledToolClasses[UIToolClass_Machine] = true;
    500501
    501502    /* Welcome: */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.h

    r83895 r88122  
    117117
    118118        /** Defines whether certain @a enmClass of tools is @a fEnabled.*/
    119         void setToolsEnabled(UIToolClass enmClass, bool fEnabled);
     119        void setToolClassEnabled(UIToolClass enmClass, bool fEnabled);
    120120        /** Returns whether certain class of tools is enabled.*/
    121         bool areToolsEnabled(UIToolClass enmClass) const;
     121        bool toolClassEnabled(UIToolClass enmClass) const;
    122122
    123123        /** Defines restructed tool @a types. */
     
    265265
    266266        /** Holds whether tools of particular class are enabled. */
    267         QMap<UIToolClass, bool>  m_statesToolsEnabled;
     267        QMap<UIToolClass, bool>  m_enabledToolClasses;
    268268
    269269        /** Holds a list of restricted tool types. */
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