X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fselection.h;h=959690b95dc8e909d06bdf70da7d1bb606093a61;hb=5f06ae43d87b441363afca3752c95ad5ed90f885;hp=586c2e899753e57e17321110c76d1c6a1216ef1a;hpb=084af96bf441c065841af6a399d4c0d3c99962d4;p=ardour.git diff --git a/gtk2_ardour/selection.h b/gtk2_ardour/selection.h index 586c2e8997..959690b95d 100644 --- a/gtk2_ardour/selection.h +++ b/gtk2_ardour/selection.h @@ -95,7 +95,6 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList // Selection& operator= (const Selection& other); sigc::signal RegionsChanged; - sigc::signal TracksChanged; sigc::signal TimeChanged; sigc::signal LinesChanged; sigc::signal PlaylistsChanged; @@ -104,17 +103,20 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList sigc::signal MidiNotesChanged; sigc::signal MidiRegionsChanged; - void block_tracks_changed (bool); - void clear (); + + /** check if all selections are empty + * @param internal_selection also check object internals (e.g midi notes, automation points), when false only check objects. + * @return true if nothing is selected. + */ bool empty (bool internal_selection = false); void dump_region_layers(); - bool selected (TimeAxisView*); - bool selected (RegionView*); - bool selected (ArdourMarker*); - bool selected (ControlPoint*); + bool selected (TimeAxisView*) const; + bool selected (RegionView*) const; + bool selected (ArdourMarker*) const; + bool selected (ControlPoint*) const; void set (std::list const &); void add (std::list const &); @@ -200,18 +202,18 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList void clear_all() { clear_time(); clear_tracks(); clear_objects(); } - 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 + void clear_time(bool with_signal = true); //clears any time selection ( i.e. Range ) + void clear_tracks (bool with_signal = true); //clears the track header selections + void clear_objects(bool with_signal = true); //clears the items listed below // these items get cleared wholesale in clear_objects - void clear_regions(); - void clear_lines (); - void clear_playlists (); - void clear_points (); - void clear_markers (); - void clear_midi_notes (); - void clear_midi_regions (); + void clear_regions(bool with_signal = true); + void clear_lines (bool with_signal = true); + void clear_playlists (bool with_signal = true); + 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)); @@ -221,12 +223,11 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList XMLNode& get_state () const; int set_state (XMLNode const &, int); - std::list > > > > pending_midi_note_selection; + std::list > > pending_midi_note_selection; private: PublicEditor const * editor; uint32_t next_time_id; - bool _no_tracks_changed; }; bool operator==(const Selection& a, const Selection& b);