Add submenus for route group, playlist and automation to route context menu. Fixes #618.
git-svn-id: svn://localhost/ardour2/branches/3.0@7594 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
12aa01660a
commit
3d3d6feaa4
@ -148,7 +148,7 @@ RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session* sess, boost::sh
|
|||||||
playlist_button.unset_flags (Gtk::CAN_FOCUS);
|
playlist_button.unset_flags (Gtk::CAN_FOCUS);
|
||||||
automation_button.unset_flags (Gtk::CAN_FOCUS);
|
automation_button.unset_flags (Gtk::CAN_FOCUS);
|
||||||
|
|
||||||
route_group_button.signal_button_release_event().connect (sigc::mem_fun(*this, &RouteTimeAxisView::edit_click), false);
|
route_group_button.signal_button_release_event().connect (sigc::mem_fun(*this, &RouteTimeAxisView::route_group_click), false);
|
||||||
playlist_button.signal_clicked().connect (sigc::mem_fun(*this, &RouteTimeAxisView::playlist_click));
|
playlist_button.signal_clicked().connect (sigc::mem_fun(*this, &RouteTimeAxisView::playlist_click));
|
||||||
automation_button.signal_clicked().connect (sigc::mem_fun(*this, &RouteTimeAxisView::automation_click));
|
automation_button.signal_clicked().connect (sigc::mem_fun(*this, &RouteTimeAxisView::automation_click));
|
||||||
|
|
||||||
@ -277,7 +277,7 @@ RouteTimeAxisView::post_construct ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
gint
|
gint
|
||||||
RouteTimeAxisView::edit_click (GdkEventButton *ev)
|
RouteTimeAxisView::route_group_click (GdkEventButton *ev)
|
||||||
{
|
{
|
||||||
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
|
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
|
||||||
if (_route->route_group()) {
|
if (_route->route_group()) {
|
||||||
@ -342,15 +342,7 @@ RouteTimeAxisView::take_name_changed (void *src)
|
|||||||
void
|
void
|
||||||
RouteTimeAxisView::playlist_click ()
|
RouteTimeAxisView::playlist_click ()
|
||||||
{
|
{
|
||||||
// always build a new action menu
|
build_playlist_menu ();
|
||||||
|
|
||||||
delete playlist_action_menu;
|
|
||||||
|
|
||||||
playlist_action_menu = new Menu;
|
|
||||||
playlist_action_menu->set_name ("ArdourContextMenu");
|
|
||||||
|
|
||||||
build_playlist_menu (playlist_action_menu);
|
|
||||||
|
|
||||||
conditionally_add_to_selection ();
|
conditionally_add_to_selection ();
|
||||||
playlist_action_menu->popup (1, gtk_get_current_event_time());
|
playlist_action_menu->popup (1, gtk_get_current_event_time());
|
||||||
}
|
}
|
||||||
@ -546,6 +538,17 @@ RouteTimeAxisView::build_display_menu ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
items.push_back (SeparatorElem());
|
items.push_back (SeparatorElem());
|
||||||
|
|
||||||
|
build_playlist_menu ();
|
||||||
|
items.push_back (MenuElem (_("Playlist"), *playlist_action_menu));
|
||||||
|
|
||||||
|
route_group_menu->rebuild (_route->route_group ());
|
||||||
|
items.push_back (MenuElem (_("Route Group"), *route_group_menu));
|
||||||
|
|
||||||
|
build_automation_action_menu ();
|
||||||
|
items.push_back (MenuElem (_("Automation"), *automation_action_menu));
|
||||||
|
|
||||||
|
items.push_back (SeparatorElem());
|
||||||
}
|
}
|
||||||
|
|
||||||
items.push_back (CheckMenuElem (_("Active"), sigc::mem_fun(*this, &RouteUI::toggle_route_active)));
|
items.push_back (CheckMenuElem (_("Active"), sigc::mem_fun(*this, &RouteUI::toggle_route_active)));
|
||||||
@ -1402,21 +1405,24 @@ struct PlaylistSorter {
|
|||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
RouteTimeAxisView::build_playlist_menu (Gtk::Menu * menu)
|
RouteTimeAxisView::build_playlist_menu ()
|
||||||
{
|
{
|
||||||
using namespace Menu_Helpers;
|
using namespace Menu_Helpers;
|
||||||
|
|
||||||
if (!menu || !is_track()) {
|
if (!is_track()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuList& playlist_items = menu->items();
|
delete playlist_action_menu;
|
||||||
menu->set_name ("ArdourContextMenu");
|
playlist_action_menu = new Menu;
|
||||||
|
playlist_action_menu->set_name ("ArdourContextMenu");
|
||||||
|
|
||||||
|
MenuList& playlist_items = playlist_action_menu->items();
|
||||||
|
playlist_action_menu->set_name ("ArdourContextMenu");
|
||||||
playlist_items.clear();
|
playlist_items.clear();
|
||||||
|
|
||||||
delete playlist_menu;
|
delete playlist_menu;
|
||||||
|
|
||||||
|
|
||||||
vector<boost::shared_ptr<Playlist> > playlists, playlists_tr;
|
vector<boost::shared_ptr<Playlist> > playlists, playlists_tr;
|
||||||
boost::shared_ptr<Track> tr = track();
|
boost::shared_ptr<Track> tr = track();
|
||||||
RadioMenuItem::Group playlist_group;
|
RadioMenuItem::Group playlist_group;
|
||||||
|
@ -105,8 +105,7 @@ public:
|
|||||||
/* group playlist name resolving */
|
/* group playlist name resolving */
|
||||||
std::string resolve_new_group_playlist_name(std::string &, std::vector<boost::shared_ptr<ARDOUR::Playlist> > const &);
|
std::string resolve_new_group_playlist_name(std::string &, std::vector<boost::shared_ptr<ARDOUR::Playlist> > const &);
|
||||||
|
|
||||||
|
void build_playlist_menu ();
|
||||||
void build_playlist_menu (Gtk::Menu *);
|
|
||||||
|
|
||||||
void add_underlay (StreamView*, bool update_xml = true);
|
void add_underlay (StreamView*, bool update_xml = true);
|
||||||
void remove_underlay (StreamView*);
|
void remove_underlay (StreamView*);
|
||||||
@ -172,7 +171,7 @@ protected:
|
|||||||
|
|
||||||
void update_diskstream_display ();
|
void update_diskstream_display ();
|
||||||
|
|
||||||
gint edit_click (GdkEventButton *);
|
gint route_group_click (GdkEventButton *);
|
||||||
|
|
||||||
void processors_changed (ARDOUR::RouteProcessorChange);
|
void processors_changed (ARDOUR::RouteProcessorChange);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user