add interview mode to preferences and fix up implementation

This commit is contained in:
Paul Davis 2022-01-24 11:29:23 -07:00
parent 8a310a748a
commit 4c433106a4
3 changed files with 17 additions and 3 deletions

View File

@ -5704,7 +5704,7 @@ SelectionDrag::motion (GdkEvent* event, bool first_move)
}
if (first_move) {
if (Config->get_edit_mode() == RippleAll && Config->get_interview_editing()) {
if (Config->get_edit_mode() == RippleAll && !Config->get_interview_editing()) {
_editor->selection->set (_editor->get_track_views());
}
_track_selection_at_start = _editor->selection->tracks;
@ -5771,7 +5771,7 @@ SelectionDrag::motion (GdkEvent* event, bool first_move)
ArdourCanvas::Coord const top = grab_y();
ArdourCanvas::Coord const bottom = current_pointer_y();
if ((Config->get_edit_mode() != RippleAll) && top >= 0 && bottom >= 0) {
if ((Config->get_edit_mode() != RippleAll || Config->get_interview_editing()) && top >= 0 && bottom >= 0) {
//first, find the tracks that are covered in the y range selection
for (TrackViewList::const_iterator i = all_tracks.begin(); i != all_tracks.end(); ++i) {

View File

@ -9309,7 +9309,7 @@ bool
Editor::should_ripple () const
{
return (Config->get_edit_mode() == Ripple ||
Config->get_edit_mode() == RippleAll);
(Config->get_edit_mode() == RippleAll && (selection->tracks.size() > 1 || !Config->get_interview_editing())));
}
void

View File

@ -3234,6 +3234,20 @@ These settings will only take effect after %1 is restarted.\n\
lm->add (Manual, _("manual layering"));
add_option (_("Editor"), lm);
bo = new BoolOption (
"interview-editing",
_("Improve editing behavior for editing multi-track voice interviews"),
sigc::mem_fun (*_rc_config, &RCConfiguration::get_interview_editing),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_interview_editing)
);
add_option (_("Editor"), bo);
Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
_("<b>When enabled</b>, range selection while in Ripple All will not propagate across all tracks.\n"
"<b>When disabled</b>, range selection while in Ripple All will propagate across all tracks.\n"
"This setting only has effect when in Ripple All mode.")
);
add_option (_("Editor"), new OptionEditorHeading (_("Split/Separate")));
ComboOption<RangeSelectionAfterSplit> *rras = new ComboOption<RangeSelectionAfterSplit> (