MCPcopy Create free account
hub / github.com/audacity/audacity / DoMoveTrack

Method DoMoveTrack

src/TrackUtilities.cpp:175–224  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

173}
174
175void TrackUtilities::DoMoveTrack(
176 AudacityProject &project, Track& target, MoveChoice choice)
177{
178 auto &tracks = TrackList::Get( project );
179
180 TranslatableString longDesc, shortDesc;
181
182 switch (choice)
183 {
184 case OnMoveTopID:
185 /* i18n-hint: Past tense of 'to move', as in 'moved audio track up'.*/
186 longDesc = XO("Moved '%s' to Top");
187 shortDesc = XO("Move Track to Top");
188
189 // TODO: write TrackList::Rotate to do this in one step and avoid emitting
190 // an event for each swap
191 while (tracks.CanMoveUp(target))
192 tracks.Move(target, true);
193
194 break;
195 case OnMoveBottomID:
196 /* i18n-hint: Past tense of 'to move', as in 'moved audio track up'.*/
197 longDesc = XO("Moved '%s' to Bottom");
198 shortDesc = XO("Move Track to Bottom");
199
200 // TODO: write TrackList::Rotate to do this in one step and avoid emitting
201 // an event for each swap
202 while (tracks.CanMoveDown(target))
203 tracks.Move(target, false);
204
205 break;
206 default:
207 bool bUp = (OnMoveUpID == choice);
208
209 tracks.Move(target, bUp);
210 longDesc =
211 /* i18n-hint: Past tense of 'to move', as in 'moved audio track up'.*/
212 bUp? XO("Moved '%s' Up")
213 : XO("Moved '%s' Down");
214 shortDesc =
215 /* i18n-hint: Past tense of 'to move', as in 'moved audio track up'.*/
216 bUp? XO("Move Track Up")
217 : XO("Move Track Down");
218
219 }
220
221 longDesc.Format(target.GetName());
222
223 ProjectHistory::Get( project ).PushState(longDesc, shortDesc);
224}

Callers

nothing calls this directly

Calls 6

GetFunction · 0.85
CanMoveUpMethod · 0.80
MoveMethod · 0.80
CanMoveDownMethod · 0.80
GetNameMethod · 0.45
PushStateMethod · 0.45

Tested by

no test coverage detected