13
0

Add option to glue new regions to bars and beats (#4202).

git-svn-id: svn://localhost/ardour2/branches/3.0@10821 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2011-11-24 19:33:13 +00:00
parent bfd3746be2
commit e355b5df27
5 changed files with 43 additions and 6 deletions

View File

@ -326,6 +326,13 @@ SessionOptionEditor::SessionOptionEditor (Session* s)
sigc::mem_fun (*_session_config, &SessionConfiguration::get_glue_new_markers_to_bars_and_beats),
sigc::mem_fun (*_session_config, &SessionConfiguration::set_glue_new_markers_to_bars_and_beats)
));
add_option (_("Misc"), new BoolOption (
"glue-new-regions-to-bars-and-beats",
_("Glue new regions to bars and beats"),
sigc::mem_fun (*_session_config, &SessionConfiguration::get_glue_new_regions_to_bars_and_beats),
sigc::mem_fun (*_session_config, &SessionConfiguration::set_glue_new_regions_to_bars_and_beats)
));
}
void

View File

@ -63,3 +63,4 @@ CONFIG_VARIABLE (framecnt_t, timecode_offset, "timecode-offset", 0)
CONFIG_VARIABLE (bool, timecode_offset_negative, "timecode-offset-negative", true)
CONFIG_VARIABLE (bool, glue_new_markers_to_bars_and_beats, "glue-new-markers-to-bars-and-beats", false)
CONFIG_VARIABLE (bool, midi_copy_is_fork, "midi-copy-is-fork", false)
CONFIG_VARIABLE (bool, glue_new_regions_to_bars_and_beats, "glue-new-regions-to-bars-and-beats", false)

View File

@ -317,7 +317,11 @@ AudioRegionImporter::prepare_region ()
}
// create region and update XML
region.push_back (RegionFactory::create (source_list, xml_region));
boost::shared_ptr<Region> r = RegionFactory::create (source_list, xml_region);
if (session.config.get_glue_new_regions_to_bars_and_beats ()) {
r->set_position_lock_style (MusicTime);
}
region.push_back (r);
if (*region.begin()) {
xml_region = (*region.begin())->get_state();
} else {

View File

@ -548,10 +548,6 @@ Region::set_position_lock_style (PositionLockStyle ps)
boost::shared_ptr<Playlist> pl (playlist());
if (!pl) {
return;
}
_position_lock_style = ps;
if (_position_lock_style == MusicTime) {
@ -559,7 +555,6 @@ Region::set_position_lock_style (PositionLockStyle ps)
}
send_change (Properties::position_lock_style);
}
}

View File

@ -73,6 +73,11 @@ RegionFactory::create (boost::shared_ptr<const Region> region, bool announce)
if (ret) {
ret->set_name (new_region_name(ret->name()));
if (ret->session().config.get_glue_new_regions_to_bars_and_beats ()) {
ret->set_position_lock_style (MusicTime);
}
map_add (ret);
/* pure copy constructor - no property list */
@ -111,6 +116,11 @@ RegionFactory::create (boost::shared_ptr<Region> region, const PropertyList& pli
if (ret) {
ret->apply_changes (plist);
if (ret->session().config.get_glue_new_regions_to_bars_and_beats ()) {
ret->set_position_lock_style (MusicTime);
}
map_add (ret);
if (announce) {
@ -148,6 +158,11 @@ RegionFactory::create (boost::shared_ptr<Region> region, frameoffset_t offset, c
if (ret) {
ret->apply_changes (plist);
if (ret->session().config.get_glue_new_regions_to_bars_and_beats ()) {
ret->set_position_lock_style (MusicTime);
}
map_add (ret);
if (announce) {
@ -185,6 +200,11 @@ RegionFactory::create (boost::shared_ptr<Region> region, const SourceList& srcs,
if (ret) {
ret->apply_changes (plist);
if (ret->session().config.get_glue_new_regions_to_bars_and_beats ()) {
ret->set_position_lock_style (MusicTime);
}
map_add (ret);
if (announce) {
@ -225,6 +245,11 @@ RegionFactory::create (const SourceList& srcs, const PropertyList& plist, bool a
if (ret) {
ret->apply_changes (plist);
if (ret->session().config.get_glue_new_regions_to_bars_and_beats ()) {
ret->set_position_lock_style (MusicTime);
}
map_add (ret);
if (announce) {
@ -268,6 +293,11 @@ RegionFactory::create (SourceList& srcs, const XMLNode& node)
ret.reset ();
} else {
map_add (ret);
/* Don't fiddle with position_lock_style here as the region
description is coming from XML.
*/
CheckNewRegion (ret);
}
}