Changeset 102098 in vbox
- Timestamp:
- Nov 15, 2023 11:39:02 AM (15 months ago)
- 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 919 919 } 920 920 921 void UIVirtualBoxManager::sltHandle ToolTypeChange()921 void UIVirtualBoxManager::sltHandleGlobalToolTypeChange() 922 922 { 923 923 /* Update actions stuff: */ … … 926 926 927 927 /* Make sure separate dialog closed when corresponding tool opened: */ 928 switch (m_pWidget->toolsType ())928 switch (m_pWidget->toolsTypeGlobal()) 929 929 { 930 930 case UIToolType_Extensions: … … 933 933 case UIToolType_Cloud: 934 934 case UIToolType_CloudConsole: 935 sltCloseManagerWindow(m_pWidget->toolsType ());935 sltCloseManagerWindow(m_pWidget->toolsTypeGlobal()); 936 936 break; 937 default: 938 break; 939 } 940 } 941 942 void 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 { 937 951 case UIToolType_Logs: 938 952 sltCloseLogViewerWindow(); 939 953 break; 940 case UIToolType_VMActivity:941 case UIToolType_FileManager:942 954 default: 943 955 break; … … 1002 1014 if (m_pWidget->isGlobalToolOpened(enmType)) 1003 1015 { 1004 m_pWidget->setToolsType (UIToolType_Welcome);1016 m_pWidget->setToolsTypeGlobal(UIToolType_Welcome); 1005 1017 m_pWidget->closeGlobalTool(enmType); 1006 1018 } … … 2174 2186 AssertPtrReturnVoid(m_pWidget); 2175 2187 m_pWidget->switchToGlobalItem(); 2176 m_pWidget->setToolsType (pAction->property("UIToolType").value<UIToolType>());2188 m_pWidget->setToolsTypeGlobal(pAction->property("UIToolType").value<UIToolType>()); 2177 2189 } 2178 2190 … … 2181 2193 AssertPtrReturnVoid(pAction); 2182 2194 AssertPtrReturnVoid(m_pWidget); 2183 m_pWidget->setToolsType (pAction->property("UIToolType").value<UIToolType>());2195 m_pWidget->setToolsTypeMachine(pAction->property("UIToolType").value<UIToolType>()); 2184 2196 } 2185 2197 … … 2193 2205 if (m_pWidget->isMachineToolOpened(UIToolType_Logs)) 2194 2206 { 2195 m_pWidget->setToolsType (UIToolType_Details);2207 m_pWidget->setToolsTypeMachine(UIToolType_Details); 2196 2208 m_pWidget->closeMachineTool(UIToolType_Logs); 2197 2209 } … … 2478 2490 connect(m_pWidget, &UIVirtualBoxManagerWidget::sigCloudMachineStateChange, 2479 2491 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); 2482 2496 connect(m_pWidget, &UIVirtualBoxManagerWidget::sigCreateMedium, 2483 2497 this, &UIVirtualBoxManager::sltCreateMedium); -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
r102084 r102098 155 155 void sltHandleCloudUpdateProgressChange(); 156 156 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(); 159 161 160 162 /** Handles create medium request. */ -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp
r101571 r102098 67 67 , m_pPaneToolsMachine(0) 68 68 , m_pSlidingAnimation(0) 69 , m_pPaneTools(0) 69 , m_pMenuToolsGlobal(0) 70 , m_pMenuToolsMachine(0) 70 71 , m_enmSelectionType(SelectionType_Invalid) 71 72 , m_fSelectedMachineItemAccessible(false) … … 206 207 } 207 208 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; 209 void UIVirtualBoxManagerWidget::setToolsTypeGlobal(UIToolType enmType) 210 { 211 m_pMenuToolsGlobal->setToolsType(enmType); 212 } 213 214 UIToolType UIVirtualBoxManagerWidget::toolsTypeGlobal() const 215 { 216 return m_pMenuToolsGlobal ? m_pMenuToolsGlobal->toolsType() : UIToolType_Invalid; 217 } 218 219 void UIVirtualBoxManagerWidget::setToolsTypeMachine(UIToolType enmType) 220 { 221 m_pMenuToolsMachine->setToolsType(enmType); 222 } 223 224 UIToolType UIVirtualBoxManagerWidget::toolsTypeMachine() const 225 { 226 return m_pMenuToolsMachine ? m_pMenuToolsMachine->toolsType() : UIToolType_Invalid; 216 227 } 217 228 … … 242 253 243 254 /* Let the parent know: */ 244 emit sigToolTypeChange ();255 emit sigToolTypeChangeGlobal(); 245 256 246 257 /* Update toolbar: */ … … 254 265 255 266 /* Let the parent know: */ 256 emit sigToolTypeChange ();267 emit sigToolTypeChangeMachine(); 257 268 258 269 /* Update toolbar: */ … … 463 474 case SlidingDirection_Forward: 464 475 { 465 m_p PaneTools->setToolsClass(UIToolClass_Machine);476 m_pMenuToolsMachine->setToolsClass(UIToolClass_Machine); 466 477 m_pStackedWidget->setCurrentWidget(m_pPaneToolsMachine); 467 478 m_pPaneToolsGlobal->setActive(false); … … 471 482 case SlidingDirection_Reverse: 472 483 { 473 m_p PaneTools->setToolsClass(UIToolClass_Global);484 m_pMenuToolsGlobal->setToolsClass(UIToolClass_Global); 474 485 m_pStackedWidget->setCurrentWidget(m_pPaneToolsGlobal); 475 486 m_pPaneToolsMachine->setActive(false); … … 528 539 void UIVirtualBoxManagerWidget::sltHandleToolMenuRequested(UIToolClass enmClass, const QPoint &position) 529 540 { 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); 532 550 533 551 /* Compose popup-menu geometry first of all: */ 534 QRect ourGeo = QRect(position, m_pPaneTools->minimumSizeHint());552 QRect ourGeo = QRect(position, pMenu->minimumSizeHint()); 535 553 /* Adjust location only to properly fit into available geometry space: */ 536 554 const QRect availableGeo = gpDesktop->availableGeometry(position); … … 538 556 539 557 /* Move, resize and show: */ 540 m_pPaneTools->move(ourGeo.topLeft());541 m_pPaneTools->show();558 pMenu->move(ourGeo.topLeft()); 559 pMenu->show(); 542 560 // WORKAROUND: 543 561 // Don't want even to think why, but for Qt::Popup resize to 544 562 // smaller size often being ignored until it is actually shown. 545 m_pPaneTools->resize(ourGeo.size());563 pMenu->resize(ourGeo.size()); 546 564 } 547 565 548 566 void UIVirtualBoxManagerWidget::sltHandleToolsPaneIndexChange() 549 567 { 568 /* Determine sender: */ 569 UITools *pMenu = qobject_cast<UITools*>(sender()); 570 550 571 /* 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(); 553 579 554 580 /* Invent default for fallback case: */ … … 563 589 564 590 /* Choose new type: */ 565 switch ( m_pPaneTools->toolsClass())591 switch (enmCurrentClass) 566 592 { 567 593 case UIToolClass_Global: switchToGlobalTool(enmNewType); break; … … 574 600 { 575 601 AssertPtrReturnVoid(m_pPaneChooser); 576 AssertPtrReturnVoid(m_p PaneTools);602 AssertPtrReturnVoid(m_pMenuToolsMachine); 577 603 m_pPaneChooser->setCurrentMachine(uMachineId); 578 m_p PaneTools->setToolsType(UIToolType_VMActivity);604 m_pMenuToolsMachine->setToolsType(UIToolType_VMActivity); 579 605 } 580 606 … … 582 608 { 583 609 AssertPtrReturnVoid(m_pPaneChooser); 584 AssertPtrReturnVoid(m_p PaneTools);585 m_p PaneTools->setToolsType(UIToolType_VMActivityOverview);610 AssertPtrReturnVoid(m_pMenuToolsGlobal); 611 m_pMenuToolsGlobal->setToolsType(UIToolType_VMActivityOverview); 586 612 m_pPaneChooser->setCurrentGlobal(); 587 613 } … … 740 766 } 741 767 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); 752 776 } 753 777 … … 807 831 808 832 /* 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, 810 836 this, &UIVirtualBoxManagerWidget::sltHandleToolsPaneIndexChange); 811 837 } … … 833 859 834 860 /* Open tools last chosen in Tools-pane: */ 835 switchToGlobalTool(m_p PaneTools->lastSelectedToolGlobal());836 switchToMachineTool(m_p PaneTools->lastSelectedToolMachine());861 switchToGlobalTool(m_pMenuToolsGlobal->lastSelectedToolGlobal()); 862 switchToMachineTool(m_pMenuToolsMachine->lastSelectedToolMachine()); 837 863 } 838 864 … … 845 871 m_pToolBar->clear(); 846 872 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()) 852 877 { 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) 856 939 { 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)); 858 964 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)); 865 971 } 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 1011 973 { 1012 974 m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_New)); 1013 975 m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Add)); 1014 976 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)); 1017 983 } 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; 1022 1045 } 1023 default:1024 break;1025 1046 } 1026 1047 … … 1084 1105 1085 1106 /* 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, 1087 1110 this, &UIVirtualBoxManagerWidget::sltHandleToolsPaneIndexChange); 1088 1111 } … … 1110 1133 if (pItem && pItem->itemType() != UIVirtualMachineItemType_Local) 1111 1134 retrictedTypes << UIToolType_Snapshots << UIToolType_Logs << UIToolType_VMActivity; 1112 if (retrictedTypes.contains(m_p PaneTools->toolsType()))1113 m_p PaneTools->setToolsType(UIToolType_Details);1114 m_p PaneTools->setRestrictedToolTypes(retrictedTypes);1135 if (retrictedTypes.contains(m_pMenuToolsMachine->toolsType())) 1136 m_pMenuToolsMachine->setToolsType(UIToolType_Details); 1137 m_pMenuToolsMachine->setRestrictedToolTypes(retrictedTypes); 1115 1138 /* Update machine tools availability: */ 1116 m_p PaneTools->setToolClassEnabled(UIToolClass_Machine, fCurrentItemIsOk);1139 m_pMenuToolsMachine->setToolClassEnabled(UIToolClass_Machine, fCurrentItemIsOk); 1117 1140 1118 1141 /* Take restrictions into account, closing all restricted tools: */ -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.h
r99946 r102098 98 98 /** @name Tools pane stuff. 99 99 * @{ */ 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(); 102 104 /** @} */ 103 105 … … 196 198 /** @name Tools pane stuff. 197 199 * @{ */ 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; 202 209 203 210 /** Returns a type of curent Global tool. */ … … 358 365 /** Holds the sliding-animation widget instance. */ 359 366 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; 362 371 363 372 /** Holds the last selection type. */
Note:
See TracChangeset
for help on using the changeset viewer.