summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-12-27 18:17:45 +0100
committerRobin Gareus <robin@gareus.org>2015-12-27 18:17:45 +0100
commit47922c5d19736c3d1fc8eeee7ca8a83561ac268b (patch)
tree6cdaa4fa5c1e1c36c7c5df110040c49eaf4cb02f
parent9b7352f35f1e8755415635f775ef32f07f85a1b4 (diff)
add "remove from favorites" context menu
-rw-r--r--gtk2_ardour/mixer_ui.cc43
-rw-r--r--gtk2_ardour/mixer_ui.h1
2 files changed, 33 insertions, 11 deletions
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index 822363c1a8..7bbfb843c6 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -2343,18 +2343,19 @@ Mixer_UI::popup_note_context_menu (GdkEventButton *ev)
if (_selection.routes.empty()) {
items.push_back (MenuElem (_("No Track/Bus is selected.")));
- m->popup (ev->button, ev->time);
- return;
- }
+ } else {
- items.push_back (MenuElem (_("Add at the top"),
- sigc::bind (sigc::mem_fun (*this, &Mixer_UI::add_selected_processor), AddTop)));
- items.push_back (MenuElem (_("Add Pre-Fader"),
- sigc::bind (sigc::mem_fun (*this, &Mixer_UI::add_selected_processor), AddPreFader)));
- items.push_back (MenuElem (_("Add Post-Fader"),
- sigc::bind (sigc::mem_fun (*this, &Mixer_UI::add_selected_processor), AddPostFader)));
- items.push_back (MenuElem (_("Add at the end"),
- sigc::bind (sigc::mem_fun (*this, &Mixer_UI::add_selected_processor), AddBottom)));
+ items.push_back (MenuElem (_("Add at the top"),
+ sigc::bind (sigc::mem_fun (*this, &Mixer_UI::add_selected_processor), AddTop)));
+ items.push_back (MenuElem (_("Add Pre-Fader"),
+ sigc::bind (sigc::mem_fun (*this, &Mixer_UI::add_selected_processor), AddPreFader)));
+ items.push_back (MenuElem (_("Add Post-Fader"),
+ sigc::bind (sigc::mem_fun (*this, &Mixer_UI::add_selected_processor), AddPostFader)));
+ items.push_back (MenuElem (_("Add at the end"),
+ sigc::bind (sigc::mem_fun (*this, &Mixer_UI::add_selected_processor), AddBottom)));
+ }
+ items.push_back (SeparatorElem());
+ items.push_back (MenuElem (_("Remove from favorites"), sigc::mem_fun (*this, &Mixer_UI::remove_selected_from_favorites)));
m->popup (ev->button, ev->time);
}
@@ -2383,6 +2384,26 @@ Mixer_UI::add_selected_processor (ProcessorPosition pos)
}
void
+Mixer_UI::remove_selected_from_favorites ()
+{
+ Glib::RefPtr<Gtk::TreeView::Selection> selection = favorite_plugins_display.get_selection();
+ if (!selection) {
+ return;
+ }
+ Gtk::TreeModel::iterator iter = selection->get_selected();
+ if (!iter) {
+ return;
+ }
+ ARDOUR::PluginPresetPtr ppp = (*iter)[favorite_plugins_columns.plugin];
+ PluginManager::PluginStatusType status = PluginManager::Normal;
+ PluginManager& manager (PluginManager::instance());
+
+ manager.set_status (ppp->_pip->type, ppp->_pip->unique_id, status);
+ manager.save_statuses ();
+ sync_treeview_from_favorite_order ();
+}
+
+void
Mixer_UI::plugin_row_activated (const TreeModel::Path& path, TreeViewColumn* column)
{
TreeIter iter;
diff --git a/gtk2_ardour/mixer_ui.h b/gtk2_ardour/mixer_ui.h
index 5399307be6..492ecd3a14 100644
--- a/gtk2_ardour/mixer_ui.h
+++ b/gtk2_ardour/mixer_ui.h
@@ -211,6 +211,7 @@ class Mixer_UI : public Gtk::Window, public PBD::ScopedConnectionList, public AR
void add_selected_processor (ProcessorPosition);
void add_favorite_processor (ARDOUR::PluginPresetPtr, ProcessorPosition);
+ void remove_selected_from_favorites ();
void initial_track_display ();
void show_track_list_menu ();