mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 14:54:56 +01:00
region groups: allow the user to explictly group and ungroup regions
This commit is contained in:
parent
fe2473b0cc
commit
8818d8484e
5 changed files with 54 additions and 0 deletions
|
|
@ -210,6 +210,8 @@ This mode provides many different operations on both regions and control points,
|
|||
@wvis|Common/ToggleMaximalEditor| <@PRIMARY@><@SECONDARY@>f|maximise editor space
|
||||
@wvis|Common/ToggleMaximalMixer| <@PRIMARY@><@TERTIARY@>f|maximise mixer space
|
||||
@mmode|MouseMode/set-mouse-mode-object| g|object mode
|
||||
@edit|Editor/group-selected-regions| <@PRIMARY@>g|group selected regions
|
||||
@edit|Editor/ungroup-selected-regions| <@PRIMARY@><@TERTIARY@>g|ungroup selected regions
|
||||
@edit|Region/play-selected-regions| h|play selected region(s)
|
||||
@eep|Region/trim-front| j|trim front
|
||||
@eep|Region/trim-back| k|trim back
|
||||
|
|
|
|||
|
|
@ -346,6 +346,10 @@
|
|||
<menuitem action='insert-region-from-source-list'/>
|
||||
<menuitem action='play-selected-regions'/>
|
||||
<menuitem action='tag-selected-regions'/>
|
||||
<separator/>
|
||||
<menuitem action='group-selected-regions'/>
|
||||
<menuitem action='ungroup-selected-regions'/>
|
||||
<separator/>
|
||||
<menuitem action='loop-region'/>
|
||||
<menuitem action='rename-region'/>
|
||||
<menuitem action='show-region-properties'/>
|
||||
|
|
@ -860,6 +864,10 @@
|
|||
<popup name='PopupRegionMenu' action='PopupRegionMenu' accelerators='true'>
|
||||
<menuitem action='play-selected-regions'/>
|
||||
<menuitem action='tag-selected-regions'/>
|
||||
<separator/>
|
||||
<menuitem action='group-selected-regions'/>
|
||||
<menuitem action='ungroup-selected-regions'/>
|
||||
<separator/>
|
||||
<menuitem action='loop-region'/>
|
||||
<menuitem action='rename-region'/>
|
||||
<menuitem action='show-region-properties'/>
|
||||
|
|
|
|||
|
|
@ -1435,6 +1435,9 @@ private:
|
|||
void play_location (ARDOUR::Location&);
|
||||
void loop_location (ARDOUR::Location&);
|
||||
|
||||
void group_selected_regions ();
|
||||
void ungroup_selected_regions ();
|
||||
|
||||
void calc_extra_zoom_edges(samplepos_t &start, samplepos_t &end);
|
||||
void temporal_zoom_selection (Editing::ZoomAxis);
|
||||
void temporal_zoom_session ();
|
||||
|
|
|
|||
|
|
@ -378,6 +378,9 @@ Editor::register_actions ()
|
|||
reg_sens (editor_actions, "main-menu-play-selected-regions", _("Play Selected Regions"), sigc::mem_fun (*this, &Editor::play_selected_region));
|
||||
reg_sens (editor_actions, "main-menu-tag-selected-regions", _("Tag Selected Regions"), sigc::mem_fun (*this, &Editor::tag_selected_region));
|
||||
|
||||
reg_sens (editor_actions, "group-selected-regions", _("Group Selected Regions"), sigc::mem_fun (*this, &Editor::group_selected_regions));
|
||||
reg_sens (editor_actions, "ungroup-selected-regions", _("Ungroup Selected Regions"), sigc::mem_fun (*this, &Editor::ungroup_selected_regions));
|
||||
|
||||
reg_sens (editor_actions, "play-from-edit-point", _("Play from Edit Point"), sigc::mem_fun(*this, &Editor::play_from_edit_point));
|
||||
reg_sens (editor_actions, "play-from-edit-point-and-return", _("Play from Edit Point and Return"), sigc::mem_fun(*this, &Editor::play_from_edit_point_and_return));
|
||||
|
||||
|
|
|
|||
|
|
@ -3127,6 +3127,44 @@ Editor::play_edit_range ()
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
Editor::group_selected_regions ()
|
||||
{
|
||||
RegionSelection rs = get_regions_from_selection_and_entered ();
|
||||
|
||||
if (rs.empty ()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Region::RegionGroupRetainer rgr;
|
||||
begin_reversible_command (_("group regions"));
|
||||
for (RegionSelection::iterator i = rs.begin (); i != rs.end (); ++i) {
|
||||
(*i)->region ()->clear_changes ();
|
||||
(*i)->region ()->set_region_group (true);
|
||||
_session->add_command (new StatefulDiffCommand ((*i)->region ()));
|
||||
}
|
||||
commit_reversible_command ();
|
||||
}
|
||||
|
||||
void
|
||||
Editor::ungroup_selected_regions ()
|
||||
{
|
||||
RegionSelection rs = get_regions_from_selection_and_entered ();
|
||||
|
||||
if (rs.empty ()) {
|
||||
return;
|
||||
}
|
||||
|
||||
begin_reversible_command (_("ungroup regions"));
|
||||
for (RegionSelection::iterator i = rs.begin (); i != rs.end (); ++i) {
|
||||
(*i)->region ()->clear_changes ();
|
||||
(*i)->region ()->unset_region_group ();
|
||||
_session->add_command (new StatefulDiffCommand ((*i)->region ()));
|
||||
}
|
||||
selection->clear_regions ();
|
||||
commit_reversible_command ();
|
||||
}
|
||||
|
||||
void
|
||||
Editor::play_selected_region ()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue