VirtualBox

Changeset 46797 in vbox


Ignore:
Timestamp:
Jun 26, 2013 11:10:15 AM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
86733
Message:

FE/Qt: Runtime UI: Extra-data flag (GUI/RestrictedRuntimeMenus) to hide particular runtime UI menus.

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.cpp

    r46782 r46797  
    5252
    5353/* Machine-window definitions: */
     54const char* UIDefs::GUI_RestrictedRuntimeMenus = "GUI/RestrictedRuntimeMenus";
    5455const char* UIDefs::GUI_Input_MachineShortcuts = "GUI/Input/MachineShortcuts";
    5556const char* UIDefs::GUI_LastNormalWindowPosition = "GUI/LastNormalWindowPosition";
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIDefs.h

    r46795 r46797  
    124124
    125125    /* Machine-window declarations: */
     126    extern const char* GUI_RestrictedRuntimeMenus;
    126127    extern const char* GUI_Input_MachineShortcuts;
    127128    extern const char* GUI_LastNormalWindowPosition;
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp

    r46782 r46797  
    37663766    /* 'true' if snapshot operations are not restricted by the extra-data: */
    37673767    return !isApprovedByExtraData(machine, GUI_PreventSnapshotOperations);
     3768}
     3769
     3770/* static */
     3771RuntimeMenuType VBoxGlobal::restrictedRuntimeMenuTypes(CMachine &machine)
     3772{
     3773    /* Prepare result: */
     3774    RuntimeMenuType result = RuntimeMenuType_Invalid;
     3775    /* Load restricted runtime-menu-types: */
     3776    QString strList(machine.GetExtraData(GUI_RestrictedRuntimeMenus));
     3777    QStringList list = strList.split(',');
     3778    /* Convert list into appropriate values: */
     3779    foreach (const QString &strValue, list)
     3780    {
     3781        RuntimeMenuType value = gpConverter->fromInternalString<RuntimeMenuType>(strValue);
     3782        if (value != RuntimeMenuType_Invalid)
     3783            result = static_cast<RuntimeMenuType>(result | value);
     3784    }
     3785    /* Return result: */
     3786    return result;
    37683787}
    37693788
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h

    r46782 r46797  
    386386    static bool shouldWeAutoMountGuestScreens(CMachine &machine, bool fIncludingSanityCheck = true);
    387387    static bool shouldWeAllowSnapshotOperations(CMachine &machine, bool fIncludingSanityCheck = true);
     388    static RuntimeMenuType restrictedRuntimeMenuTypes(CMachine &machine);
    388389    static QList<IndicatorType> restrictedStatusBarIndicators(CMachine &machine);
    389390    static QList<MachineCloseAction> restrictedMachineCloseActions(CMachine &machine);
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp

    r46696 r46797  
    845845{
    846846#ifdef Q_WS_MAC
    847     m_pMenuBar = uisession()->newMenuBar();
     847    /* Prepare native menu-bar: */
     848    CMachine machine = session().GetMachine();
     849    RuntimeMenuType restrictedMenus = VBoxGlobal::restrictedRuntimeMenuTypes(machine);
     850    RuntimeMenuType allowedMenus = static_cast<RuntimeMenuType>(RuntimeMenuType_All ^ restrictedMenus);
     851    m_pMenuBar = uisession()->newMenuBar(allowedMenus);
    848852#endif /* Q_WS_MAC */
    849853}
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp

    r46256 r46797  
    2424
    2525/* GUI includes: */
    26 #include "UIDefs.h"
    27 #include "UIMiniToolBar.h"
     26#include "VBoxGlobal.h"
    2827#include "UISession.h"
    2928#include "UIActionPoolRuntime.h"
    3029#include "UIMachineLogicFullscreen.h"
    3130#include "UIMachineWindowFullscreen.h"
     31#include "UIMiniToolBar.h"
    3232
    3333/* COM includes: */
    34 #include "CMachine.h"
    3534#include "CSnapshot.h"
    3635
     
    6766
    6867    /* Prepare menu: */
    69     m_pMainMenu = uisession()->newMenu();
     68    CMachine machine = session().GetMachine();
     69    RuntimeMenuType restrictedMenus = VBoxGlobal::restrictedRuntimeMenuTypes(machine);
     70    RuntimeMenuType allowedMenus = static_cast<RuntimeMenuType>(RuntimeMenuType_All ^ restrictedMenus);
     71    m_pMainMenu = uisession()->newMenu(allowedMenus);
    7072}
    7173
     
    106108                                              fIsAutoHide);
    107109    QList<QMenu*> menus;
    108     QList<QAction*> actions = uisession()->newMenu()->actions();
     110    RuntimeMenuType restrictedMenus = VBoxGlobal::restrictedRuntimeMenuTypes(m);
     111    RuntimeMenuType allowedMenus = static_cast<RuntimeMenuType>(RuntimeMenuType_All ^ restrictedMenus);
     112    QList<QAction*> actions = uisession()->newMenu(allowedMenus)->actions();
    109113    for (int i=0; i < actions.size(); ++i)
    110114        menus << actions.at(i)->menu();
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp

    r46686 r46797  
    223223
    224224#ifndef Q_WS_MAC
    225     /* Prepare menu-bar: */
    226     setMenuBar(uisession()->newMenuBar());
     225    /* Prepare application menu-bar: */
     226    CMachine machine = session().GetMachine();
     227    RuntimeMenuType restrictedMenus = VBoxGlobal::restrictedRuntimeMenuTypes(machine);
     228    RuntimeMenuType allowedMenus = static_cast<RuntimeMenuType>(RuntimeMenuType_All ^ restrictedMenus);
     229    setMenuBar(uisession()->newMenuBar(allowedMenus));
    227230#endif /* !Q_WS_MAC */
    228231}
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp

    r44954 r46797  
    2424#include <QSpacerItem>
    2525#include <QResizeEvent>
    26 #ifdef Q_WS_MAC
    27 # include <QMenuBar>
    28 #endif /* Q_WS_MAC */
    2926
    3027/* GUI includes: */
    31 #include "UIDefs.h"
     28#include "VBoxGlobal.h"
    3229#include "UISession.h"
    3330#include "UIMachineLogic.h"
     
    3835#ifdef Q_WS_MAC
    3936# include "VBoxUtils.h"
    40 # include "VBoxGlobal.h"
    4137# include "UIImageTools.h"
    4238#endif /* Q_WS_MAC */
    43 
    44 /* COM includes: */
    45 #include "CMachine.h"
    4639
    4740UIMachineWindowScale::UIMachineWindowScale(UIMachineLogic *pMachineLogic, ulong uScreenId)
     
    7972
    8073    /* Prepare menu: */
    81     m_pMainMenu = uisession()->newMenu();
     74    CMachine machine = session().GetMachine();
     75    RuntimeMenuType restrictedMenus = VBoxGlobal::restrictedRuntimeMenuTypes(machine);
     76    RuntimeMenuType allowedMenus = static_cast<RuntimeMenuType>(RuntimeMenuType_All ^ restrictedMenus);
     77    m_pMainMenu = uisession()->newMenu(allowedMenus);
    8278}
    8379
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp

    r46256 r46797  
    7676
    7777    /* Prepare menu: */
    78     m_pMainMenu = uisession()->newMenu();
     78    CMachine machine = session().GetMachine();
     79    RuntimeMenuType restrictedMenus = VBoxGlobal::restrictedRuntimeMenuTypes(machine);
     80    RuntimeMenuType allowedMenus = static_cast<RuntimeMenuType>(RuntimeMenuType_All ^ restrictedMenus);
     81    m_pMainMenu = uisession()->newMenu(allowedMenus);
    7982}
    8083
     
    132135    m_pMiniToolBar->show();
    133136    QList<QMenu*> menus;
    134     QList<QAction*> actions = uisession()->newMenu()->actions();
     137    RuntimeMenuType restrictedMenus = VBoxGlobal::restrictedRuntimeMenuTypes(m);
     138    RuntimeMenuType allowedMenus = static_cast<RuntimeMenuType>(RuntimeMenuType_All ^ restrictedMenus);
     139    QList<QAction*> actions = uisession()->newMenu(allowedMenus)->actions();
    135140    for (int i=0; i < actions.size(); ++i)
    136141        menus << actions.at(i)->menu();
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