MCPcopy Create free account
hub / github.com/audacity/audacity / MakeAddGroupItems

Function MakeAddGroupItems

src/menus/MenuHelper.cpp:262–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

260}
261
262auto MakeAddGroupItems(
263 const EffectsMenuGroups& list,
264 CommandFlag batchflags,
265 void (*onMenuCommand)(const CommandContext&)) -> auto
266{
267 return [=](MenuHelper::Group& items, std::vector<const PluginDescriptor*>& plugs)
268 {
269 for(auto& p : list)
270 {
271 TranslatableStrings groupNames;
272 PluginIDs groupPlugs;
273 std::vector<CommandFlag> groupFlags;
274
275 auto srcNames = p.second;
276 std::sort(srcNames.begin(), srcNames.end(), TranslationLess);
277
278 for(auto& name : srcNames)
279 {
280 auto it = std::find_if(plugs.begin(), plugs.end(), [&name](const PluginDescriptor* other)
281 {
282 return name == other->GetSymbol().Msgid();
283 });
284 if(it == plugs.end())
285 continue;
286
287 auto plug = *it;
288 if(plug->IsEffectInteractive())
289 groupNames.push_back(name + XO("..."));
290 else
291 groupNames.push_back( name );
292
293 groupPlugs.push_back(plug->GetID());
294 groupFlags.push_back(FixBatchFlags( batchflags, plug ) );
295 }
296
297 if (!groupNames.empty())
298 {
299 using namespace MenuRegistry;
300 if (p.first.empty()) {
301 auto temp = Items("");
302 AddEffectMenuItemGroup(*temp,
303 groupNames, groupPlugs, groupFlags,
304 onMenuCommand);
305 items.push_back(move(temp));
306 }
307 else {
308 auto temp = Menu("", p.first);
309 AddEffectMenuItemGroup(*temp,
310 groupNames, groupPlugs, groupFlags,
311 onMenuCommand);
312 items.push_back(move(temp));
313 }
314 }
315 }
316 };
317}
318
319void AddGroupedEffectMenuItems(

Callers 1

PopulateEffectsMenuMethod · 0.85

Calls 10

FixBatchFlagsFunction · 0.85
AddEffectMenuItemGroupFunction · 0.85
moveFunction · 0.85
IsEffectInteractiveMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
GetSymbolMethod · 0.45
push_backMethod · 0.45
GetIDMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected