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

Function AddSortedEffectMenuItems

src/menus/MenuHelper.cpp:207–260  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

205}
206
207void AddSortedEffectMenuItems(
208 MenuHelper::Group &table,
209 std::vector<const PluginDescriptor*> & plugs,
210 CommandFlag batchflags,
211 SortBy sortBy,
212 void (*onMenuCommand)(const CommandContext&))
213{
214 size_t pluginCnt = plugs.size();
215
216 TranslatableStrings groupNames;
217 PluginIDs groupPlugs;
218 std::vector<CommandFlag> groupFlags;
219
220 for (size_t i = 0; i < pluginCnt; i++)
221 {
222 const PluginDescriptor *plug = plugs[i];
223
224 auto name = plug->GetSymbol().Msgid();
225
226 if (plug->IsEffectInteractive())
227 name += XO("...");
228
229 TranslatableString group;
230 if (sortBy == SortBy::PublisherName/* wxT("sortby:publisher:name")*/)
231 {
232 group = EffectManager::Get().GetVendorName(plug->GetID());
233 }
234 else if (sortBy == SortBy::TypeName /*wxT("sortby:type:name")*/)
235 {
236 group = EffectManager::Get().GetEffectFamilyName(plug->GetID());
237 }
238
239 if (plug->IsEffectDefault())
240 {
241 group = {};
242 }
243
244 groupNames.push_back(
245 group.empty()
246 ? name
247 : XO("%s: %s").Format( group, name )
248 );
249
250 groupPlugs.push_back(plug->GetID());
251 groupFlags.push_back(FixBatchFlags( batchflags, plug ) );
252 }
253
254 if (groupNames.size() > 0)
255 {
256 AddEffectMenuItemGroup(
257 table, groupNames, groupPlugs, groupFlags,
258 onMenuCommand);
259 }
260}
261
262auto MakeAddGroupItems(
263 const EffectsMenuGroups& list,

Callers 1

PopulateEffectsMenuMethod · 0.85

Calls 12

GetFunction · 0.85
FixBatchFlagsFunction · 0.85
AddEffectMenuItemGroupFunction · 0.85
IsEffectInteractiveMethod · 0.80
GetVendorNameMethod · 0.80
GetEffectFamilyNameMethod · 0.80
IsEffectDefaultMethod · 0.80
sizeMethod · 0.45
GetSymbolMethod · 0.45
GetIDMethod · 0.45
push_backMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected