36 auto trackRange = syncLocked
53 Track &track,
bool selected,
bool updateLastPicked )
82 Track *sTrack = &rsTrack, *eTrack = &reTrack;
84 if (eTrack->GetIndex() < sTrack->
GetIndex())
88 tracks.
Any().StartingWith(sTrack).EndingAfter(eTrack))
94 for (
auto t : tracks.
Any())
105 auto trackRange = tracks.
Selected();
106 auto pFirst = *trackRange.begin();
109 if( pFirst && track.
GetIndex() >= pFirst->GetIndex() )
110 pExtendFrom = pFirst->SharedPointer();
127 Track &track,
bool shift,
bool ctrl,
bool syncLocked )
148 , mInitialLastPickedTrack{ state.mLastPickedTrack }
151 const auto range = tracks.
Leaders();
154 for (
const auto track : range) {
155 const bool isSelected = track->GetSelected();
165 std::vector<bool>::const_iterator
172 track->SetSelected( *it++ );
static const AudacityProject::AttachedObjects::RegisteredFactory key
declares abstract base class Track, TrackList, and iterators over TrackList
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Client code makes static instance from a factory of attachments; passes it to Get or Find as a retrie...
bool setTimes(double t0, double t1)
SelectionStateChanger(SelectionState &state, TrackList &tracks)
std::vector< bool > mInitialTrackSelection
std::weak_ptr< Track > mInitialLastPickedTrack
std::weak_ptr< Track > mLastPickedTrack
void HandleListSelection(TrackList &tracks, ViewInfo &viewInfo, Track &track, bool shift, bool ctrl, bool syncLocked)
void ChangeSelectionOnShiftClick(TrackList &tracks, Track &track)
static void SelectTrackLength(ViewInfo &viewInfo, Track &track, bool syncLocked)
void SelectRangeOfTracks(TrackList &tracks, Track &sTrack, Track &eTrack)
void SelectNone(TrackList &tracks)
static SelectionState & Get(AudacityProject &project)
void SelectTrack(Track &track, bool selected, bool updateLastPicked)
static TrackIterRange< Track > Group(Track *pTrack)
Abstract base class for an object holding data associated with points on a time axis.
bool GetSelected() const
Selectedness is always the same for all channels of a group.
virtual void SetSelected(bool s)
std::shared_ptr< Subclass > SharedPointer()
virtual double GetOffset() const =0
virtual double GetEndTime() const =0
A flat linked list of tracks supporting Add, Remove, Clear, and Contains, serialization of the list o...
std::shared_ptr< Subclass > Lock(const std::weak_ptr< Subclass > &wTrack)
auto Leaders() -> TrackIterRange< TrackType >
auto Any() -> TrackIterRange< TrackType >
auto Selected() -> TrackIterRange< TrackType >
static auto Channels(TrackType *pTrack) -> TrackIterRange< TrackType >
NotifyingSelectedRegion selectedRegion
auto end(const Ptr< Type, BaseDeleter > &p)
Enables range-for.
void swap(std::unique_ptr< Alg_seq > &a, std::unique_ptr< Alg_seq > &b)