From ba424352a288b84b432980b32cdc07b60a89bc67 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 16 Apr 2020 11:36:00 -0600 Subject: change Selection object to be more clear about the status of MidiRegionViews and notes 1) Notes are only present in a Selection object if it is being used as a cut buffer. They are never stored there as part of "normal selection" - that is delegated/left to MidiRegionViews that own the notes. 2) MidiRegionViews are stored in the Selection as "just" RegionViews, so provide a convenience method to access them. This doesn't actually change much, since even the old MidiRegions object was actually just a RegionSelection i.e. RegionViews. --- gtk2_ardour/selection.h | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'gtk2_ardour/selection.h') diff --git a/gtk2_ardour/selection.h b/gtk2_ardour/selection.h index 71230086b5..f7f3980f50 100644 --- a/gtk2_ardour/selection.h +++ b/gtk2_ardour/selection.h @@ -90,11 +90,15 @@ public: PlaylistSelection playlists; PointSelection points; MarkerSelection markers; - MidiRegionSelection midi_regions; /** only used when this class is used as a cut buffer */ MidiNoteSelection midi_notes; + /** we don't store MidiRegionViews in their own selection, we just pull + * them from "regions" as a convenience for various operations. + */ + MidiRegionSelection midi_regions(); + Selection (PublicEditor const * e, bool manage_libardour_selection); // Selection& operator= (const Selection& other); @@ -107,7 +111,6 @@ public: sigc::signal PointsChanged; sigc::signal MarkersChanged; sigc::signal MidiNotesChanged; - sigc::signal MidiRegionsChanged; void clear (); @@ -132,7 +135,6 @@ public: void set (const TrackViewList&); void set (const MidiNoteSelection&); void set (RegionView*, bool also_clear_tracks = true); - void set (MidiRegionView*); void set (std::vector&); long set (samplepos_t, samplepos_t); void set_preserving_all_ranges (samplepos_t, samplepos_t); @@ -147,7 +149,6 @@ public: void toggle (const TrackViewList&); void toggle (const MidiNoteSelection&); void toggle (RegionView*); - void toggle (MidiRegionView*); void toggle (MidiCutBuffer*); void toggle (std::vector&); long toggle (samplepos_t, samplepos_t); @@ -162,7 +163,6 @@ public: void add (const TrackViewList&); void add (const MidiNoteSelection&); void add (RegionView*); - void add (MidiRegionView*); void add (MidiCutBuffer*); void add (std::vector&); long add (samplepos_t, samplepos_t); @@ -179,7 +179,6 @@ public: void remove (const TrackViewList&); void remove (const MidiNoteSelection&); void remove (RegionView*); - void remove (MidiRegionView*); void remove (MidiCutBuffer*); void remove (uint32_t selection_id); void remove (samplepos_t, samplepos_t); @@ -219,7 +218,6 @@ public: void clear_points (bool with_signal = true); void clear_markers (bool with_signal = true); void clear_midi_notes (bool with_signal = true); - void clear_midi_regions (bool with_signal = true); void foreach_region (void (ARDOUR::Region::*method)(void)); void foreach_regionview (void (RegionView::*method)(void)); -- cgit v1.2.3