summaryrefslogtreecommitdiff
path: root/gtk2_ardour/selection.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-12-13 19:09:52 +0000
committerCarl Hetherington <carl@carlh.net>2009-12-13 19:09:52 +0000
commit034db5fb1cc4d71bfa0e1c005733115df68fdefd (patch)
treea32b62bac855f7b7d6e97988bfb69d6b9ec9754c /gtk2_ardour/selection.cc
parent8687895abba4209a6de8d8a8fc1bda5996f0d875 (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.cc28
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);