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.
Audacity can be built with dynamically loading/unloading the MP3 library
(the default) or dynamically linked against the shared object file
(--disable-dynamic-loading). The code to load the library is only needed
in the former case.
New behaviour, instead of resizing window when it doesn't fit, use the default size/position.
This touches code involved in the fix for 1119 (mac only bug on small screens) and should still
fix that bug, but that will need testing.
New fix. It appears to be a bug in wx3. Hiding a Modal window (under linux) can stop it being modal. So rather than EndModal() we send an event to close the window which works whether wxWidgets thinks the window is modal or not. Additionally we set the focus back to the parent window, becuase of a side bug under windows, and we new the status dialog rather than allocate it on the stack, because the status dialog is NOT run with ShowModal() which is the only time we can safely use an on stack dialog.
Guarding against mDataLen < mWindowSize, as per fix from Steve.
However, also must ensure mAnalyst was initialised, as we otherwise get a different crash when we paint a valid spectrum later, because we don't init mAnalyst when too few samples. To do that init, we must call Recalc before we show the dialog.
Needs to be tested on Mac, because the change from SendRecalcEvent() to Recalc() might conceivably upset the Mac.