diff options
author | Carl Hetherington <carl@carlh.net> | 2009-12-13 19:09:52 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2009-12-13 19:09:52 +0000 |
commit | 034db5fb1cc4d71bfa0e1c005733115df68fdefd (patch) | |
tree | a32b62bac855f7b7d6e97988bfb69d6b9ec9754c /gtk2_ardour/selection.cc | |
parent | 8687895abba4209a6de8d8a8fc1bda5996f0d875 (diff) |
Apply Select property of route groups at the Selection object level. Accordingly
simplify code related to selecting tracks. Add a TrackViewList object rather than
"abusing" TrackSelection in lots of places.
git-svn-id: svn://localhost/ardour2/branches/3.0@6358 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/selection.cc')
-rw-r--r-- | gtk2_ardour/selection.cc | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/gtk2_ardour/selection.cc b/gtk2_ardour/selection.cc index 78fb785d11..1a0b1305c7 100644 --- a/gtk2_ardour/selection.cc +++ b/gtk2_ardour/selection.cc @@ -197,9 +197,9 @@ Selection::toggle (boost::shared_ptr<Playlist> pl) } void -Selection::toggle (const list<TimeAxisView*>& track_list) +Selection::toggle (const TrackViewList& track_list) { - for (list<TimeAxisView*>::const_iterator i = track_list.begin(); i != track_list.end(); ++i) { + for (TrackViewList::const_iterator i = track_list.begin(); i != track_list.end(); ++i) { toggle ((*i)); } } @@ -334,9 +334,9 @@ Selection::add (const list<boost::shared_ptr<Playlist> >& pllist) } void -Selection::add (const list<TimeAxisView*>& track_list) +Selection::add (const TrackViewList& track_list) { - list<TimeAxisView*> added = tracks.add (track_list); + TrackViewList added = tracks.add (track_list); for (list<TimeAxisView*>::const_iterator i = added.begin(); i != added.end(); ++i) { void (Selection::*pmf)(TimeAxisView*) = &Selection::remove; @@ -351,12 +351,9 @@ Selection::add (const list<TimeAxisView*>& track_list) void Selection::add (TimeAxisView* track) { - if (find (tracks.begin(), tracks.end(), track) == tracks.end()) { - void (Selection::*pmf)(TimeAxisView*) = &Selection::remove; - track->GoingAway.connect (sigc::bind (sigc::mem_fun (*this, pmf), track)); - tracks.push_back (track); - TracksChanged(); - } + TrackViewList tr; + tr.push_back (track); + add (tr); } void @@ -516,15 +513,14 @@ Selection::remove (TimeAxisView* track) } void -Selection::remove (const list<TimeAxisView*>& track_list) +Selection::remove (const TrackViewList& track_list) { bool changed = false; - for (list<TimeAxisView*>::const_iterator i = track_list.begin(); i != track_list.end(); ++i) { - - list<TimeAxisView*>::iterator x; + for (TrackViewList::const_iterator i = track_list.begin(); i != track_list.end(); ++i) { - if ((x = find (tracks.begin(), tracks.end(), (*i))) != tracks.end()) { + TrackViewList::iterator x = find (tracks.begin(), tracks.end(), *i); + if (x != tracks.end()) { tracks.erase (x); changed = true; } @@ -669,7 +665,7 @@ Selection::set (TimeAxisView* track) } void -Selection::set (const list<TimeAxisView*>& track_list) +Selection::set (const TrackViewList& track_list) { clear_tracks (); add (track_list); |