- Timestamp:
- Jul 7, 2020 10:37:23 AM (4 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src
- Files:
-
- 5 edited
-
globals/UIActionPoolManager.cpp (modified) (2 diffs)
-
manager/UIVirtualBoxManager.cpp (modified) (2 diffs)
-
manager/UIVirtualBoxManager.h (modified) (1 diff)
-
manager/chooser/UIChooserModel.cpp (modified) (11 diffs)
-
manager/chooser/UIChooserModel.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp
r84991 r85080 3293 3293 pMenu->clear(); 3294 3294 3295 /* Populate Machine-menu: */ 3296 pMenu->addAction(action(UIActionIndexST_M_Group_S_New)); 3297 pMenu->addAction(action(UIActionIndexST_M_Group_S_Add)); 3298 pMenu->addSeparator(); 3299 pMenu->addAction(action(UIActionIndexST_M_Group_S_Rename)); 3300 pMenu->addAction(action(UIActionIndexST_M_Group_S_Remove)); 3301 pMenu->addAction(action(UIActionIndexST_M_Group_M_MoveToGroup)); 3302 pMenu->addSeparator(); 3303 pMenu->addAction(action(UIActionIndexST_M_Group_M_StartOrShow)); 3304 pMenu->addAction(action(UIActionIndexST_M_Group_T_Pause)); 3305 pMenu->addAction(action(UIActionIndexST_M_Group_S_Reset)); 3306 pMenu->addMenu(action(UIActionIndexST_M_Group_M_Close)->menu()); 3307 pMenu->addSeparator(); 3308 pMenu->addMenu(action(UIActionIndexST_M_Group_M_Tools)->menu()); 3309 pMenu->addSeparator(); 3310 pMenu->addAction(action(UIActionIndexST_M_Group_S_Discard)); 3311 pMenu->addAction(action(UIActionIndexST_M_Group_S_ShowLogDialog)); 3312 pMenu->addAction(action(UIActionIndexST_M_Group_S_Refresh)); 3313 pMenu->addSeparator(); 3314 pMenu->addAction(action(UIActionIndexST_M_Group_S_ShowInFileManager)); 3315 pMenu->addAction(action(UIActionIndexST_M_Group_S_CreateShortcut)); 3316 pMenu->addSeparator(); 3317 pMenu->addAction(action(UIActionIndexST_M_Group_S_Sort)); 3318 3319 /* Mark menu as valid: */ 3320 m_invalidations.remove(UIActionIndexST_M_Group); 3295 /* This menu always remains invalid.. */ 3321 3296 } 3322 3297 … … 3329 3304 pMenu->clear(); 3330 3305 3331 /* Populate Machine-menu: */ 3332 pMenu->addAction(action(UIActionIndexST_M_Machine_S_New)); 3333 pMenu->addAction(action(UIActionIndexST_M_Machine_S_Add)); 3334 pMenu->addSeparator(); 3335 pMenu->addAction(action(UIActionIndexST_M_Machine_S_Settings)); 3336 pMenu->addAction(action(UIActionIndexST_M_Machine_S_Clone)); 3337 pMenu->addAction(action(UIActionIndexST_M_Machine_S_Move)); 3338 pMenu->addAction(action(UIActionIndexST_M_Machine_S_ExportToOCI)); 3339 pMenu->addAction(action(UIActionIndexST_M_Machine_S_Remove)); 3340 pMenu->addAction(action(UIActionIndexST_M_Machine_M_MoveToGroup)); 3341 pMenu->addSeparator(); 3342 pMenu->addAction(action(UIActionIndexST_M_Machine_M_StartOrShow)); 3343 pMenu->addAction(action(UIActionIndexST_M_Machine_T_Pause)); 3344 pMenu->addAction(action(UIActionIndexST_M_Machine_S_Reset)); 3345 pMenu->addMenu(action(UIActionIndexST_M_Machine_M_Close)->menu()); 3346 pMenu->addSeparator(); 3347 pMenu->addMenu(action(UIActionIndexST_M_Machine_M_Tools)->menu()); 3348 pMenu->addSeparator(); 3349 pMenu->addAction(action(UIActionIndexST_M_Machine_S_Discard)); 3350 pMenu->addAction(action(UIActionIndexST_M_Machine_S_ShowLogDialog)); 3351 pMenu->addAction(action(UIActionIndexST_M_Machine_S_Refresh)); 3352 pMenu->addSeparator(); 3353 pMenu->addAction(action(UIActionIndexST_M_Machine_S_ShowInFileManager)); 3354 pMenu->addAction(action(UIActionIndexST_M_Machine_S_CreateShortcut)); 3355 pMenu->addSeparator(); 3356 pMenu->addAction(action(UIActionIndexST_M_Machine_S_SortParent)); 3357 pMenu->addAction(action(UIActionIndexST_M_Machine_T_Search)); 3358 3359 /* Mark menu as valid: */ 3360 m_invalidations.remove(UIActionIndexST_M_Machine); 3306 /* This menu always remains invalid.. */ 3361 3307 } 3362 3308 -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
r85039 r85080 1508 1508 1509 1509 /* Prepare menu update-handlers: */ 1510 m_menuUpdateHandlers[UIActionIndexST_M_Group] = &UIVirtualBoxManager::updateMenuGroup; 1511 m_menuUpdateHandlers[UIActionIndexST_M_Machine] = &UIVirtualBoxManager::updateMenuMachine; 1510 1512 m_menuUpdateHandlers[UIActionIndexST_M_Group_M_MoveToGroup] = &UIVirtualBoxManager::updateMenuGroupMoveToGroup; 1511 1513 m_menuUpdateHandlers[UIActionIndexST_M_Group_M_Close] = &UIVirtualBoxManager::updateMenuGroupClose; … … 1978 1980 } 1979 1981 1982 void UIVirtualBoxManager::updateMenuGroup(QMenu *pMenu) 1983 { 1984 /* For single local group selected: */ 1985 if (isSingleLocalGroupSelected()) 1986 { 1987 /* Populate Group-menu: */ 1988 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_New)); 1989 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Add)); 1990 pMenu->addSeparator(); 1991 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Rename)); 1992 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Remove)); 1993 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_M_MoveToGroup)); 1994 pMenu->addSeparator(); 1995 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_M_StartOrShow)); 1996 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_T_Pause)); 1997 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Reset)); 1998 pMenu->addMenu(actionPool()->action(UIActionIndexST_M_Group_M_Close)->menu()); 1999 pMenu->addSeparator(); 2000 pMenu->addMenu(actionPool()->action(UIActionIndexST_M_Group_M_Tools)->menu()); 2001 pMenu->addSeparator(); 2002 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Discard)); 2003 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_ShowLogDialog)); 2004 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Refresh)); 2005 pMenu->addSeparator(); 2006 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_ShowInFileManager)); 2007 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_CreateShortcut)); 2008 pMenu->addSeparator(); 2009 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Sort)); 2010 } 2011 else 2012 { 2013 /* Populate Group-menu: */ 2014 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_New)); 2015 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Add)); 2016 pMenu->addSeparator(); 2017 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_M_StartOrShow)); 2018 pMenu->addMenu(actionPool()->action(UIActionIndexST_M_Group_M_Close)->menu()); 2019 pMenu->addSeparator(); 2020 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Discard)); 2021 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Refresh)); 2022 pMenu->addSeparator(); 2023 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Sort)); 2024 } 2025 } 2026 2027 void UIVirtualBoxManager::updateMenuMachine(QMenu *pMenu) 2028 { 2029 /* Get first selected item: */ 2030 UIVirtualMachineItem *pItem = currentItem(); 2031 AssertPtrReturnVoid(pItem); 2032 2033 /* For local machine: */ 2034 if (pItem->itemType() == UIVirtualMachineItemType_Local) 2035 { 2036 /* Populate Machine-menu: */ 2037 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_New)); 2038 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Add)); 2039 pMenu->addSeparator(); 2040 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Settings)); 2041 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Clone)); 2042 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Move)); 2043 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_ExportToOCI)); 2044 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Remove)); 2045 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_M_MoveToGroup)); 2046 pMenu->addSeparator(); 2047 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow)); 2048 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_T_Pause)); 2049 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Reset)); 2050 pMenu->addMenu(actionPool()->action(UIActionIndexST_M_Machine_M_Close)->menu()); 2051 pMenu->addSeparator(); 2052 pMenu->addMenu(actionPool()->action(UIActionIndexST_M_Machine_M_Tools)->menu()); 2053 pMenu->addSeparator(); 2054 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Discard)); 2055 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_ShowLogDialog)); 2056 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Refresh)); 2057 pMenu->addSeparator(); 2058 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_ShowInFileManager)); 2059 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_CreateShortcut)); 2060 pMenu->addSeparator(); 2061 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_SortParent)); 2062 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_T_Search)); 2063 } 2064 else 2065 { 2066 /* Populate Machine-menu: */ 2067 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_New)); 2068 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Add)); 2069 pMenu->addSeparator(); 2070 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Settings)); 2071 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Remove)); 2072 pMenu->addSeparator(); 2073 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow)); 2074 pMenu->addMenu(actionPool()->action(UIActionIndexST_M_Machine_M_Close)->menu()); 2075 pMenu->addSeparator(); 2076 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Discard)); 2077 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Refresh)); 2078 pMenu->addSeparator(); 2079 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_SortParent)); 2080 pMenu->addAction(actionPool()->action(UIActionIndexST_M_Machine_T_Search)); 2081 } 2082 } 2083 1980 2084 void UIVirtualBoxManager::updateMenuGroupMoveToGroup(QMenu *pMenu) 1981 2085 { -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
r84892 r85080 348 348 /** @name Action update stuff. 349 349 * @{ */ 350 /** Updates 'Group' menu. */ 351 void updateMenuGroup(QMenu *pMenu); 352 /** Updates 'Machine' menu. */ 353 void updateMenuMachine(QMenu *pMenu); 350 354 /** Updates 'Group' : 'Move to Group' menu. */ 351 355 void updateMenuGroupMoveToGroup(QMenu *pMenu); -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
r85038 r85080 1241 1241 { 1242 1242 /* Context menu for global(s): */ 1243 m_ menus[UIChooserNodeType_Global] = new QMenu;1244 if (QMenu *pMenuGlobal = m_ menus.value(UIChooserNodeType_Global))1243 m_localMenus[UIChooserNodeType_Global] = new QMenu; 1244 if (QMenu *pMenuGlobal = m_localMenus.value(UIChooserNodeType_Global)) 1245 1245 { 1246 1246 /* Check if Ext Pack is ready, some of actions my depend on it: */ … … 1287 1287 } 1288 1288 1289 /* Context menu for group(s): */1290 m_ menus[UIChooserNodeType_Group] = new QMenu;1291 if (QMenu *pMenuGroup = m_ menus.value(UIChooserNodeType_Group))1289 /* Context menu for local group(s): */ 1290 m_localMenus[UIChooserNodeType_Group] = new QMenu; 1291 if (QMenu *pMenuGroup = m_localMenus.value(UIChooserNodeType_Group)) 1292 1292 { 1293 1293 pMenuGroup->addAction(actionPool()->action(UIActionIndexST_M_Group_S_New)); … … 1313 1313 } 1314 1314 1315 /* Context menu for machine(s): */1316 m_ menus[UIChooserNodeType_Machine] = new QMenu;1317 if (QMenu *pMenuMachine = m_ menus.value(UIChooserNodeType_Machine))1315 /* Context menu for local machine(s): */ 1316 m_localMenus[UIChooserNodeType_Machine] = new QMenu; 1317 if (QMenu *pMenuMachine = m_localMenus.value(UIChooserNodeType_Machine)) 1318 1318 { 1319 1319 pMenuMachine->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Settings)); … … 1339 1339 pMenuMachine->addAction(actionPool()->action(UIActionIndexST_M_Machine_T_Search)); 1340 1340 } 1341 1342 /* Context menu for cloud group(s): */ 1343 m_cloudMenus[UIChooserNodeType_Group] = new QMenu; 1344 if (QMenu *pMenuGroup = m_cloudMenus.value(UIChooserNodeType_Group)) 1345 { 1346 pMenuGroup->addAction(actionPool()->action(UIActionIndexST_M_Group_S_New)); 1347 pMenuGroup->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Add)); 1348 pMenuGroup->addSeparator(); 1349 pMenuGroup->addAction(actionPool()->action(UIActionIndexST_M_Group_M_StartOrShow)); 1350 pMenuGroup->addMenu(actionPool()->action(UIActionIndexST_M_Group_M_Close)->menu()); 1351 pMenuGroup->addSeparator(); 1352 pMenuGroup->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Discard)); 1353 pMenuGroup->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Refresh)); 1354 pMenuGroup->addSeparator(); 1355 pMenuGroup->addAction(actionPool()->action(UIActionIndexST_M_Group_S_Sort)); 1356 } 1357 1358 /* Context menu for cloud machine(s): */ 1359 m_cloudMenus[UIChooserNodeType_Machine] = new QMenu; 1360 if (QMenu *pMenuMachine = m_cloudMenus.value(UIChooserNodeType_Machine)) 1361 { 1362 pMenuMachine->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Settings)); 1363 pMenuMachine->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Remove)); 1364 pMenuMachine->addSeparator(); 1365 pMenuMachine->addAction(actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow)); 1366 pMenuMachine->addMenu(actionPool()->action(UIActionIndexST_M_Machine_M_Close)->menu()); 1367 pMenuMachine->addSeparator(); 1368 pMenuMachine->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Discard)); 1369 pMenuMachine->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_Refresh)); 1370 pMenuMachine->addSeparator(); 1371 pMenuMachine->addAction(actionPool()->action(UIActionIndexST_M_Machine_S_SortParent)); 1372 pMenuMachine->addAction(actionPool()->action(UIActionIndexST_M_Machine_T_Search)); 1373 } 1341 1374 } 1342 1375 … … 1387 1420 void UIChooserModel::cleanupContextMenu() 1388 1421 { 1389 qDeleteAll(m_menus); 1390 m_menus.clear(); 1422 qDeleteAll(m_localMenus); 1423 m_localMenus.clear(); 1424 qDeleteAll(m_cloudMenus); 1425 m_cloudMenus.clear(); 1391 1426 } 1392 1427 … … 1419 1454 { 1420 1455 /* Global context menu for all global item cases: */ 1421 m_ menus.value(UIChooserNodeType_Global)->exec(pEvent->screenPos());1456 m_localMenus.value(UIChooserNodeType_Global)->exec(pEvent->screenPos()); 1422 1457 break; 1423 1458 } … … 1425 1460 { 1426 1461 /* Get group-item: */ 1427 UIChooserItem *pGroupItem = qgraphicsitem_cast<UIChooserItemGroup*>(pItem);1462 UIChooserItemGroup *pGroupItem = qgraphicsitem_cast<UIChooserItemGroup*>(pItem); 1428 1463 /* Don't show context menu for root-item: */ 1429 1464 if (pGroupItem->isRoot()) … … 1433 1468 { 1434 1469 /* Group context menu in that case: */ 1435 m_menus.value(UIChooserNodeType_Group)->exec(pEvent->screenPos()); 1470 if (pGroupItem->groupType() == UIChooserNodeGroupType_Local) 1471 m_localMenus.value(UIChooserNodeType_Group)->exec(pEvent->screenPos()); 1472 else if ( pGroupItem->groupType() == UIChooserNodeGroupType_Provider 1473 || pGroupItem->groupType() == UIChooserNodeGroupType_Profile) 1474 m_cloudMenus.value(UIChooserNodeType_Group)->exec(pEvent->screenPos()); 1436 1475 break; 1437 1476 } … … 1440 1479 case UIChooserNodeType_Machine: 1441 1480 { 1481 /* Get machine-item: */ 1482 UIChooserItemMachine *pMachineItem = qgraphicsitem_cast<UIChooserItemMachine*>(pItem); 1442 1483 /* Machine context menu for other Group/Machine cases: */ 1443 m_menus.value(UIChooserNodeType_Machine)->exec(pEvent->screenPos()); 1484 if (pMachineItem->cacheType() == UIVirtualMachineItemType_Local) 1485 m_localMenus.value(UIChooserNodeType_Machine)->exec(pEvent->screenPos()); 1486 else if (pMachineItem->cacheType() == UIVirtualMachineItemType_CloudReal) 1487 m_cloudMenus.value(UIChooserNodeType_Machine)->exec(pEvent->screenPos()); 1444 1488 break; 1445 1489 } … … 1461 1505 { 1462 1506 /* Global context menu for all global item cases: */ 1463 m_ menus.value(UIChooserNodeType_Global)->exec(pEvent->screenPos());1507 m_localMenus.value(UIChooserNodeType_Global)->exec(pEvent->screenPos()); 1464 1508 break; 1465 1509 } 1466 1510 case UIChooserNodeType_Group: 1467 1511 { 1512 /* Get group-item: */ 1513 UIChooserItemGroup *pGroupItem = qgraphicsitem_cast<UIChooserItemGroup*>(pItem); 1468 1514 /* Make sure we have group-item selected exclusively: */ 1469 if (selectedItems(). size() == 1)1515 if (selectedItems().contains(pGroupItem) && selectedItems().size() == 1) 1470 1516 { 1471 1517 /* Group context menu in that case: */ 1472 m_menus.value(UIChooserNodeType_Group)->exec(pEvent->screenPos()); 1518 if (pGroupItem->groupType() == UIChooserNodeGroupType_Local) 1519 m_localMenus.value(UIChooserNodeType_Group)->exec(pEvent->screenPos()); 1520 else if ( pGroupItem->groupType() == UIChooserNodeGroupType_Provider 1521 || pGroupItem->groupType() == UIChooserNodeGroupType_Profile) 1522 m_cloudMenus.value(UIChooserNodeType_Group)->exec(pEvent->screenPos()); 1473 1523 break; 1474 1524 } … … 1477 1527 case UIChooserNodeType_Machine: 1478 1528 { 1529 /* Get machine-item: */ 1530 UIChooserItemMachine *pMachineItem = qgraphicsitem_cast<UIChooserItemMachine*>(pItem); 1479 1531 /* Machine context menu for other Group/Machine cases: */ 1480 m_menus.value(UIChooserNodeType_Machine)->exec(pEvent->screenPos()); 1532 if (pMachineItem->cacheType() == UIVirtualMachineItemType_Local) 1533 m_localMenus.value(UIChooserNodeType_Machine)->exec(pEvent->screenPos()); 1534 else if (pMachineItem->cacheType() == UIVirtualMachineItemType_CloudReal) 1535 m_cloudMenus.value(UIChooserNodeType_Machine)->exec(pEvent->screenPos()); 1481 1536 break; 1482 1537 } -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h
r85038 r85080 379 379 UIChooserHandlerKeyboard *m_pKeyboardHandler; 380 380 381 /** Holds the map of context-menu instances. */ 382 QMap<UIChooserNodeType, QMenu*> m_menus; 381 /** Holds the map of local context-menu instances. */ 382 QMap<UIChooserNodeType, QMenu*> m_localMenus; 383 /** Holds the map of cloud context-menu instances. */ 384 QMap<UIChooserNodeType, QMenu*> m_cloudMenus; 383 385 /** @} */ 384 386
Note:
See TracChangeset
for help on using the changeset viewer.

