Add submenus for route group, playlist and automation to route context menu. Fixes...
authorCarl Hetherington <carl@carlh.net>
Wed, 11 Aug 2010 02:04:49 +0000 (02:04 +0000)
committerCarl Hetherington <carl@carlh.net>
Wed, 11 Aug 2010 02:04:49 +0000 (02:04 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@7594 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/route_time_axis.cc
gtk2_ardour/route_time_axis.h

index 7c7753ae31f7801fbb887964c15ca979b4143f3f..8f4d0cedbb83c4a5d541b50863cb54935735a9e5 100644 (file)
@@ -148,7 +148,7 @@ RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session* sess, boost::sh
        playlist_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));
        automation_button.signal_clicked().connect (sigc::mem_fun(*this, &RouteTimeAxisView::automation_click));
 
@@ -277,7 +277,7 @@ RouteTimeAxisView::post_construct ()
 }
 
 gint
-RouteTimeAxisView::edit_click (GdkEventButton *ev)
+RouteTimeAxisView::route_group_click (GdkEventButton *ev)
 {
        if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
                if (_route->route_group()) {
@@ -342,15 +342,7 @@ RouteTimeAxisView::take_name_changed (void *src)
 void
 RouteTimeAxisView::playlist_click ()
 {
-       // always build a new action menu
-
-       delete playlist_action_menu;
-
-       playlist_action_menu = new Menu;
-       playlist_action_menu->set_name ("ArdourContextMenu");
-
-       build_playlist_menu (playlist_action_menu);
-
+       build_playlist_menu ();
        conditionally_add_to_selection ();
        playlist_action_menu->popup (1, gtk_get_current_event_time());
 }
@@ -546,6 +538,17 @@ RouteTimeAxisView::build_display_menu ()
                }
 
                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)));
@@ -1402,21 +1405,24 @@ struct PlaylistSorter {
 };
 
 void
-RouteTimeAxisView::build_playlist_menu (Gtk::Menu * menu)
+RouteTimeAxisView::build_playlist_menu ()
 {
        using namespace Menu_Helpers;
 
-       if (!menu || !is_track()) {
+       if (!is_track()) {
                return;
        }
 
-       MenuList& playlist_items = menu->items();
-       menu->set_name ("ArdourContextMenu");
+       delete playlist_action_menu;
+       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();
 
        delete playlist_menu;
 
-
         vector<boost::shared_ptr<Playlist> > playlists, playlists_tr;
        boost::shared_ptr<Track> tr = track();
        RadioMenuItem::Group playlist_group;
index 7d65fcc69aff9110c22b3dbb86b3933442ea41dd..840b18ed143dd4e6d9b81b1027eeca7a43fab221 100644 (file)
@@ -105,8 +105,7 @@ public:
        /* group playlist name resolving */
        std::string resolve_new_group_playlist_name(std::string &, std::vector<boost::shared_ptr<ARDOUR::Playlist> > const &);
 
-
-       void build_playlist_menu (Gtk::Menu *);
+       void build_playlist_menu ();
 
        void add_underlay (StreamView*, bool update_xml = true);
        void remove_underlay (StreamView*);
@@ -172,7 +171,7 @@ protected:
 
        void update_diskstream_display ();
 
-       gint edit_click  (GdkEventButton *);
+       gint route_group_click  (GdkEventButton *);
 
        void processors_changed (ARDOUR::RouteProcessorChange);