- For ALPHA builds we do a check version with the Welcome screen (if welcome screen is enabled).
- A 'Check Online' in the About box provides a new route to check version
- Check Version now passes CommitId and Build Date/Time to identify a version.
To actually close the bug we need the javascript on the server page to put up informative messages.
The short-circuit evaluation of flags ONLY generated the NotMinimized flag, and all others were set to zero, when short-circuit evaluation happened. This change remembers and preserves the other flags, so they don't get set to zero.
Problem was that when these commands were used when playback was stopped, the tracks did not automatically scroll to make sure that the label that had been moved to was visible.
Fix: call TrackPanel::ScrollIntoView().
Reasons for removing the default keystrokes:
1. Added keystrokes may conflict with keystrokes already defined by user, and Audacity doesn't currently handle this situation in a user friendly manner.
2 There may be additional label commands in the near future, so even if default keystrokes were felt appropriate for these commands, it may be useful to delay the assignment until any other related commands have been decided.
After discussion on Audacity-quality mailing list, the commands now refer to the stored cursor position, rather than the saved cursor position. (This position is not saved to disc).
When used during playback, this was producing unexpected results.
Fix is to use setTimes(t0,t1), rather than calls to setT0(t0) and set(t1) which was producing unexpected results.
Changes to "Save Cursor Position" and "(Select) Cursor to Saved Cursor Position"
Both the saved cursor position, and the current cursor position are the audio position if audio is active, else selection start.
The selected time range is the min, and max of these two values.
The Edit buttons now enable/disable whenever their Menu counterparts
are enabled/disabled, but there are residual issues due to incorrect
behavior in "Select all if none selected" (noted in comments).
Added a setting for whether labels can be created by typing in a label track.
The setting can be changed in either the Tracks menu, or the Tracks category in Preferences.
By default the setting is set to on.
The two commands are "selection to next label" and "selection to previous label".
They have default shortcuts alt+right and alt+left.
A label track does not have to be the focus. If there is a single label track in the project, that it used. If there is more than one label track, then the first label track, if any, starting at the focused track is used.
If the commands are used during playback of the project, playback continues from the new cursor/selection.
The commands provide feedback to screen readers: the name of the label, and position in the form of "i of n".
... whenever they really describe the size of a buffer that fits in memory, or
of a block file (which is never now more than a megabyte and so could be fit in
memory all at once), or a part thereof.
Thanks to Walter Gladwin.
The comment said "Is this correct??" the answer is no. However the problem only showed when other fixes were made elsewhere, and Add Label at Playback Positions then stopped working when in Pause.
... This makes much code agnostic about how other things (functions and
arguments) are typed.
Many of these neeed to become size_t instead of sampleCount.
I added a new flag, HasWaveDataFlag that checks not only for the presence of a WaveTrack but also for audio actually in it. This is now applied to the Scrub and Seek menu items, with the result that they grey out in the menu, and their buttons are dulled on the toolbar, if there is no audio.
This also makes it clearer in the code when we are dealing with a Toolbar ID (for the scrubbing toolbar) and when we are dealing with a button ID (for enabling/disabling the scrub ruler).
Stream time from the scrubbing audio (which had not started) was coming out as a large negative value. That in turn led to an out of range selection starting and ending at that value. Negative stream times now treated as zero when stopping audio. This does mean that the (fringe) case of stop and set cursor with audio playing to the left of zero, if you are able to do that, will likely set the cursor at zero rather than at the negative time end point. I think that is probably OK, even good.
This introduces a new variable, mStopIfWasPaused (default true). Actions which require AudioIONotBusyFlag will now stop the audio, if audio was busy but paused and attempt to continue.
We could perhaps make mStopAudioIfWasPaused into a preference, but I don't think we need to keep even the option of the old behaviour.