summaryrefslogtreecommitdiff
path: root/gtk2_ardour/selection.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-11-08 01:40:25 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-11-08 01:40:25 +0000
commitbadc087263990ecf360792c10e4d9f2d60828d43 (patch)
tree7e4b7e0afea47be51cbad48f06bb1779f483f56f /gtk2_ardour/selection.cc
parentdf20e5935fbdaf7d27f924e4e2ea87707d8a2314 (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.cc52
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();
+ }
+}