MCPcopy Create free account
hub / github.com/VCVRack/Rack / appendSelectionContextMenu

Method appendSelectionContextMenu

src/app/RackWidget.cpp:1380–1449  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1378}
1379
1380void RackWidget::appendSelectionContextMenu(ui::Menu* menu) {
1381 int n = getSelected().size();
1382 menu->addChild(createMenuLabel(n == 1 ? string::translate("RackWidget.selectedOne") : string::f(string::translate("RackWidget.selectedMany"), n)));
1383
1384 // Enable alwaysConsume of menu items if the number of selected modules changes
1385
1386 // Select all
1387 menu->addChild(createMenuItem(string::translate("RackWidget.selectAll"), widget::getKeyCommandName(GLFW_KEY_A, RACK_MOD_CTRL), [=]() {
1388 selectAll();
1389 }, false, true));
1390
1391 // Deselect
1392 menu->addChild(createMenuItem(string::translate("RackWidget.deselect"), widget::getKeyCommandName(GLFW_KEY_A, RACK_MOD_CTRL | GLFW_MOD_SHIFT), [=]() {
1393 deselectAll();
1394 }, n == 0, true));
1395
1396 // Copy
1397 menu->addChild(createMenuItem(string::translate("RackWidget.copy"), widget::getKeyCommandName(GLFW_KEY_C, RACK_MOD_CTRL), [=]() {
1398 copyClipboardSelection();
1399 }, n == 0));
1400
1401 // Paste
1402 menu->addChild(createMenuItem(string::translate("RackWidget.paste"), widget::getKeyCommandName(GLFW_KEY_V, RACK_MOD_CTRL), [=]() {
1403 pasteClipboardAction();
1404 }, false, true));
1405
1406 // Save
1407 menu->addChild(createMenuItem(string::translate("RackWidget.saveAs"), "", [=]() {
1408 saveSelectionDialog();
1409 }, n == 0));
1410
1411 // Initialize
1412 menu->addChild(createMenuItem(string::translate("RackWidget.initialize"), widget::getKeyCommandName(GLFW_KEY_I, RACK_MOD_CTRL), [=]() {
1413 resetSelectionAction();
1414 }, n == 0));
1415
1416 // Randomize
1417 menu->addChild(createMenuItem(string::translate("RackWidget.randomize"), widget::getKeyCommandName(GLFW_KEY_R, RACK_MOD_CTRL), [=]() {
1418 randomizeSelectionAction();
1419 }, n == 0));
1420
1421 // Disconnect cables
1422 menu->addChild(createMenuItem(string::translate("RackWidget.disconnectCables"), widget::getKeyCommandName(GLFW_KEY_U, RACK_MOD_CTRL), [=]() {
1423 disconnectSelectionAction();
1424 }, n == 0));
1425
1426 // Bypass
1427 std::string bypassText = widget::getKeyCommandName(GLFW_KEY_E, RACK_MOD_CTRL);
1428 bool bypassed = (n > 0) && isSelectionBypassed();
1429 if (bypassed)
1430 bypassText += " " CHECKMARK_STRING;
1431 menu->addChild(createMenuItem(string::translate("RackWidget.bypass"), bypassText, [=]() {
1432 bypassSelectionAction(!bypassed);
1433 }, n == 0, true));
1434
1435 // Duplicate
1436 menu->addChild(createMenuItem(string::translate("RackWidget.duplicate"), widget::getKeyCommandName(GLFW_KEY_D, RACK_MOD_CTRL), [=]() {
1437 cloneSelectionAction(false);

Callers 2

onButtonMethod · 0.80
onActionMethod · 0.80

Calls 7

createMenuLabelFunction · 0.85
translateFunction · 0.85
createMenuItemFunction · 0.85
getKeyCommandNameFunction · 0.85
addChildMethod · 0.80
fFunction · 0.50
sizeMethod · 0.45

Tested by

no test coverage detected