Changeset 109117 in vbox
- Timestamp:
- Apr 30, 2025 11:09:55 AM (9 days ago)
- svn:sync-xref-src-repo-rev:
- 168667
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
r109115 r109117 1235 1235 } 1236 1236 1237 void UIChooserModel::sltHandleSettingsExpertModeChange() 1238 { 1239 /* Invalidate local and cloud machine context-menus (we are reseting property values): */ 1240 m_localMenus.value(UIChooserNodeType_Machine)->setProperty("is_valid", QVariant()); 1241 m_cloudMenus.value(UIChooserNodeType_Machine)->setProperty("is_valid", QVariant()); 1242 } 1243 1237 1244 void UIChooserModel::sltUpdateContextMenu() 1238 1245 { … … 1249 1256 case UIChooserNodeType_Group: 1250 1257 { 1251 pMenu->clear(); 1252 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_New)); 1253 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Add)); 1254 pMenu->addSeparator(); 1255 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Rename)); 1256 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Remove)); 1257 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Group_M_MoveToGroup)->menu()); 1258 pMenu->addSeparator(); 1259 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_M_StartOrShow)); 1260 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_T_Pause)); 1261 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Reset)); 1262 // pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Detach)); 1263 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Group_M_Stop)->menu()); 1264 pMenu->addSeparator(); 1265 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Discard)); 1266 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Refresh)); 1267 pMenu->addSeparator(); 1268 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_ShowInFileManager)); 1269 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_CreateShortcut)); 1270 pMenu->addSeparator(); 1271 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Sort)); 1272 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_T_Search)); 1258 if (!pMenu->property("is_valid").toBool()) 1259 { 1260 pMenu->clear(); 1261 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_New)); 1262 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Add)); 1263 pMenu->addSeparator(); 1264 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Rename)); 1265 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Remove)); 1266 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Group_M_MoveToGroup)->menu()); 1267 pMenu->addSeparator(); 1268 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_M_StartOrShow)); 1269 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_T_Pause)); 1270 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Reset)); 1271 // pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Detach)); 1272 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Group_M_Stop)->menu()); 1273 pMenu->addSeparator(); 1274 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Discard)); 1275 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Refresh)); 1276 pMenu->addSeparator(); 1277 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_ShowInFileManager)); 1278 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_CreateShortcut)); 1279 pMenu->addSeparator(); 1280 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Sort)); 1281 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_T_Search)); 1282 pMenu->setProperty("is_valid", true); 1283 } 1273 1284 break; 1274 1285 } 1275 1286 case UIChooserNodeType_Machine: 1276 1287 { 1277 pMenu->clear(); 1278 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings)); 1279 if (gEDataManager->isSettingsInExpertMode()) 1288 if (!pMenu->property("is_valid").toBool()) 1280 1289 { 1281 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Clone)); 1282 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Move)); 1290 pMenu->clear(); 1291 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings)); 1292 if (gEDataManager->isSettingsInExpertMode()) 1293 { 1294 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Clone)); 1295 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Move)); 1296 } 1297 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_ExportToOCI)); 1298 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Remove)); 1299 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Machine_M_MoveToGroup)->menu()); 1300 pMenu->addSeparator(); 1301 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow)); 1302 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_T_Pause)); 1303 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Reset)); 1304 // pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Detach)); 1305 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Machine_M_Stop)->menu()); 1306 pMenu->addSeparator(); 1307 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard)); 1308 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Refresh)); 1309 pMenu->addSeparator(); 1310 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_ShowInFileManager)); 1311 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_CreateShortcut)); 1312 pMenu->addSeparator(); 1313 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_SortParent)); 1314 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_T_Search)); 1315 pMenu->setProperty("is_valid", true); 1283 1316 } 1284 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_ExportToOCI));1285 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Remove));1286 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Machine_M_MoveToGroup)->menu());1287 pMenu->addSeparator();1288 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow));1289 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_T_Pause));1290 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Reset));1291 // pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Detach));1292 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Machine_M_Stop)->menu());1293 pMenu->addSeparator();1294 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Discard));1295 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Refresh));1296 pMenu->addSeparator();1297 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_ShowInFileManager));1298 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_CreateShortcut));1299 pMenu->addSeparator();1300 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_SortParent));1301 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_T_Search));1302 1317 break; 1303 1318 } … … 1317 1332 case UIChooserNodeType_Group: 1318 1333 { 1319 pMenu->clear(); 1320 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_New)); 1321 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Add)); 1322 pMenu->addSeparator(); 1323 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_M_StartOrShow)); 1324 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Reset)); 1325 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Group_M_Console)->menu()); 1326 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Group_M_Stop)->menu()); 1327 pMenu->addSeparator(); 1328 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Refresh)); 1329 pMenu->addSeparator(); 1330 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Sort)); 1331 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_T_Search)); 1334 if (!pMenu->property("is_valid").toBool()) 1335 { 1336 pMenu->clear(); 1337 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_New)); 1338 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Add)); 1339 pMenu->addSeparator(); 1340 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_M_StartOrShow)); 1341 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Reset)); 1342 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Group_M_Console)->menu()); 1343 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Group_M_Stop)->menu()); 1344 pMenu->addSeparator(); 1345 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Refresh)); 1346 pMenu->addSeparator(); 1347 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_S_Sort)); 1348 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Group_T_Search)); 1349 pMenu->setProperty("is_valid", true); 1350 } 1332 1351 break; 1333 1352 } 1334 1353 case UIChooserNodeType_Machine: 1335 1354 { 1336 pMenu->clear(); 1337 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings)); 1338 if (gEDataManager->isSettingsInExpertMode()) 1339 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Clone)); 1340 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Remove)); 1341 pMenu->addSeparator(); 1342 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow)); 1343 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Reset)); 1344 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Machine_M_Console)->menu()); 1345 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Machine_M_Stop)->menu()); 1346 pMenu->addSeparator(); 1347 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Refresh)); 1348 pMenu->addSeparator(); 1349 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_SortParent)); 1350 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_T_Search)); 1355 if (!pMenu->property("is_valid").toBool()) 1356 { 1357 pMenu->clear(); 1358 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings)); 1359 if (gEDataManager->isSettingsInExpertMode()) 1360 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Clone)); 1361 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Remove)); 1362 pMenu->addSeparator(); 1363 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_M_StartOrShow)); 1364 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Reset)); 1365 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Machine_M_Console)->menu()); 1366 pMenu->addMenu(actionPool()->action(UIActionIndexMN_M_Machine_M_Stop)->menu()); 1367 pMenu->addSeparator(); 1368 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Refresh)); 1369 pMenu->addSeparator(); 1370 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_SortParent)); 1371 pMenu->addAction(actionPool()->action(UIActionIndexMN_M_Machine_T_Search)); 1372 pMenu->setProperty("is_valid", true); 1373 } 1351 1374 break; 1352 1375 } … … 1571 1594 void UIChooserModel::prepareConnections() 1572 1595 { 1596 connect(gEDataManager, &UIExtraDataManager::sigSettingsExpertModeChange, 1597 this, &UIChooserModel::sltHandleSettingsExpertModeChange); 1573 1598 connect(this, &UIChooserModel::sigSelectionChanged, 1574 1599 this, &UIChooserModel::sltUpdateSelectedCloudProfiles); -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h
r109115 r109117 320 320 /** @name General stuff. 321 321 * @{ */ 322 /** Handles signal about experience-mode being changed. */ 323 void sltHandleSettingsExpertModeChange(); 324 322 325 /** Handles signal about context-menu being shown. */ 323 326 void sltUpdateContextMenu();
Note:
See TracChangeset
for help on using the changeset viewer.