mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 15:25:01 +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/ToggleMaximalEditor| <@PRIMARY@><@SECONDARY@>f|maximise editor space
|
||||||
@wvis|Common/ToggleMaximalMixer| <@PRIMARY@><@TERTIARY@>f|maximise mixer space
|
@wvis|Common/ToggleMaximalMixer| <@PRIMARY@><@TERTIARY@>f|maximise mixer space
|
||||||
@mmode|MouseMode/set-mouse-mode-object| g|object mode
|
@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)
|
@edit|Region/play-selected-regions| h|play selected region(s)
|
||||||
@eep|Region/trim-front| j|trim front
|
@eep|Region/trim-front| j|trim front
|
||||||
@eep|Region/trim-back| k|trim back
|
@eep|Region/trim-back| k|trim back
|
||||||
|
|
|
||||||
|
|
@ -346,6 +346,10 @@
|
||||||
<menuitem action='insert-region-from-source-list'/>
|
<menuitem action='insert-region-from-source-list'/>
|
||||||
<menuitem action='play-selected-regions'/>
|
<menuitem action='play-selected-regions'/>
|
||||||
<menuitem action='tag-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='loop-region'/>
|
||||||
<menuitem action='rename-region'/>
|
<menuitem action='rename-region'/>
|
||||||
<menuitem action='show-region-properties'/>
|
<menuitem action='show-region-properties'/>
|
||||||
|
|
@ -860,6 +864,10 @@
|
||||||
<popup name='PopupRegionMenu' action='PopupRegionMenu' accelerators='true'>
|
<popup name='PopupRegionMenu' action='PopupRegionMenu' accelerators='true'>
|
||||||
<menuitem action='play-selected-regions'/>
|
<menuitem action='play-selected-regions'/>
|
||||||
<menuitem action='tag-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='loop-region'/>
|
||||||
<menuitem action='rename-region'/>
|
<menuitem action='rename-region'/>
|
||||||
<menuitem action='show-region-properties'/>
|
<menuitem action='show-region-properties'/>
|
||||||
|
|
|
||||||
|
|
@ -1435,6 +1435,9 @@ private:
|
||||||
void play_location (ARDOUR::Location&);
|
void play_location (ARDOUR::Location&);
|
||||||
void loop_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 calc_extra_zoom_edges(samplepos_t &start, samplepos_t &end);
|
||||||
void temporal_zoom_selection (Editing::ZoomAxis);
|
void temporal_zoom_selection (Editing::ZoomAxis);
|
||||||
void temporal_zoom_session ();
|
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-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, "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", _("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));
|
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
|
void
|
||||||
Editor::play_selected_region ()
|
Editor::play_selected_region ()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue