MCPcopy Create free account
hub / github.com/DISTRHO/Cardinal / appendSelectionContextMenu

Function appendSelectionContextMenu

src/CardinalModuleWidget.cpp:84–162  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

82using namespace rack;
83
84void appendSelectionContextMenu(ui::Menu* const menu)
85{
86 app::RackWidget* const w = APP->scene->rack;
87
88 int n = w->getSelected().size();
89 menu->addChild(createMenuLabel(string::f("%d selected %s", n, n == 1 ? "module" : "modules")));
90
91 // Enable alwaysConsume of menu items if the number of selected modules changes
92
93 // Select all
94 menu->addChild(createMenuItem("Select all", RACK_MOD_CTRL_NAME "+A", [w]() {
95 w->selectAll();
96 }, false, true));
97
98 // Deselect
99 menu->addChild(createMenuItem("Deselect", RACK_MOD_CTRL_NAME "+" RACK_MOD_SHIFT_NAME "+A", [w]() {
100 w->deselectAll();
101 }, n == 0, true));
102
103 // Copy
104 menu->addChild(createMenuItem("Copy", RACK_MOD_CTRL_NAME "+C", [w]() {
105 w->copyClipboardSelection();
106 }, n == 0));
107
108 // Paste
109 menu->addChild(createMenuItem("Paste", RACK_MOD_CTRL_NAME "+V", [w]() {
110 w->pasteClipboardAction();
111 }, false, true));
112
113 // Save
114 menu->addChild(createMenuItem(
115 #ifdef DISTRHO_OS_WASM
116 "Save selection",
117 #else
118 "Save selection as...",
119 #endif
120 "", [w]() {
121 CardinalModuleWidget__saveSelectionDialog(w);
122 }, n == 0));
123
124 // Initialize
125 menu->addChild(createMenuItem("Initialize", RACK_MOD_CTRL_NAME "+I", [w]() {
126 w->resetSelectionAction();
127 }, n == 0));
128
129 // Randomize
130 menu->addChild(createMenuItem("Randomize", RACK_MOD_CTRL_NAME "+R", [w]() {
131 w->randomizeSelectionAction();
132 }, n == 0));
133
134 // Disconnect cables
135 menu->addChild(createMenuItem("Disconnect cables", RACK_MOD_CTRL_NAME "+U", [w]() {
136 w->disconnectSelectionAction();
137 }, n == 0));
138
139 // Bypass
140 std::string bypassText = RACK_MOD_CTRL_NAME "+E";
141 bool bypassed = (n > 0) && w->isSelectionBypassed();

Callers 9

onActionMethod · 0.85
onActionMethod · 0.85
onActionMethod · 0.85
onButtonMethod · 0.85
onActionMethod · 0.85
onActionMethod · 0.85
onActionMethod · 0.85
onActionMethod · 0.85
onActionMethod · 0.85

Calls 8

createMenuLabelFunction · 0.85
fFunction · 0.85
createMenuItemFunction · 0.85
addChildMethod · 0.80
selectAllMethod · 0.80
sizeMethod · 0.45
pasteClipboardActionMethod · 0.45

Tested by

no test coverage detected