... When you click in a stereo clip, move the correct partner clip with it.
When you click in the selection and it spans clips, move all clips containing
any part of the selection. (As horizontal dragging does.) Even if these are
not all within the same stereo track.
I implemented this rule: If any clip moves up (or down) by n audio tracks
(not counting the label tracks), all clips must move the same number, and
all must move from mono to mono or left to left or right to right. If that
is not possible, no move happens.
When the new checkbox is on, truncate each selected wave track independently.
Refuse to do it if any two selected audio tracks are sync locked to each other.
But label tracks sync-locked with a selected wave track will truncate as
expected.
... in the first label track.
Problem was calling wxTextCtrl::AppendText once per label, per push of undo
stack, each call causing event handling.
Now call it only once per push.
Introduce *DECIMAL-SEPARATOR* global for Nyquist.
Improvements to numeric validation error messages.
Fix *TRACK* START-TIME and END-TIME properties for tracks with different
length channels.
Update Adjustable Fade, Regular Interval Labels and Vocal Removal
to use numeric text inputs.
This does NOT fix bug 1020.
Added forcing time64 to be positive. Fixes problem where large negative value overflows into int.
More careful computation of TimeToPosition() so floor is only called with in range values.
Re-instated 'true' flags for hiddenMid calls, which I'd mistakenly dropped, so that (later) FishEye can distinguish.
Caused by a premature conversion of a wxInt64 to (int) so that a large positive number became negative.
We now do the conversion after minning it against an integer width.
The residual issue here was that an old cfg could go on using the unsafe path. So we check for the unsafe path at init and silently substitute the good path. If the user attempts to re-instate the unsafe path we tell them no, with an informative message. This change was made more complex by windows allowing different strings for the same path, specifically C:\Users\JAMESC~1\AppData\Local\Temp\audacity_temp contains the shortening '~' so in the function that tests 'IsTempDirectoryNameOK' we use GetLongPath() to always compare the expanded names.
I also changed directory prefs to add SessionData rather than audacity_temp on the new directory name, on windows when choosing a new temp directory.