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:
Carl Hetherington 2007-05-10 11:53:35 +00:00
parent 4342f2aeb0
commit aa3bb18b17
13 changed files with 484 additions and 675 deletions

View file

@ -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);
}