Compare commits

...

5 commits

Author SHA1 Message Date
Paul Davis
4c433106a4 add interview mode to preferences and fix up implementation 2022-01-24 11:29:36 -07:00
Paul Davis
8a310a748a add new config variable for interview-editing
If enabled, this prevents range-selection from propagating across
all tracks when RippleAll is set
2022-01-24 11:29:36 -07:00
Robin Gareus
b6b9d9231b
Trigger page, slot property layout hacks
The layout should eventually really be simplified.
Use a HBox, remove nested tables, get rid of tables with only
one Frame inside. etc.
2022-01-24 19:28:58 +01:00
Robin Gareus
5b5d8e72f1
Tweak TB layout: same height for all slot-property frames 2022-01-24 18:53:58 +01:00
Robin Gareus
9b224a79d4
Mixbus prefers stereo-tracks when importing files as triggers 2022-01-24 18:52:51 +01:00
8 changed files with 32 additions and 10 deletions

View file

@ -128,7 +128,7 @@ AudioTriggerPropertiesBox::AudioTriggerPropertiesBox ()
_table.set_spacings (4);
_table.set_border_width (2);
attach (*eTempoBox, 0,1, 0,1, Gtk::FILL, Gtk::SHRINK);
attach (*eTempoBox, 0,1, 0,1, Gtk::FILL, Gtk::EXPAND | Gtk::FILL);
#if 0
attach (_table, 0,1, 1,2, Gtk::FILL, Gtk::SHRINK);
#endif

View file

@ -963,6 +963,13 @@ Editor::add_sources (vector<string> paths,
}
}
#ifdef MIXBUS
if (mode == ImportAsTrigger) {
/* Mixbus will only ever use stereo tracks when using DnD to import to triggers */
input_chan = 2;
}
#endif
if (Config->get_output_auto_connect() & AutoConnectMaster) {
output_chan = (_session->master_out() ? _session->master_out()->n_inputs().n_audio() : input_chan);
} else {

View file

@ -5704,7 +5704,7 @@ SelectionDrag::motion (GdkEvent* event, bool first_move)
}
if (first_move) {
if (Config->get_edit_mode() == RippleAll) {
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> (

View file

@ -345,9 +345,9 @@ SlotPropertyTable::SlotPropertyTable ()
eLaunchBox->set_edge_color (0x000000ff); // black
eLaunchBox->add (_launch_table);
attach(*trigBox, 0,1, 0,1, Gtk::FILL, Gtk::SHRINK );
attach(*eLaunchBox, 1,2, 0,1, Gtk::FILL, Gtk::SHRINK );
attach(*eFollowBox, 2,3, 0,1, Gtk::FILL, Gtk::SHRINK );
attach(*trigBox, 0,1, 0,1, Gtk::FILL, Gtk::SHRINK | Gtk::FILL);
attach(*eLaunchBox, 1,2, 0,1, Gtk::FILL, Gtk::SHRINK | Gtk::FILL);
attach(*eFollowBox, 2,3, 0,1, Gtk::FILL, Gtk::SHRINK | Gtk::FILL);
}
SlotPropertyTable::~SlotPropertyTable ()

View file

@ -142,13 +142,13 @@ TriggerPage::TriggerPage ()
table->set_border_width (8);
int col = 0;
table->attach (_slot_prop_box, col, col + 1, 0, 1, Gtk::FILL, Gtk::SHRINK);
table->attach (_slot_prop_box, col, col + 1, 0, 1, Gtk::FILL, Gtk::SHRINK | Gtk::FILL);
col = 1;
table->attach (_audio_trig_box, col, col + 1, 0, 1, Gtk::FILL, Gtk::SHRINK);
table->attach (_audio_trig_box, col, col + 1, 0, 1, Gtk::FILL, Gtk::SHRINK | Gtk::FILL);
++col;
#if MIDI_PROPERTIES_BOX_IMPLEMENTED
#ifdef MIDI_PROPERTIES_BOX_IMPLEMENTED
col = 2;
table->attach (_midi_trig_box, col, col + 1, 0, 1, Gtk::FILL, Gtk::SHRINK);
++col;

View file

@ -113,6 +113,7 @@ CONFIG_VARIABLE (bool, region_boundaries_from_onscreen_tracks, "region-boundarie
CONFIG_VARIABLE (FadeShape, default_fade_shape, "default-fade-shape", FadeConstantPower)
CONFIG_VARIABLE (RangeSelectionAfterSplit, range_selection_after_split, "range-selection-after-split", PreserveSel)
CONFIG_VARIABLE (RegionSelectionAfterSplit, region_selection_after_split, "region-selection-after-split", None)
CONFIG_VARIABLE (bool, interview_editing, "interview-editing", false)
/* monitoring, mute, solo etc */