diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-11-07 17:05:46 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-11-07 17:05:46 +0000 |
commit | 998771e57d4687c0937fe1c36b294d4f075b6d3c (patch) | |
tree | c2b4443cf23dbe71c0c2e60eb3ea47377f2f97ea /gtk2_ardour/selection.cc | |
parent | 5cd58a2e8bbc7e3d2face30ad0bf8e307ab395fa (diff) |
initial round of work to support new edit point option, and removal of edit cursor
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2605 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 1e8874444c..6b2915ac02 100644 --- a/gtk2_ardour/selection.cc +++ b/gtk2_ardour/selection.cc @@ -153,6 +153,15 @@ Selection::clear_lines () } void +Selection::clear_markers () +{ + if (!markers.empty()) { + markers.clear (); + MarkersChanged(); + } +} + +void Selection::toggle (boost::shared_ptr<Redirect> r) { RedirectSelection::iterator i; @@ -624,7 +633,8 @@ Selection::empty () lines.empty () && time.empty () && playlists.empty () && - redirects.empty () + redirects.empty () && + markers.empty() ; } @@ -731,3 +741,43 @@ Selection::add (vector<AutomationSelectable*>& autos) PointsChanged (); } + +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(); + } +} |