Add option to insert time to move glued / locked markers. Fixes #3393.

git-svn-id: svn://localhost/ardour2/branches/3.0@7604 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2010-08-11 23:41:26 +00:00
parent 636efaabc4
commit 1e2fc9dcc0
4 changed files with 62 additions and 8 deletions

View file

@ -6500,12 +6500,21 @@ Editor::do_insert_time ()
InsertTimeOption opt = d.intersected_region_action ();
insert_time (get_preferred_edit_position(), d.distance(), opt, d.move_glued(), d.move_markers(), d.move_tempos());
insert_time (
get_preferred_edit_position(),
d.distance(),
opt,
d.move_glued(),
d.move_markers(),
d.move_glued_markers(),
d.move_locked_markers(),
d.move_tempos()
);
}
void
Editor::insert_time (nframes64_t pos, nframes64_t frames, InsertTimeOption opt,
bool ignore_music_glue, bool markers_too, bool tempo_too)
bool ignore_music_glue, bool markers_too, bool glued_markers_too, bool locked_markers_too, bool tempo_too)
{
bool commit = false;
@ -6560,12 +6569,25 @@ Editor::insert_time (nframes64_t pos, nframes64_t frames, InsertTimeOption opt,
Locations::LocationList::const_iterator tmp;
if ((*i)->start() >= pos) {
(*i)->set_start ((*i)->start() + frames);
if (!(*i)->is_mark()) {
(*i)->set_end ((*i)->end() + frames);
bool const was_locked = (*i)->locked ();
if (locked_markers_too) {
(*i)->unlock ();
}
if ((*i)->position_lock_style() == AudioTime || glued_markers_too) {
if ((*i)->start() >= pos) {
(*i)->set_start ((*i)->start() + frames);
if (!(*i)->is_mark()) {
(*i)->set_end ((*i)->end() + frames);
}
moved = true;
}
moved = true;
}
if (was_locked) {
(*i)->lock ();
}
}