From b43875dd27f9a16ed277d5f87fb6007c367001c9 Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Mon, 26 Nov 2012 22:37:34 +0000 Subject: explicitly enforce selection rules to avoid some corner cases and avoid user confusion git-svn-id: svn://localhost/ardour2/branches/3.0@13549 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/selection.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'gtk2_ardour/selection.h') diff --git a/gtk2_ardour/selection.h b/gtk2_ardour/selection.h index e30ca612ea..73acaaa7c0 100644 --- a/gtk2_ardour/selection.h +++ b/gtk2_ardour/selection.h @@ -186,9 +186,22 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList void replace (uint32_t time_index, framepos_t start, framepos_t end); +/* + * A note about items in an editing Selection: + * At a high level, selections can include Tracks, Objects, or Time Ranges + * Range and Object selections are mutually exclusive. + * Selecting a Range will deselect all Objects, and vice versa. + * This is done to avoid confusion over what will happen in an operation such as Delete + * Tracks are somewhat orthogonal b/c editing operations don't apply to tracks. + * The Track selection isn't affected when ranges or objects are added. + */ + + void clear_time(); //clears any time selection ( i.e. Range ) + void clear_tracks (); //clears the track header selections + void clear_objects(); //clears the items listed below + + // these items get cleared wholesale in clear_objects void clear_regions(); - void clear_tracks (); - void clear_time(); void clear_lines (); void clear_playlists (); void clear_points (); -- cgit v1.2.3