diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-11-08 01:40:25 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-11-08 01:40:25 +0000 |
commit | badc087263990ecf360792c10e4d9f2d60828d43 (patch) | |
tree | 7e4b7e0afea47be51cbad48f06bb1779f483f56f /gtk2_ardour/selection.cc | |
parent | df20e5935fbdaf7d27f924e4e2ea87707d8a2314 (diff) |
merged with 2.0-ongoing changes 2582-2605 (not thoroughly tested but it compiles, start up, and creates a new session)
git-svn-id: svn://localhost/ardour2/trunk@2606 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/selection.cc')
-rw-r--r-- | gtk2_ardour/selection.cc | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/gtk2_ardour/selection.cc b/gtk2_ardour/selection.cc index f0037588a0..c6bb5c37af 100644 --- a/gtk2_ardour/selection.cc +++ b/gtk2_ardour/selection.cc @@ -144,6 +144,15 @@ Selection::clear_lines () } void +Selection::clear_markers () +{ + if (!markers.empty()) { + markers.clear (); + MarkersChanged(); + } +} + +void Selection::toggle (boost::shared_ptr<Playlist> pl) { PlaylistSelection::iterator i; @@ -575,7 +584,8 @@ Selection::empty () playlists.empty () && lines.empty () && time.empty () && - playlists.empty () + playlists.empty () && + markers.empty() ; } @@ -700,3 +710,43 @@ Selection::select_edit_group_regions () add (*i); } } + +void +Selection::set (Marker* m) +{ + clear_markers (); + add (m); +} + +void +Selection::toggle (Marker* m) +{ + MarkerSelection::iterator i; + + if ((i = find (markers.begin(), markers.end(), m)) == markers.end()) { + add (m); + } else { + remove (m); + } +} + +void +Selection::remove (Marker* m) +{ + MarkerSelection::iterator i; + + if ((i = find (markers.begin(), markers.end(), m)) != markers.end()) { + markers.erase (i); + MarkersChanged(); + } +} + + +void +Selection::add (Marker* m) +{ + if (find (markers.begin(), markers.end(), m) == markers.end()) { + markers.push_back (m); + MarkersChanged(); + } +} |