Audacity 3.2.0
Public Member Functions | Private Attributes | List of all members
SelectionStateChanger Class Reference

#include <SelectionState.h>

Collaboration diagram for SelectionStateChanger:
[legend]

Public Member Functions

 SelectionStateChanger (SelectionState &state, TrackList &tracks)
 
 SelectionStateChanger (const SelectionStateChanger &)=delete
 
SelectionStateChangeroperator= (const SelectionStateChanger &)=delete
 
 ~SelectionStateChanger ()
 
void Commit ()
 

Private Attributes

SelectionStatempState
 
TrackListmTracks
 
std::weak_ptr< TrackmInitialLastPickedTrack
 
std::vector< bool > mInitialTrackSelection
 

Detailed Description

Definition at line 71 of file SelectionState.h.

Constructor & Destructor Documentation

◆ SelectionStateChanger() [1/2]

SelectionStateChanger::SelectionStateChanger ( SelectionState state,
TrackList tracks 
)

Definition at line 163 of file SelectionState.cpp.

165 : mpState{ &state }
166 , mTracks{ tracks }
168{
169 // Save initial state of track selections
170 const auto range = tracks.Any();
172 mInitialTrackSelection.reserve(range.size());
173 for (const auto track : range) {
174 const bool isSelected = track->GetSelected();
175 mInitialTrackSelection.push_back(isSelected);
176 }
177}
const auto tracks
SelectionState * mpState
std::vector< bool > mInitialTrackSelection
std::weak_ptr< Track > mInitialLastPickedTrack
std::weak_ptr< Track > mLastPickedTrack

References mInitialTrackSelection, and tracks.

◆ SelectionStateChanger() [2/2]

SelectionStateChanger::SelectionStateChanger ( const SelectionStateChanger )
delete

◆ ~SelectionStateChanger()

SelectionStateChanger::~SelectionStateChanger ( )

Definition at line 179 of file SelectionState.cpp.

180{
181 if ( mpState ) {
182 // roll back changes
184 std::vector<bool>::const_iterator
185 it = mInitialTrackSelection.begin(),
187
188 for (auto track : mTracks) {
189 if (it == end)
190 break;
191 track->SetSelected( *it++ );
192 }
193 }
194}
auto end(const Ptr< Type, BaseDeleter > &p)
Enables range-for.
Definition: PackedArray.h:159

References PackedArray::end(), mInitialLastPickedTrack, mInitialTrackSelection, SelectionState::mLastPickedTrack, mpState, and mTracks.

Here is the call graph for this function:

Member Function Documentation

◆ Commit()

void SelectionStateChanger::Commit ( )

Definition at line 196 of file SelectionState.cpp.

197{
198 mpState = nullptr;
199}

References mpState.

◆ operator=()

SelectionStateChanger & SelectionStateChanger::operator= ( const SelectionStateChanger )
delete

Member Data Documentation

◆ mInitialLastPickedTrack

std::weak_ptr<Track> SelectionStateChanger::mInitialLastPickedTrack
private

Definition at line 84 of file SelectionState.h.

Referenced by ~SelectionStateChanger().

◆ mInitialTrackSelection

std::vector<bool> SelectionStateChanger::mInitialTrackSelection
private

Definition at line 85 of file SelectionState.h.

Referenced by SelectionStateChanger(), and ~SelectionStateChanger().

◆ mpState

SelectionState* SelectionStateChanger::mpState
private

Definition at line 82 of file SelectionState.h.

Referenced by Commit(), and ~SelectionStateChanger().

◆ mTracks

TrackList& SelectionStateChanger::mTracks
private

Definition at line 83 of file SelectionState.h.

Referenced by ~SelectionStateChanger().


The documentation for this class was generated from the following files: