mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 06:44:57 +01:00
Follow Edits => Follow Range
* "Follow Edits" button had several behaviors that confused users. * "Follow Range" only has 2 behaviors: ** Click anywhere in Range mode (or Smart mode) to locate the playhead. ** When you select a Range, "Play" will play the selected range.
This commit is contained in:
parent
267dd5edd9
commit
628c99d555
8 changed files with 14 additions and 38 deletions
|
|
@ -85,7 +85,7 @@ ARDOUR_UI::setup_tooltips ()
|
|||
set_tip (auto_loop_button, _("Play loop range"));
|
||||
set_tip (midi_panic_button, _("MIDI Panic\nSend note off and reset controller messages on all MIDI channels"));
|
||||
set_tip (auto_return_button, _("Return to last playback start when stopped"));
|
||||
set_tip (follow_edits_button, _("Playhead follows range selections and edits"));
|
||||
set_tip (follow_edits_button, _("Playhead follows Range tool clicks, and Range selections"));
|
||||
set_tip (auto_input_button, _("Be sensible about input monitoring"));
|
||||
set_tip (click_button, _("Enable/Disable audio click"));
|
||||
set_tip (solo_alert_button, _("When active, something is soloed.\nClick to de-solo everything"));
|
||||
|
|
@ -342,7 +342,7 @@ ARDOUR_UI::setup_transport ()
|
|||
|
||||
/* and widget text */
|
||||
auto_return_button.set_text(_("Auto Return"));
|
||||
follow_edits_button.set_text(_("Follow Edits"));
|
||||
follow_edits_button.set_text(_("Follow Range"));
|
||||
//auto_input_button.set_text (_("Auto Input"));
|
||||
punch_in_button.set_text (_("In"));
|
||||
punch_out_button.set_text (_("Out"));
|
||||
|
|
|
|||
|
|
@ -524,7 +524,7 @@ ARDOUR_UI::install_actions ()
|
|||
act = global_actions.register_toggle_action (transport_actions, X_("ToggleAutoReturn"), _("Auto Return"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_auto_return));
|
||||
ActionManager::session_sensitive_actions.push_back (act);
|
||||
ActionManager::transport_sensitive_actions.push_back (act);
|
||||
act = global_actions.register_toggle_action (transport_actions, X_("ToggleFollowEdits"), _("Follow Edits"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_follow_edits));
|
||||
act = global_actions.register_toggle_action (transport_actions, X_("ToggleFollowEdits"), _("Follow Range"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_follow_edits));
|
||||
ActionManager::session_sensitive_actions.push_back (act);
|
||||
ActionManager::transport_sensitive_actions.push_back (act);
|
||||
|
||||
|
|
|
|||
|
|
@ -393,7 +393,6 @@ Editor::Editor ()
|
|||
, _all_region_actions_sensitized (false)
|
||||
, _ignore_region_action (false)
|
||||
, _last_region_menu_was_main (false)
|
||||
, _ignore_follow_edits (false)
|
||||
, cd_marker_bar_drag_rect (0)
|
||||
, range_bar_drag_rect (0)
|
||||
, transport_bar_drag_rect (0)
|
||||
|
|
@ -834,8 +833,6 @@ Editor::Editor ()
|
|||
_last_region_menu_was_main = false;
|
||||
_popup_region_menu_item = 0;
|
||||
|
||||
_ignore_follow_edits = false;
|
||||
|
||||
_show_marker_lines = false;
|
||||
|
||||
/* Button bindings */
|
||||
|
|
|
|||
|
|
@ -1850,8 +1850,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
|||
void point_selection_changed ();
|
||||
void marker_selection_changed ();
|
||||
|
||||
bool _ignore_follow_edits;
|
||||
|
||||
void cancel_selection ();
|
||||
void cancel_time_selection ();
|
||||
|
||||
|
|
|
|||
|
|
@ -532,7 +532,6 @@ Editor::canvas_fade_in_handle_event (GdkEvent *event, ArdourCanvas::Item* item,
|
|||
|
||||
case GDK_BUTTON_RELEASE:
|
||||
ret = button_release_handler (item, event, trim ? FadeInTrimHandleItem : FadeInHandleItem);
|
||||
maybe_locate_with_edit_preroll ( rv->region()->position() );
|
||||
break;
|
||||
|
||||
case GDK_MOTION_NOTIFY:
|
||||
|
|
@ -616,7 +615,6 @@ Editor::canvas_fade_out_handle_event (GdkEvent *event, ArdourCanvas::Item* item,
|
|||
|
||||
case GDK_BUTTON_RELEASE:
|
||||
ret = button_release_handler (item, event, trim ? FadeOutTrimHandleItem : FadeOutHandleItem);
|
||||
maybe_locate_with_edit_preroll ( rv->region()->last_frame() - rv->get_fade_out_shape_width() );
|
||||
break;
|
||||
|
||||
case GDK_MOTION_NOTIFY:
|
||||
|
|
|
|||
|
|
@ -1421,8 +1421,6 @@ RegionMoveDrag::finished (GdkEvent* ev, bool movement_occurred)
|
|||
);
|
||||
|
||||
}
|
||||
|
||||
_editor->maybe_locate_with_edit_preroll (_editor->get_selection().regions.start());
|
||||
}
|
||||
|
||||
RouteTimeAxisView*
|
||||
|
|
@ -3121,18 +3119,6 @@ TrimDrag::finished (GdkEvent* event, bool movement_occurred)
|
|||
}
|
||||
}
|
||||
|
||||
if (!_views.empty()) {
|
||||
if (_operation == StartTrim) {
|
||||
_editor->maybe_locate_with_edit_preroll(
|
||||
_views.begin()->view->region()->position());
|
||||
}
|
||||
if (_operation == EndTrim) {
|
||||
_editor->maybe_locate_with_edit_preroll(
|
||||
_views.begin()->view->region()->position() +
|
||||
_views.begin()->view->region()->length());
|
||||
}
|
||||
}
|
||||
|
||||
if (!_editor->selection->selected (_primary)) {
|
||||
_primary->thaw_after_trim ();
|
||||
} else {
|
||||
|
|
@ -5323,10 +5309,7 @@ SelectionDrag::finished (GdkEvent* event, bool movement_occurred)
|
|||
s->request_play_range (&_editor->selection->time, true);
|
||||
} else if (!s->config.get_external_sync()) {
|
||||
if (UIConfiguration::instance().get_follow_edits() && !s->transport_rolling()) {
|
||||
if (_operation == SelectionEndTrim)
|
||||
_editor->maybe_locate_with_edit_preroll( _editor->get_selection().time.end_frame());
|
||||
else
|
||||
s->request_locate (_editor->get_selection().time.start());
|
||||
s->request_locate (_editor->get_selection().time.start());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2551,6 +2551,10 @@ Editor::update_join_object_range_location (double y)
|
|||
|
||||
if (entered_regionview) {
|
||||
|
||||
//ToDo: there is currently a bug here(?)
|
||||
//when we are inside a region fade handle, it acts as though we are in range mode because it is in the top half of the region
|
||||
//can it be fixed here?
|
||||
|
||||
ArdourCanvas::Duple const item_space = entered_regionview->get_canvas_group()->canvas_to_item (ArdourCanvas::Duple (0, y));
|
||||
double const c = item_space.y / entered_regionview->height();
|
||||
|
||||
|
|
|
|||
|
|
@ -278,7 +278,6 @@ Editor::split_regions_at (framepos_t where, RegionSelection& regions, const int3
|
|||
if (working_on_selection) {
|
||||
// IFF we were working on selected regions, try to reinstate the other region selections that existed before the freeze/thaw.
|
||||
|
||||
_ignore_follow_edits = true; // a split will change the region selection in mysterious ways; it's not practical or wanted to follow this edit
|
||||
RegionSelectionAfterSplit rsas = Config->get_region_selection_after_split();
|
||||
/* There are three classes of regions that we might want selected after
|
||||
splitting selected regions:
|
||||
|
|
@ -305,13 +304,10 @@ Editor::split_regions_at (framepos_t where, RegionSelection& regions, const int3
|
|||
}
|
||||
}
|
||||
}
|
||||
_ignore_follow_edits = false;
|
||||
} else {
|
||||
_ignore_follow_edits = true;
|
||||
if( working_on_selection ) {
|
||||
selection->add (latest_regionviews); //these are the new regions created after the split
|
||||
}
|
||||
_ignore_follow_edits = false;
|
||||
}
|
||||
|
||||
commit_reversible_command ();
|
||||
|
|
@ -2610,7 +2606,7 @@ Editor::get_preroll ()
|
|||
void
|
||||
Editor::maybe_locate_with_edit_preroll ( framepos_t location )
|
||||
{
|
||||
if ( _session->transport_rolling() || !UIConfiguration::instance().get_follow_edits() || _ignore_follow_edits || _session->config.get_external_sync() )
|
||||
if ( _session->transport_rolling() || !UIConfiguration::instance().get_follow_edits() || _session->config.get_external_sync() )
|
||||
return;
|
||||
|
||||
location -= get_preroll();
|
||||
|
|
@ -3683,10 +3679,8 @@ Editor::trim_region (bool front)
|
|||
|
||||
if (front) {
|
||||
(*i)->region()->trim_front (where);
|
||||
maybe_locate_with_edit_preroll ( where );
|
||||
} else {
|
||||
(*i)->region()->trim_end (where);
|
||||
maybe_locate_with_edit_preroll ( where );
|
||||
}
|
||||
|
||||
_session->add_command (new StatefulDiffCommand ((*i)->region()));
|
||||
|
|
@ -6195,9 +6189,11 @@ Editor::set_playhead_cursor ()
|
|||
}
|
||||
}
|
||||
|
||||
if (UIConfiguration::instance().get_follow_edits() && (!_session || !_session->config.get_external_sync())) {
|
||||
cancel_time_selection();
|
||||
}
|
||||
//not sure what this was for; remove it for now.
|
||||
// if (UIConfiguration::instance().get_follow_edits() && (!_session || !_session->config.get_external_sync())) {
|
||||
// cancel_time_selection();
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue