diff --git a/gtk2_ardour/application_bar.cc b/gtk2_ardour/application_bar.cc index f489858f15..282e439c50 100644 --- a/gtk2_ardour/application_bar.cc +++ b/gtk2_ardour/application_bar.cc @@ -115,7 +115,6 @@ ApplicationBar::ApplicationBar () , _basic_ui (0) , _latency_disable_button (ArdourButton::led_default_elements) , _auto_return_button (ArdourButton::led_default_elements) - , _follow_edits_button (ArdourButton::led_default_elements) , _primary_clock (X_("primary"), X_("transport"), MainClock::PrimaryClock) , _secondary_clock (X_("secondary"), X_("secondary"), MainClock::SecondaryClock) , _secondary_clock_spacer (0) @@ -179,7 +178,6 @@ ApplicationBar::on_parent_changed (Gtk::Widget*) _latency_disable_button.set_text (_("Disable PDC")); _auto_return_button.set_text(_("Auto Return")); - _follow_edits_button.set_text(_("Follow Range")); /* alert box sub-group */ VBox* alert_box = manage (new VBox); @@ -243,7 +241,6 @@ ApplicationBar::on_parent_changed (Gtk::Widget*) _table.attach (_latency_spacer, TCOL, 0, 2 , SHRINK, EXPAND|FILL, 3, 0); ++col; - _table.attach (_follow_edits_button, TCOL, 0, 1 , FILL, SHRINK, hpadding, vpadding); _table.attach (_auto_return_button, TCOL, 1, 2 , FILL, SHRINK, hpadding, vpadding); ++col; @@ -319,7 +316,6 @@ ApplicationBar::on_parent_changed (Gtk::Widget*) button_height_size_group->add_widget (_punch_out_button); button_height_size_group->add_widget (_record_mode_selector); button_height_size_group->add_widget (_latency_disable_button); - button_height_size_group->add_widget (_follow_edits_button); button_height_size_group->add_widget (_auto_return_button); for (int i = 0; i < MAX_LUA_ACTION_BUTTONS; ++i) { @@ -367,7 +363,6 @@ ApplicationBar::on_parent_changed (Gtk::Widget*) _record_mode_selector.set_name ("record mode button"); _latency_disable_button.set_name ("latency button"); _auto_return_button.set_name ("transport option button"); - _follow_edits_button.set_name ("transport option button"); _solo_alert_button.set_name ("rude solo"); _auditioning_alert_button.set_name ("rude audition"); _feedback_alert_button.set_name ("feedback alert"); @@ -447,11 +442,8 @@ ApplicationBar::ui_actions_ready () act = ActionManager::get_action ("Transport", "ToggleAutoReturn"); _auto_return_button.set_related_action (act); - act = ActionManager::get_action (X_("Transport"), X_("ToggleFollowEdits")); - _follow_edits_button.set_related_action (act); _auto_return_button.set_text(_("Auto Return")); - _follow_edits_button.set_text(_("Follow Range")); /* CANNOT sigc::bind these to clicked or toggled, must use pressed or released */ act = ActionManager::get_action (X_("Main"), X_("cancel-solo")); diff --git a/gtk2_ardour/application_bar.h b/gtk2_ardour/application_bar.h index 26c2be8e65..4422019296 100644 --- a/gtk2_ardour/application_bar.h +++ b/gtk2_ardour/application_bar.h @@ -132,7 +132,6 @@ private: ArdourWidgets::ArdourButton _latency_disable_button; Gtk::Label _route_latency_value; ArdourWidgets::ArdourButton _auto_return_button; - ArdourWidgets::ArdourButton _follow_edits_button; TransportClock _primary_clock; TransportClock _secondary_clock; ArdourWidgets::ArdourVSpacer* _secondary_clock_spacer; diff --git a/gtk2_ardour/editing_context.cc b/gtk2_ardour/editing_context.cc index 5b1ab8c702..d407895e99 100644 --- a/gtk2_ardour/editing_context.cc +++ b/gtk2_ardour/editing_context.cc @@ -124,6 +124,7 @@ EditingContext::EditingContext (std::string const & name) , _timeline_origin (0.) , play_note_selection_button (ArdourButton::default_elements) , follow_playhead_button (ArdourButton::default_elements, true) + , follow_edits_button (_("Follow Range"), ArdourButton::Element (ArdourButton::Edge | ArdourButton::Body | ArdourButton::VectorIcon), true) , visible_channel_label (_("MIDI Channel")) , _drags (new DragManager (this)) , _leftmost_sample (0) @@ -206,6 +207,7 @@ EditingContext::EditingContext (std::string const & name) set_tooltip (play_note_selection_button, _("Play notes when selected")); set_tooltip (note_mode_button, _("Switch between sustained and percussive mode")); set_tooltip (follow_playhead_button, _("Scroll automatically to keep playhead visible")); + set_tooltip (follow_edits_button, _("Playhead follows Range tool clicks, and Range selections")); /* Leave tip for full zoom button to derived class */ set_tooltip (visible_channel_selector, _("Select visible MIDI channel")); @@ -215,6 +217,7 @@ EditingContext::EditingContext (std::string const & name) full_zoom_button.signal_clicked.connect (sigc::mem_fun (*this, &EditingContext::full_zoom_clicked)); follow_playhead_button.set_icon (ArdourIcon::EditorFollowPlayhead); + follow_edits_button.set_icon (ArdourIcon::EditorFollowEdits); zoom_in_button.set_name ("zoom button"); zoom_in_button.set_icon (ArdourIcon::ZoomIn); @@ -225,6 +228,10 @@ EditingContext::EditingContext (std::string const & name) full_zoom_button.set_name ("zoom button"); full_zoom_button.set_icon (ArdourIcon::ZoomFull); + follow_edits_button.set_name ("transport option button"); + follow_playhead_button.set_icon (ArdourIcon::EditorFollowPlayhead); + follow_playhead_button.set_elements (ArdourButton::Element (ArdourButton::Edge | ArdourButton::Body | ArdourButton::VectorIcon)); + selection->PointsChanged.connect (sigc::mem_fun(*this, &EditingContext::point_selection_changed)); for (int i = 0; i < 16; i++) { @@ -2161,6 +2168,9 @@ EditingContext::bind_mouse_mode_buttons () act = ActionManager::get_action ((_name + X_("Editing")).c_str(), X_("temporal-zoom-out")); zoom_out_button.set_related_action (act); + act = ActionManager::get_action (X_("Transport"), X_("ToggleFollowEdits")); + follow_edits_button.set_related_action (act); + mouse_move_button.set_related_action (get_mouse_mode_action (Editing::MouseObject)); mouse_move_button.set_icon (ArdourWidgets::ArdourIcon::ToolGrab); mouse_move_button.set_name ("mouse mode button"); diff --git a/gtk2_ardour/editing_context.h b/gtk2_ardour/editing_context.h index 36ebfe6a73..d07be95c19 100644 --- a/gtk2_ardour/editing_context.h +++ b/gtk2_ardour/editing_context.h @@ -560,6 +560,7 @@ class EditingContext : public ARDOUR::SessionHandlePtr, public AxisViewProvider, ArdourWidgets::ArdourButton play_note_selection_button; ArdourWidgets::ArdourButton note_mode_button; ArdourWidgets::ArdourButton follow_playhead_button; + ArdourWidgets::ArdourButton follow_edits_button; ArdourWidgets::ArdourButton zoom_in_button; ArdourWidgets::ArdourButton zoom_out_button; diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 5599ef207d..3130db6f95 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -2724,6 +2724,8 @@ Editor::setup_toolbar () mouse_mode_size_group->add_widget (zoom_focus_selector); mouse_mode_size_group->add_widget (tav_shrink_button); mouse_mode_size_group->add_widget (tav_expand_button); + mouse_mode_size_group->add_widget (follow_playhead_button); + mouse_mode_size_group->add_widget (follow_edits_button); } else { mouse_mode_size_group->add_widget (zoom_preset_selector); mouse_mode_size_group->add_widget (visible_tracks_selector); @@ -2862,6 +2864,12 @@ Editor::setup_toolbar () pack_draw_box (); + HBox* follow_mode_hbox = manage (new HBox); + follow_mode_hbox->set_spacing (2); + follow_mode_hbox->set_border_width (2); + follow_mode_hbox->pack_start (follow_playhead_button, false, false); + follow_mode_hbox->pack_start (follow_edits_button, false, false); + /* Pack everything in... */ toolbar_hbox.set_spacing (2); @@ -2897,6 +2905,8 @@ Editor::setup_toolbar () toolbar_hbox.pack_end (_zoom_box, false, false, 2); toolbar_hbox.pack_end (*(manage (new ArdourVSpacer ())), false, false, 3); toolbar_hbox.pack_end (_track_box, false, false); + toolbar_hbox.pack_end (*(manage (new ArdourVSpacer ())), false, false, 3); + toolbar_hbox.pack_end (*follow_mode_hbox, false, false); toolbar_hbox.show_all (); }