VirtualBox

Changeset 102098 in vbox


Ignore:
Timestamp:
Nov 15, 2023 11:39:02 AM (15 months ago)
Author:
vboxsync
Message:

FE/Qt: bugref:10513: VBox Manager: Duplicate tools hamburger menu internally to handle Global and Machine menus separately.

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

Legend:

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

    r102084 r102098  
    919919}
    920920
    921 void UIVirtualBoxManager::sltHandleToolTypeChange()
     921void UIVirtualBoxManager::sltHandleGlobalToolTypeChange()
    922922{
    923923    /* Update actions stuff: */
     
    926926
    927927    /* Make sure separate dialog closed when corresponding tool opened: */
    928     switch (m_pWidget->toolsType())
     928    switch (m_pWidget->toolsTypeGlobal())
    929929    {
    930930        case UIToolType_Extensions:
     
    933933        case UIToolType_Cloud:
    934934        case UIToolType_CloudConsole:
    935             sltCloseManagerWindow(m_pWidget->toolsType());
     935            sltCloseManagerWindow(m_pWidget->toolsTypeGlobal());
    936936            break;
     937        default:
     938            break;
     939    }
     940}
     941
     942void UIVirtualBoxManager::sltHandleMachineToolTypeChange()
     943{
     944    /* Update actions stuff: */
     945    updateActionsVisibility();
     946    updateActionsAppearance();
     947
     948    /* Make sure separate dialog closed when corresponding tool opened: */
     949    switch (m_pWidget->toolsTypeMachine())
     950    {
    937951        case UIToolType_Logs:
    938952            sltCloseLogViewerWindow();
    939953            break;
    940         case UIToolType_VMActivity:
    941         case UIToolType_FileManager:
    942954        default:
    943955            break;
     
    10021014    if (m_pWidget->isGlobalToolOpened(enmType))
    10031015    {
    1004         m_pWidget->setToolsType(UIToolType_Welcome);
     1016        m_pWidget->setToolsTypeGlobal(UIToolType_Welcome);
    10051017        m_pWidget->closeGlobalTool(enmType);
    10061018    }
     
    21742186    AssertPtrReturnVoid(m_pWidget);
    21752187    m_pWidget->switchToGlobalItem();
    2176     m_pWidget->setToolsType(pAction->property("UIToolType").value<UIToolType>());
     2188    m_pWidget->setToolsTypeGlobal(pAction->property("UIToolType").value<UIToolType>());
    21772189}
    21782190
     
    21812193    AssertPtrReturnVoid(pAction);
    21822194    AssertPtrReturnVoid(m_pWidget);
    2183     m_pWidget->setToolsType(pAction->property("UIToolType").value<UIToolType>());
     2195    m_pWidget->setToolsTypeMachine(pAction->property("UIToolType").value<UIToolType>());
    21842196}
    21852197
     
    21932205    if (m_pWidget->isMachineToolOpened(UIToolType_Logs))
    21942206    {
    2195         m_pWidget->setToolsType(UIToolType_Details);
     2207        m_pWidget->setToolsTypeMachine(UIToolType_Details);
    21962208        m_pWidget->closeMachineTool(UIToolType_Logs);
    21972209    }
     
    24782490    connect(m_pWidget, &UIVirtualBoxManagerWidget::sigCloudMachineStateChange,
    24792491            this, &UIVirtualBoxManager::sltHandleCloudMachineStateChange);
    2480     connect(m_pWidget, &UIVirtualBoxManagerWidget::sigToolTypeChange,
    2481             this, &UIVirtualBoxManager::sltHandleToolTypeChange);
     2492    connect(m_pWidget, &UIVirtualBoxManagerWidget::sigToolTypeChangeGlobal,
     2493            this, &UIVirtualBoxManager::sltHandleGlobalToolTypeChange);
     2494    connect(m_pWidget, &UIVirtualBoxManagerWidget::sigToolTypeChangeMachine,
     2495            this, &UIVirtualBoxManager::sltHandleMachineToolTypeChange);
    24822496    connect(m_pWidget, &UIVirtualBoxManagerWidget::sigCreateMedium,
    24832497            this, &UIVirtualBoxManager::sltCreateMedium);
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h

    r102084 r102098  
    155155        void sltHandleCloudUpdateProgressChange();
    156156
    157         /** Handles signal about Tool type change.  */
    158         void sltHandleToolTypeChange();
     157        /** Handles signal about Global Tool type change.  */
     158        void sltHandleGlobalToolTypeChange();
     159        /** Handles signal about Machine Tool type change.  */
     160        void sltHandleMachineToolTypeChange();
    159161
    160162        /** Handles create medium request. */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp

    r101571 r102098  
    6767    , m_pPaneToolsMachine(0)
    6868    , m_pSlidingAnimation(0)
    69     , m_pPaneTools(0)
     69    , m_pMenuToolsGlobal(0)
     70    , m_pMenuToolsMachine(0)
    7071    , m_enmSelectionType(SelectionType_Invalid)
    7172    , m_fSelectedMachineItemAccessible(false)
     
    206207}
    207208
    208 void UIVirtualBoxManagerWidget::setToolsType(UIToolType enmType)
    209 {
    210     m_pPaneTools->setToolsType(enmType);
    211 }
    212 
    213 UIToolType UIVirtualBoxManagerWidget::toolsType() const
    214 {
    215     return m_pPaneTools ? m_pPaneTools->toolsType() : UIToolType_Invalid;
     209void UIVirtualBoxManagerWidget::setToolsTypeGlobal(UIToolType enmType)
     210{
     211    m_pMenuToolsGlobal->setToolsType(enmType);
     212}
     213
     214UIToolType UIVirtualBoxManagerWidget::toolsTypeGlobal() const
     215{
     216    return m_pMenuToolsGlobal ? m_pMenuToolsGlobal->toolsType() : UIToolType_Invalid;
     217}
     218
     219void UIVirtualBoxManagerWidget::setToolsTypeMachine(UIToolType enmType)
     220{
     221    m_pMenuToolsMachine->setToolsType(enmType);
     222}
     223
     224UIToolType UIVirtualBoxManagerWidget::toolsTypeMachine() const
     225{
     226    return m_pMenuToolsMachine ? m_pMenuToolsMachine->toolsType() : UIToolType_Invalid;
    216227}
    217228
     
    242253
    243254    /* Let the parent know: */
    244     emit sigToolTypeChange();
     255    emit sigToolTypeChangeGlobal();
    245256
    246257    /* Update toolbar: */
     
    254265
    255266    /* Let the parent know: */
    256     emit sigToolTypeChange();
     267    emit sigToolTypeChangeMachine();
    257268
    258269    /* Update toolbar: */
     
    463474        case SlidingDirection_Forward:
    464475        {
    465             m_pPaneTools->setToolsClass(UIToolClass_Machine);
     476            m_pMenuToolsMachine->setToolsClass(UIToolClass_Machine);
    466477            m_pStackedWidget->setCurrentWidget(m_pPaneToolsMachine);
    467478            m_pPaneToolsGlobal->setActive(false);
     
    471482        case SlidingDirection_Reverse:
    472483        {
    473             m_pPaneTools->setToolsClass(UIToolClass_Global);
     484            m_pMenuToolsGlobal->setToolsClass(UIToolClass_Global);
    474485            m_pStackedWidget->setCurrentWidget(m_pPaneToolsGlobal);
    475486            m_pPaneToolsMachine->setActive(false);
     
    528539void UIVirtualBoxManagerWidget::sltHandleToolMenuRequested(UIToolClass enmClass, const QPoint &position)
    529540{
    530     /* Define current tools class: */
    531     m_pPaneTools->setToolsClass(enmClass);
     541    /* Determine tools menu: */
     542    UITools *pMenu = 0;
     543    switch (enmClass)
     544    {
     545        case UIToolClass_Global: pMenu = m_pMenuToolsGlobal; break;
     546        case UIToolClass_Machine: pMenu = m_pMenuToolsMachine; break;
     547        default: break;
     548    }
     549    AssertPtrReturnVoid(pMenu);
    532550
    533551    /* Compose popup-menu geometry first of all: */
    534     QRect ourGeo = QRect(position, m_pPaneTools->minimumSizeHint());
     552    QRect ourGeo = QRect(position, pMenu->minimumSizeHint());
    535553    /* Adjust location only to properly fit into available geometry space: */
    536554    const QRect availableGeo = gpDesktop->availableGeometry(position);
     
    538556
    539557    /* Move, resize and show: */
    540     m_pPaneTools->move(ourGeo.topLeft());
    541     m_pPaneTools->show();
     558    pMenu->move(ourGeo.topLeft());
     559    pMenu->show();
    542560    // WORKAROUND:
    543561    // Don't want even to think why, but for Qt::Popup resize to
    544562    // smaller size often being ignored until it is actually shown.
    545     m_pPaneTools->resize(ourGeo.size());
     563    pMenu->resize(ourGeo.size());
    546564}
    547565
    548566void UIVirtualBoxManagerWidget::sltHandleToolsPaneIndexChange()
    549567{
     568    /* Determine sender: */
     569    UITools *pMenu = qobject_cast<UITools*>(sender());
     570
    550571    /* Acquire current class/type: */
    551     const UIToolClass enmCurrentClass = m_pPaneTools->toolsClass();
    552     const UIToolType enmCurrentType = m_pPaneTools->toolsType();
     572    UIToolClass enmCurrentClass = UIToolClass_Invalid;
     573    if (pMenu == m_pMenuToolsGlobal)
     574        enmCurrentClass = UIToolClass_Global;
     575    else if (pMenu == m_pMenuToolsMachine)
     576        enmCurrentClass = UIToolClass_Machine;
     577    AssertReturnVoid(enmCurrentClass != UIToolClass_Invalid);
     578    const UIToolType enmCurrentType = pMenu->toolsType();
    553579
    554580    /* Invent default for fallback case: */
     
    563589
    564590    /* Choose new type: */
    565     switch (m_pPaneTools->toolsClass())
     591    switch (enmCurrentClass)
    566592    {
    567593        case UIToolClass_Global: switchToGlobalTool(enmNewType); break;
     
    574600{
    575601    AssertPtrReturnVoid(m_pPaneChooser);
    576     AssertPtrReturnVoid(m_pPaneTools);
     602    AssertPtrReturnVoid(m_pMenuToolsMachine);
    577603    m_pPaneChooser->setCurrentMachine(uMachineId);
    578     m_pPaneTools->setToolsType(UIToolType_VMActivity);
     604    m_pMenuToolsMachine->setToolsType(UIToolType_VMActivity);
    579605}
    580606
     
    582608{
    583609    AssertPtrReturnVoid(m_pPaneChooser);
    584     AssertPtrReturnVoid(m_pPaneTools);
    585     m_pPaneTools->setToolsType(UIToolType_VMActivityOverview);
     610    AssertPtrReturnVoid(m_pMenuToolsGlobal);
     611    m_pMenuToolsGlobal->setToolsType(UIToolType_VMActivityOverview);
    586612    m_pPaneChooser->setCurrentGlobal();
    587613}
     
    740766        }
    741767
    742         /* Create Tools-pane: */
    743         m_pPaneTools = new UITools(this);
    744         if (m_pPaneTools)
    745         {
    746             /* Choose which pane should be active initially: */
    747             if (m_pPaneChooser->isGlobalItemSelected())
    748                 m_pPaneTools->setToolsClass(UIToolClass_Global);
    749             else
    750                 m_pPaneTools->setToolsClass(UIToolClass_Machine);
    751         }
     768        /* Create Global Tools-menu: */
     769        m_pMenuToolsGlobal = new UITools(this);
     770        if (m_pMenuToolsGlobal)
     771            m_pMenuToolsGlobal->setToolsClass(UIToolClass_Global);
     772        /* Create Machine Tools-menu: */
     773        m_pMenuToolsMachine = new UITools(this);
     774        if (m_pMenuToolsMachine)
     775            m_pMenuToolsMachine->setToolsClass(UIToolClass_Machine);
    752776    }
    753777
     
    807831
    808832    /* Tools-pane connections: */
    809     connect(m_pPaneTools, &UITools::sigSelectionChanged,
     833    connect(m_pMenuToolsGlobal, &UITools::sigSelectionChanged,
     834            this, &UIVirtualBoxManagerWidget::sltHandleToolsPaneIndexChange);
     835    connect(m_pMenuToolsMachine, &UITools::sigSelectionChanged,
    810836            this, &UIVirtualBoxManagerWidget::sltHandleToolsPaneIndexChange);
    811837}
     
    833859
    834860    /* Open tools last chosen in Tools-pane: */
    835     switchToGlobalTool(m_pPaneTools->lastSelectedToolGlobal());
    836     switchToMachineTool(m_pPaneTools->lastSelectedToolMachine());
     861    switchToGlobalTool(m_pMenuToolsGlobal->lastSelectedToolGlobal());
     862    switchToMachineTool(m_pMenuToolsMachine->lastSelectedToolMachine());
    837863}
    838864
     
    845871    m_pToolBar->clear();
    846872
    847     /* Basic action set: */
    848     switch (m_pPaneTools->toolsClass())
    849     {
    850         /* Global toolbar: */
    851         case UIToolClass_Global:
     873    /* If global item selected: */
     874    if (isGlobalItemSelected())
     875    {
     876        switch (currentGlobalTool())
    852877        {
    853             switch (currentGlobalTool())
    854             {
    855                 case UIToolType_Welcome:
     878            case UIToolType_Welcome:
     879            {
     880                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Application_S_Preferences));
     881                m_pToolBar->addSeparator();
     882                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ImportAppliance));
     883                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ExportAppliance));
     884                m_pToolBar->addSeparator();
     885                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Welcome_S_New));
     886                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Welcome_S_Add));
     887                break;
     888            }
     889            case UIToolType_Extensions:
     890            {
     891                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Extension_S_Install));
     892                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Extension_S_Uninstall));
     893                break;
     894            }
     895            case UIToolType_Media:
     896            {
     897                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Add));
     898                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Create));
     899                m_pToolBar->addSeparator();
     900                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Copy));
     901                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Move));
     902                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Remove));
     903                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Release));
     904                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Clear));
     905                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_T_Search));
     906                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_T_Details));
     907                m_pToolBar->addSeparator();
     908                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Refresh));
     909                break;
     910            }
     911            case UIToolType_Network:
     912            {
     913                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_S_Create));
     914                m_pToolBar->addSeparator();
     915                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_S_Remove));
     916                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_T_Details));
     917                //m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_S_Refresh));
     918                break;
     919            }
     920            case UIToolType_Cloud:
     921            {
     922                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Add));
     923                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Import));
     924                m_pToolBar->addSeparator();
     925                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Remove));
     926                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_T_Details));
     927                m_pToolBar->addSeparator();
     928                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_TryPage));
     929                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Help));
     930                break;
     931            }
     932            case UIToolType_VMActivityOverview:
     933            {
     934                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_VMActivityOverview_M_Columns));
     935                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_VMActivityOverview_S_SwitchToMachineActivity));
     936                QToolButton *pButton =
     937                    qobject_cast<QToolButton*>(m_pToolBar->widgetForAction(actionPool()->action(UIActionIndexMN_M_VMActivityOverview_M_Columns)));
     938                if (pButton)
    856939                {
    857                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Application_S_Preferences));
     940                    pButton->setPopupMode(QToolButton::InstantPopup);
     941                    pButton->setAutoRaise(true);
     942                }
     943                break;
     944            }
     945
     946            default:
     947                break;
     948        }
     949    }
     950
     951    else
     952
     953    /* If machine or group item selected: */
     954    if (isMachineItemSelected() || isGroupItemSelected())
     955    {
     956        switch (currentMachineTool())
     957        {
     958            case UIToolType_Details:
     959            {
     960                if (isSingleGroupSelected())
     961                {
     962                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_New));
     963                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Add));
    858964                    m_pToolBar->addSeparator();
    859                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ImportAppliance));
    860                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ExportAppliance));
    861                     m_pToolBar->addSeparator();
    862                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Welcome_S_New));
    863                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Welcome_S_Add));
    864                     break;
     965                    if (isSingleLocalGroupSelected())
     966                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Discard));
     967                    else if (   isSingleCloudProviderGroupSelected()
     968                             || isSingleCloudProfileGroupSelected())
     969                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_M_Stop_S_Terminate));
     970                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_M_StartOrShow));
    865971                }
    866                 case UIToolType_Extensions:
    867                 {
    868                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Extension_S_Install));
    869                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Extension_S_Uninstall));
    870                     break;
    871                 }
    872                 case UIToolType_Media:
    873                 {
    874                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Add));
    875                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Create));
    876                     m_pToolBar->addSeparator();
    877                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Copy));
    878                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Move));
    879                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Remove));
    880                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Release));
    881                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Clear));
    882                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_T_Search));
    883                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_T_Details));
    884                     m_pToolBar->addSeparator();
    885                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Refresh));
    886                     break;
    887                 }
    888                 case UIToolType_Network:
    889                 {
    890                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_S_Create));
    891                     m_pToolBar->addSeparator();
    892                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_S_Remove));
    893                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_T_Details));
    894                     //m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Network_S_Refresh));
    895                     break;
    896                 }
    897                 case UIToolType_Cloud:
    898                 {
    899                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Add));
    900                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Import));
    901                     m_pToolBar->addSeparator();
    902                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Remove));
    903                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_T_Details));
    904                     m_pToolBar->addSeparator();
    905                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_TryPage));
    906                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Cloud_S_Help));
    907                     break;
    908                 }
    909                 case UIToolType_VMActivityOverview:
    910                 {
    911                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_VMActivityOverview_M_Columns));
    912                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_VMActivityOverview_S_SwitchToMachineActivity));
    913                     QToolButton *pButton =
    914                         qobject_cast<QToolButton*>(m_pToolBar->widgetForAction(actionPool()->action(UIActionIndexMN_M_VMActivityOverview_M_Columns)));
    915                     if (pButton)
    916                     {
    917                         pButton->setPopupMode(QToolButton::InstantPopup);
    918                         pButton->setAutoRaise(true);
    919                     }
    920                     break;
    921                 }
    922 
    923                 default:
    924                     break;
    925             }
    926             break;
    927         }
    928         /* Machine toolbar: */
    929         case UIToolClass_Machine:
    930         {
    931             switch (currentMachineTool())
    932             {
    933                 case UIToolType_Details:
    934                 {
    935                     if (isSingleGroupSelected())
    936                     {
    937                         m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_New));
    938                         m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Add));
    939                         m_pToolBar->addSeparator();
    940                         if (isSingleLocalGroupSelected())
    941                             m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Discard));
    942                         else if (   isSingleCloudProviderGroupSelected()
    943                                  || isSingleCloudProfileGroupSelected())
    944                             m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_M_Stop_S_Terminate));
    945                         m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Group_M_StartOrShow));
    946                     }
    947                     else
    948                     {
    949                         m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_New));
    950                         m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Add));
    951                         m_pToolBar->addSeparator();
    952                         m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
    953                         if (isLocalMachineItemSelected())
    954                             m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
    955                         else if (isCloudMachineItemSelected())
    956                             m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_Stop_S_Terminate));
    957                         m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
    958                     }
    959                     break;
    960                 }
    961                 case UIToolType_Snapshots:
    962                 {
    963                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Take));
    964                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Delete));
    965                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Restore));
    966                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_T_Properties));
    967                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Clone));
    968                     m_pToolBar->addSeparator();
    969                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
    970                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
    971                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
    972                     break;
    973                 }
    974                 case UIToolType_Logs:
    975                 {
    976                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Save));
    977                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Find));
    978                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Filter));
    979                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Bookmark));
    980                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Preferences));
    981                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Refresh));
    982                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Reload));
    983                     m_pToolBar->addSeparator();
    984                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
    985                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
    986                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
    987                     break;
    988                 }
    989                 case UIToolType_VMActivity:
    990                 {
    991                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_S_Export));
    992                     m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_S_ToVMActivityOverview));
    993                     m_pToolBar->addSeparator();
    994                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
    995                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
    996                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
    997                     break;
    998                 }
    999                 case UIToolType_FileManager:
    1000                 {
    1001                     m_pToolBar->addAction(m_pActionPool->action(UIActionIndex_M_FileManager_T_Preferences));
    1002                     m_pToolBar->addAction(m_pActionPool->action(UIActionIndex_M_FileManager_T_Operations));
    1003                     m_pToolBar->addAction(m_pActionPool->action(UIActionIndex_M_FileManager_T_Log));
    1004                     m_pToolBar->addSeparator();
    1005                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
    1006                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
    1007                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
    1008                     break;
    1009                 }
    1010                 case UIToolType_Error:
     972                else
    1011973                {
    1012974                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_New));
    1013975                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Add));
    1014976                    m_pToolBar->addSeparator();
    1015                     m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Refresh));
    1016                     break;
     977                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
     978                    if (isLocalMachineItemSelected())
     979                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
     980                    else if (isCloudMachineItemSelected())
     981                        m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_Stop_S_Terminate));
     982                    m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
    1017983                }
    1018                 default:
    1019                     break;
    1020             }
    1021             break;
     984                break;
     985            }
     986            case UIToolType_Snapshots:
     987            {
     988                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Take));
     989                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Delete));
     990                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Restore));
     991                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_T_Properties));
     992                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Snapshot_S_Clone));
     993                m_pToolBar->addSeparator();
     994                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
     995                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
     996                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
     997                break;
     998            }
     999            case UIToolType_Logs:
     1000            {
     1001                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Save));
     1002                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Find));
     1003                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Filter));
     1004                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Bookmark));
     1005                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_T_Preferences));
     1006                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Refresh));
     1007                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Log_S_Reload));
     1008                m_pToolBar->addSeparator();
     1009                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
     1010                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
     1011                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
     1012                break;
     1013            }
     1014            case UIToolType_VMActivity:
     1015            {
     1016                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_S_Export));
     1017                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_S_ToVMActivityOverview));
     1018                m_pToolBar->addSeparator();
     1019                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
     1020                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
     1021                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
     1022                break;
     1023            }
     1024            case UIToolType_FileManager:
     1025            {
     1026                m_pToolBar->addAction(m_pActionPool->action(UIActionIndex_M_FileManager_T_Preferences));
     1027                m_pToolBar->addAction(m_pActionPool->action(UIActionIndex_M_FileManager_T_Operations));
     1028                m_pToolBar->addAction(m_pActionPool->action(UIActionIndex_M_FileManager_T_Log));
     1029                m_pToolBar->addSeparator();
     1030                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
     1031                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));
     1032                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));
     1033                break;
     1034            }
     1035            case UIToolType_Error:
     1036            {
     1037                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_New));
     1038                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Add));
     1039                m_pToolBar->addSeparator();
     1040                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Refresh));
     1041                break;
     1042            }
     1043            default:
     1044                break;
    10221045        }
    1023         default:
    1024             break;
    10251046    }
    10261047
     
    10841105
    10851106    /* Tools-pane connections: */
    1086     disconnect(m_pPaneTools, &UITools::sigSelectionChanged,
     1107    disconnect(m_pMenuToolsGlobal, &UITools::sigSelectionChanged,
     1108               this, &UIVirtualBoxManagerWidget::sltHandleToolsPaneIndexChange);
     1109    disconnect(m_pMenuToolsMachine, &UITools::sigSelectionChanged,
    10871110               this, &UIVirtualBoxManagerWidget::sltHandleToolsPaneIndexChange);
    10881111}
     
    11101133    if (pItem && pItem->itemType() != UIVirtualMachineItemType_Local)
    11111134        retrictedTypes << UIToolType_Snapshots << UIToolType_Logs << UIToolType_VMActivity;
    1112     if (retrictedTypes.contains(m_pPaneTools->toolsType()))
    1113         m_pPaneTools->setToolsType(UIToolType_Details);
    1114     m_pPaneTools->setRestrictedToolTypes(retrictedTypes);
     1135    if (retrictedTypes.contains(m_pMenuToolsMachine->toolsType()))
     1136        m_pMenuToolsMachine->setToolsType(UIToolType_Details);
     1137    m_pMenuToolsMachine->setRestrictedToolTypes(retrictedTypes);
    11151138    /* Update machine tools availability: */
    1116     m_pPaneTools->setToolClassEnabled(UIToolClass_Machine, fCurrentItemIsOk);
     1139    m_pMenuToolsMachine->setToolClassEnabled(UIToolClass_Machine, fCurrentItemIsOk);
    11171140
    11181141    /* Take restrictions into account, closing all restricted tools: */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h

    r99946 r102098  
    9898    /** @name Tools pane stuff.
    9999      * @{ */
    100         /** Notifies about Tool type change. */
    101         void sigToolTypeChange();
     100        /** Notifies about Global Tool type change. */
     101        void sigToolTypeChangeGlobal();
     102        /** Notifies about Machine Tool type change. */
     103        void sigToolTypeChangeMachine();
    102104    /** @} */
    103105
     
    196198    /** @name Tools pane stuff.
    197199      * @{ */
    198         /** Defines tools @a enmType. */
    199         void setToolsType(UIToolType enmType);
    200         /** Returns tools type. */
    201         UIToolType toolsType() const;
     200        /** Defines Global tools @a enmType. */
     201        void setToolsTypeGlobal(UIToolType enmType);
     202        /** Returns Global tools type. */
     203        UIToolType toolsTypeGlobal() const;
     204
     205        /** Defines Machine tools @a enmType. */
     206        void setToolsTypeMachine(UIToolType enmType);
     207        /** Returns Machine tools type. */
     208        UIToolType toolsTypeMachine() const;
    202209
    203210        /** Returns a type of curent Global tool. */
     
    358365    /** Holds the sliding-animation widget instance. */
    359366    UISlidingAnimation *m_pSlidingAnimation;
    360     /** Holds the Tools-pane instance. */
    361     UITools            *m_pPaneTools;
     367    /** Holds the Global Tools-menu instance. */
     368    UITools            *m_pMenuToolsGlobal;
     369    /** Holds the Machine Tools-menu instance. */
     370    UITools            *m_pMenuToolsMachine;
    362371
    363372    /** Holds the last selection type. */
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