| 566 | } |
| 567 | |
| 568 | void MenuHelper::PopulateEffectsMenu( |
| 569 | Group &menuItems, |
| 570 | EffectType type, |
| 571 | CommandFlag batchflags, |
| 572 | const wxString& groupby, |
| 573 | void (*onMenuCommand)(const CommandContext&), |
| 574 | std::function<bool(const PluginDescriptor&)> pred) |
| 575 | { |
| 576 | PluginManager & pm = PluginManager::Get(); |
| 577 | |
| 578 | std::vector<MenuSectionBuilder> sections; |
| 579 | |
| 580 | auto MakeAddSortedItems = [=](SortBy sortby) |
| 581 | { |
| 582 | return [=](Group& items, std::vector<const PluginDescriptor*>& plugins) |
| 583 | { |
| 584 | return AddSortedEffectMenuItems(items, plugins, batchflags, sortby, onMenuCommand); |
| 585 | }; |
| 586 | }; |
| 587 | |
| 588 | auto MakeAddGroupedItems = [=](GroupBy groupBy) |
| 589 | { |
| 590 | return [=](Group& items, std::vector<const PluginDescriptor*>& plugins) |
| 591 | { |
| 592 | return AddGroupedEffectMenuItems(items, plugins, batchflags, groupBy, onMenuCommand); |
| 593 | }; |
| 594 | }; |
| 595 | |
| 596 | |
| 597 | // Make sure all OpenVINO effects are groupped in the same menu under /Effects |
| 598 | auto EffectsFilter = [type](const auto& plug) { return (plug.GetVendor() == "OpenVINO AI Effects") ? (type == EffectTypeProcess) : (plug.GetEffectType() == type); }; |
| 599 | |
| 600 | auto DefaultFilter = [](auto plug) { return IsEnabledPlugin(plug) && IsDefaultPlugin(plug); }; |
| 601 | |
| 602 | if(groupby == "default") |
| 603 | { |
| 604 | if(type == EffectTypeProcess) |
| 605 | { |
| 606 | static auto effectMenuDefaults = [] { |
| 607 | wxFileName path = wxFileName(FileNames::ResourcesDir(), wxT("EffectsMenuDefaults.xml")); |
| 608 | return LoadEffectsMenuGroups(path.GetFullPath()); |
| 609 | }(); |
| 610 | static auto groupsFilter = MakeGroupsFilter(effectMenuDefaults); |
| 611 | |
| 612 | sections.emplace_back( |
| 613 | MenuSectionBuilder { |
| 614 | {}, |
| 615 | [=](auto plug) { return IsBundledPlugin(plug) && groupsFilter(plug); }, |
| 616 | nullptr, |
| 617 | MakeAddGroupItems(effectMenuDefaults, batchflags, onMenuCommand) |
| 618 | }); |
| 619 | sections.emplace_back( |
| 620 | MenuSectionBuilder { |
| 621 | {}, |
| 622 | IsEnabledPlugin, |
| 623 | CompareEffectsByPublisher, |
| 624 | MakeAddGroupedItems(GroupBy::Publisher) |
| 625 | }); |
nothing calls this directly
no test coverage detected