mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-09 08:14:58 +01:00
Re-work main right-click context menu to operate on the selection, and remove some confusion about what region(s) will be affected by menu selections.
git-svn-id: svn://localhost/ardour2/trunk@1831 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
4342f2aeb0
commit
aa3bb18b17
13 changed files with 484 additions and 675 deletions
|
|
@ -582,43 +582,6 @@ Editor::set_selected_regionview_from_region_list (boost::shared_ptr<Region> regi
|
|||
commit_reversible_command () ;
|
||||
}
|
||||
|
||||
bool
|
||||
Editor::set_selected_regionview_from_map_event (GdkEventAny* ev, StreamView* sv, boost::weak_ptr<Region> weak_r)
|
||||
{
|
||||
RegionView* rv;
|
||||
boost::shared_ptr<Region> r (weak_r.lock());
|
||||
|
||||
if (!r) {
|
||||
return true;
|
||||
}
|
||||
|
||||
boost::shared_ptr<AudioRegion> ar;
|
||||
|
||||
if ((ar = boost::dynamic_pointer_cast<AudioRegion> (r)) == 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((rv = sv->find_view (ar)) == 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* don't reset the selection if its something other than
|
||||
a single other region.
|
||||
*/
|
||||
|
||||
if (selection->regions.size() > 1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
begin_reversible_command (_("set selected regions"));
|
||||
|
||||
selection->set (rv);
|
||||
|
||||
commit_reversible_command () ;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
Editor::track_selection_changed ()
|
||||
{
|
||||
|
|
@ -685,16 +648,17 @@ Editor::point_selection_changed ()
|
|||
}
|
||||
}
|
||||
|
||||
/** Select everything in the selected tracks
|
||||
* @param Selection operation to apply.
|
||||
*/
|
||||
void
|
||||
Editor::select_all_in_track (Selection::Operation op)
|
||||
Editor::select_all_in_selected_tracks (Selection::Operation op)
|
||||
{
|
||||
list<Selectable *> touched;
|
||||
|
||||
if (!clicked_routeview) {
|
||||
return;
|
||||
for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) {
|
||||
(*i)->get_selectables (0, max_frames, 0, DBL_MAX, touched);
|
||||
}
|
||||
|
||||
clicked_routeview->get_selectables (0, max_frames, 0, DBL_MAX, touched);
|
||||
|
||||
switch (op) {
|
||||
case Selection::Toggle:
|
||||
|
|
@ -741,16 +705,16 @@ Editor::select_all (Selection::Operation op)
|
|||
commit_reversible_command ();
|
||||
}
|
||||
|
||||
/** Invert the selection in the selected tracks */
|
||||
void
|
||||
Editor::invert_selection_in_track ()
|
||||
Editor::invert_selection_in_selected_tracks ()
|
||||
{
|
||||
list<Selectable *> touched;
|
||||
|
||||
if (!clicked_routeview) {
|
||||
return;
|
||||
for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) {
|
||||
(*i)->get_inverted_selectables (*selection, touched);
|
||||
}
|
||||
|
||||
clicked_routeview->get_inverted_selectables (*selection, touched);
|
||||
selection->set (touched);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue