mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-11 09:06:33 +01:00
Add plugin charts to context menu
This commit is contained in:
parent
77362a2429
commit
ef98492298
2 changed files with 37 additions and 0 deletions
|
|
@ -969,6 +969,9 @@ PluginSelector::build_plugin_menu ()
|
||||||
items.push_back (MenuElem (_("Plugin Manager..."), sigc::mem_fun (*this, &PluginSelector::show_manager)));
|
items.push_back (MenuElem (_("Plugin Manager..."), sigc::mem_fun (*this, &PluginSelector::show_manager)));
|
||||||
items.push_back (SeparatorElem ());
|
items.push_back (SeparatorElem ());
|
||||||
|
|
||||||
|
Menu* charts = create_charts_menu(all_plugs);
|
||||||
|
items.push_back (MenuElem (_("Top-10"), *manage (charts)));
|
||||||
|
|
||||||
Menu* by_creator = create_by_creator_menu(all_plugs);
|
Menu* by_creator = create_by_creator_menu(all_plugs);
|
||||||
items.push_back (MenuElem (_("By Creator"), *manage (by_creator)));
|
items.push_back (MenuElem (_("By Creator"), *manage (by_creator)));
|
||||||
|
|
||||||
|
|
@ -1026,6 +1029,39 @@ PluginSelector::create_favs_menu (PluginInfoList& all_plugs)
|
||||||
return favs;
|
return favs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Gtk::Menu*
|
||||||
|
PluginSelector::create_charts_menu (PluginInfoList& all_plugs)
|
||||||
|
{
|
||||||
|
using namespace Menu_Helpers;
|
||||||
|
|
||||||
|
Menu* charts = new Menu();
|
||||||
|
charts->set_name("ArdourContextMenu");
|
||||||
|
|
||||||
|
PluginInfoList plugs;
|
||||||
|
|
||||||
|
for (PluginInfoList::const_iterator i = all_plugs.begin(); i != all_plugs.end(); ++i) {
|
||||||
|
int64_t lru;
|
||||||
|
uint64_t use_count;
|
||||||
|
if (manager.stats (*i, lru, use_count)) {
|
||||||
|
plugs.push_back (*i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PluginChartsSorter cmp;
|
||||||
|
plugs.sort (cmp);
|
||||||
|
plugs.resize (std::min (plugs.size(), size_t(10)));
|
||||||
|
|
||||||
|
PluginABCSorter abc;
|
||||||
|
plugs.sort (abc);
|
||||||
|
|
||||||
|
for (PluginInfoList::const_iterator i = plugs.begin(); i != plugs.end(); ++i) {
|
||||||
|
string typ = GetPluginTypeStr(*i);
|
||||||
|
MenuElem elem ((*i)->name + typ, (sigc::bind (sigc::mem_fun (*this, &PluginSelector::plugin_chosen_from_menu), *i)));
|
||||||
|
elem.get_child()->set_use_underline (false);
|
||||||
|
charts->items().push_back (elem);
|
||||||
|
}
|
||||||
|
return charts;
|
||||||
|
}
|
||||||
|
|
||||||
Gtk::Menu*
|
Gtk::Menu*
|
||||||
PluginSelector::create_by_creator_menu (ARDOUR::PluginInfoList& all_plugs)
|
PluginSelector::create_by_creator_menu (ARDOUR::PluginInfoList& all_plugs)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -182,6 +182,7 @@ private:
|
||||||
void plugin_status_changed ( ARDOUR::PluginType t, std::string unique_id, ARDOUR::PluginManager::PluginStatusType s );
|
void plugin_status_changed ( ARDOUR::PluginType t, std::string unique_id, ARDOUR::PluginManager::PluginStatusType s );
|
||||||
|
|
||||||
Gtk::Menu* create_favs_menu (ARDOUR::PluginInfoList&);
|
Gtk::Menu* create_favs_menu (ARDOUR::PluginInfoList&);
|
||||||
|
Gtk::Menu* create_charts_menu (ARDOUR::PluginInfoList&);
|
||||||
Gtk::Menu* create_by_creator_menu (ARDOUR::PluginInfoList&);
|
Gtk::Menu* create_by_creator_menu (ARDOUR::PluginInfoList&);
|
||||||
Gtk::Menu* create_by_tags_menu (ARDOUR::PluginInfoList&);
|
Gtk::Menu* create_by_tags_menu (ARDOUR::PluginInfoList&);
|
||||||
void build_plugin_menu ();
|
void build_plugin_menu ();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue