split when in range mode or object/range mode with a range defined will now split at teh range boundaries, rather than just the edit point
git-svn-id: svn://localhost/ardour2/branches/3.0@7312 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
0be7d224f4
commit
678b0302e1
@ -1943,7 +1943,7 @@ Editor::add_selection_context_items (Menu_Helpers::MenuList& edit_items)
|
|||||||
}
|
}
|
||||||
|
|
||||||
edit_items.push_back (SeparatorElem());
|
edit_items.push_back (SeparatorElem());
|
||||||
edit_items.push_back (MenuElem (_("Silence Range"), sigc::mem_fun(*this, &Editor::separate_region_from_selection)));
|
edit_items.push_back (MenuElem (_("Convert to region in-place"), mem_fun(*this, &Editor::separate_region_from_selection)));
|
||||||
edit_items.push_back (MenuElem (_("Convert to Region in Region List"), sigc::mem_fun(*this, &Editor::new_region_from_selection)));
|
edit_items.push_back (MenuElem (_("Convert to Region in Region List"), sigc::mem_fun(*this, &Editor::new_region_from_selection)));
|
||||||
|
|
||||||
edit_items.push_back (SeparatorElem());
|
edit_items.push_back (SeparatorElem());
|
||||||
|
@ -157,7 +157,6 @@ Editor::split_regions_at (nframes64_t where, RegionSelection& regions)
|
|||||||
boost::shared_ptr<Playlist> pl = (*a)->region()->playlist();
|
boost::shared_ptr<Playlist> pl = (*a)->region()->playlist();
|
||||||
|
|
||||||
if (!pl) {
|
if (!pl) {
|
||||||
cerr << "region " << (*a)->region()->name() << " has no playlist!\n";
|
|
||||||
a = tmp;
|
a = tmp;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1950,8 +1949,6 @@ Editor::add_locations_from_audio_region ()
|
|||||||
_session->begin_reversible_command (rs.size () > 1 ? _("add markers") : _("add marker"));
|
_session->begin_reversible_command (rs.size () > 1 ? _("add markers") : _("add marker"));
|
||||||
XMLNode &before = _session->locations()->get_state();
|
XMLNode &before = _session->locations()->get_state();
|
||||||
|
|
||||||
cerr << "Add locations\n";
|
|
||||||
|
|
||||||
for (RegionSelection::iterator i = rs.begin (); i != rs.end (); ++i) {
|
for (RegionSelection::iterator i = rs.begin (); i != rs.end (); ++i) {
|
||||||
|
|
||||||
boost::shared_ptr<Region> region = (*i)->region ();
|
boost::shared_ptr<Region> region = (*i)->region ();
|
||||||
@ -1994,8 +1991,6 @@ Editor::add_location_from_audio_region ()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
cerr << "Add location\n";
|
|
||||||
|
|
||||||
// single range spanning all selected
|
// single range spanning all selected
|
||||||
Location *location = new Location (rs.start(), rs.end_frame(), markername, Location::IsRangeMarker);
|
Location *location = new Location (rs.start(), rs.end_frame(), markername, Location::IsRangeMarker);
|
||||||
_session->locations()->add (location, true);
|
_session->locations()->add (location, true);
|
||||||
@ -2801,7 +2796,7 @@ Editor::separate_regions_between (const TimeSelection& ts)
|
|||||||
latest_regionviews.clear ();
|
latest_regionviews.clear ();
|
||||||
|
|
||||||
playlist->partition ((nframes64_t)((*t).start * speed),
|
playlist->partition ((nframes64_t)((*t).start * speed),
|
||||||
(nframes64_t)((*t).end * speed), true);
|
(nframes64_t)((*t).end * speed), false);
|
||||||
|
|
||||||
c.disconnect ();
|
c.disconnect ();
|
||||||
|
|
||||||
@ -2815,6 +2810,17 @@ Editor::separate_regions_between (const TimeSelection& ts)
|
|||||||
begin_reversible_command (_("separate"));
|
begin_reversible_command (_("separate"));
|
||||||
in_command = true;
|
in_command = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* pick up changes to existing regions */
|
||||||
|
|
||||||
|
vector<StatefulDiffCommand*> cmds;
|
||||||
|
playlist->rdiff (cmds);
|
||||||
|
for (vector<StatefulDiffCommand*>::iterator j = cmds.begin(); j != cmds.end(); ++j) {
|
||||||
|
_session->add_command (*j);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* pick up changes to the playlist itself (adds/removes)
|
||||||
|
*/
|
||||||
|
|
||||||
_session->add_command(new StatefulDiffCommand (playlist));
|
_session->add_command(new StatefulDiffCommand (playlist));
|
||||||
}
|
}
|
||||||
@ -4685,7 +4691,6 @@ Editor::fork_region ()
|
|||||||
boost::shared_ptr<MidiRegion> newregion = mrv->midi_region()->clone ();
|
boost::shared_ptr<MidiRegion> newregion = mrv->midi_region()->clone ();
|
||||||
|
|
||||||
playlist->clear_history ();
|
playlist->clear_history ();
|
||||||
cerr << "Replace region with " << newregion->name() << endl;
|
|
||||||
playlist->replace_region (mrv->region(), newregion, mrv->region()->position());
|
playlist->replace_region (mrv->region(), newregion, mrv->region()->position());
|
||||||
_session->add_command(new StatefulDiffCommand (playlist));
|
_session->add_command(new StatefulDiffCommand (playlist));
|
||||||
}
|
}
|
||||||
@ -5398,6 +5403,13 @@ Editor::set_playhead_cursor ()
|
|||||||
void
|
void
|
||||||
Editor::split ()
|
Editor::split ()
|
||||||
{
|
{
|
||||||
|
if (((mouse_mode == MouseRange) ||
|
||||||
|
(mouse_mode != MouseObject && _join_object_range_state == JOIN_OBJECT_RANGE_RANGE)) &&
|
||||||
|
!selection->time.empty()) {
|
||||||
|
separate_regions_between (selection->time);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
RegionSelection rs;
|
RegionSelection rs;
|
||||||
|
|
||||||
get_regions_for_action (rs, true);
|
get_regions_for_action (rs, true);
|
||||||
@ -6320,8 +6332,6 @@ Editor::insert_time (nframes64_t pos, nframes64_t frames, InsertTimeOption opt,
|
|||||||
|
|
||||||
pl->rdiff (cmds);
|
pl->rdiff (cmds);
|
||||||
|
|
||||||
cerr << "Shift generated " << cmds.size() << " sdc's\n";
|
|
||||||
|
|
||||||
for (vector<StatefulDiffCommand*>::iterator c = cmds.begin(); c != cmds.end(); ++c) {
|
for (vector<StatefulDiffCommand*>::iterator c = cmds.begin(); c != cmds.end(); ++c) {
|
||||||
_session->add_command (*c);
|
_session->add_command (*c);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user