Use "star" icon to indicate favorite plugin in plugin-selector

This commit is contained in:
Robin Gareus 2025-11-07 00:01:11 +01:00
parent 26ada8eb7d
commit 4d0fa60d47
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
3 changed files with 22 additions and 5 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 B

View file

@ -41,6 +41,7 @@
#include <ytkmm/table.h> #include <ytkmm/table.h>
#include <ytkmm/treestore.h> #include <ytkmm/treestore.h>
#include "gtkmm2ext/cell_renderer_pixbuf_multi.h"
#include "gtkmm2ext/utils.h" #include "gtkmm2ext/utils.h"
#include "widgets/tooltips.h" #include "widgets/tooltips.h"
@ -58,6 +59,7 @@
#include "plugin_utils.h" #include "plugin_utils.h"
#include "gui_thread.h" #include "gui_thread.h"
#include "ui_config.h" #include "ui_config.h"
#include "utils.h"
#include "pbd/i18n.h" #include "pbd/i18n.h"
@ -94,7 +96,26 @@ PluginSelector::PluginSelector (PluginManager& mgr)
plugin_model = Gtk::ListStore::create (plugin_columns); plugin_model = Gtk::ListStore::create (plugin_columns);
plugin_display.set_model (plugin_model); plugin_display.set_model (plugin_model);
plugin_display.append_column (S_("Favorite|Fav"), plugin_columns.favorite);
{
Gtkmm2ext::CellRendererPixbufMulti* cell;
Gtk::TreeViewColumn* tvc;
cell = manage (new Gtkmm2ext::CellRendererPixbufMulti ());
cell->signal_changed().connect (sigc::mem_fun (*this, &PluginSelector::favorite_changed));
cell->set_pixbuf (Gtkmm2ext::Off, ARDOUR_UI_UTILS::get_icon ("favorite-no"));
cell->set_pixbuf (Gtkmm2ext::ExplicitActive, ARDOUR_UI_UTILS::get_icon ("favorite-yes"));
tvc = manage (new Gtk::TreeViewColumn (S_("Favorite|Fav"), *cell));
tvc->add_attribute (cell->property_state (), plugin_columns.favorite);
tvc->set_sizing (Gtk::TREE_VIEW_COLUMN_AUTOSIZE);
tvc->set_alignment (Gtk::ALIGN_CENTER);
tvc->set_expand (false);
tvc->set_resizable (false);
plugin_display.append_column (*tvc);
}
plugin_display.append_column (_("Name"), plugin_columns.name); plugin_display.append_column (_("Name"), plugin_columns.name);
plugin_display.append_column (_("Tags"), plugin_columns.tags); plugin_display.append_column (_("Tags"), plugin_columns.tags);
plugin_display.append_column (_("Creator"), plugin_columns.creator); plugin_display.append_column (_("Creator"), plugin_columns.creator);
@ -115,10 +136,6 @@ PluginSelector::PluginSelector (PluginManager& mgr)
plugin_display.signal_row_activated().connect_notify (sigc::mem_fun(*this, &PluginSelector::row_activated)); plugin_display.signal_row_activated().connect_notify (sigc::mem_fun(*this, &PluginSelector::row_activated));
plugin_display.get_selection()->signal_changed().connect (sigc::mem_fun(*this, &PluginSelector::display_selection_changed)); plugin_display.get_selection()->signal_changed().connect (sigc::mem_fun(*this, &PluginSelector::display_selection_changed));
CellRendererToggle* fav_cell = dynamic_cast<CellRendererToggle*>(plugin_display.get_column_cell_renderer (0));
fav_cell->property_activatable() = true;
fav_cell->signal_toggled().connect (sigc::mem_fun (*this, &PluginSelector::favorite_changed));
scroller.set_border_width(10); scroller.set_border_width(10);
scroller.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); scroller.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
scroller.add(plugin_display); scroller.add(plugin_display);