Simplify the logic of duplication of NoteTrack. Duplicates are always in
serialized state. Un-serialization can happen on demand in any of the
NoteTrack operations that require a defined sequence.
Changing the duration of the sequence after paste is needed,
as it was also needed, when I fixed Stretch at commit
90eb4ec142f7d575d0870dd9c755589bff520cbe. I don't know if this should be
considered a bug in Allegro that we are compensating.
Tooltips tell users what the abbreviated names in the radio button group mean. The hyphen helps a little in relating the title , which has a hyphen in it, to the two fields.
The slow opening was caused by sorting lists of commands. The comparison function was slow because it created new strings, entailing malloc/free and used translation in the function. Comparison function was being called about 4,000 times.
Fortunately a vertical line works just as well as a checkbox in working around the bug where radio buttons change to the first field. It is better for screen readers too as it is not included in the tab order.
The checkbox on the selection toolbar is a temporary work around for a bug in windows with tabbing. Tabbing into a radio button will set the first item of the radio button group without it. Still looking for a better workaround.
Second attempt at getting the commands to update history, so that they can be undone (previous attempt at b911607, which didn't call the undo manager for each keydown).
Both a single keypress (keydown, then keyup), and holding down a key (multiple keydowns followed by a keyup) result in a single entry in Audacity's history dialog. Note that this code relies on a change to the undo mananger in commit 63ae687.
... that is, push a state only at button-up.
The undo during each drag increment didn't actually happen, because of a check
in OnUndo whether there is a drag in progress!
But this is not necessary to fix the excessive number of undo items, because
commit 63ae687bafd1123bf4bf7d00070e1dd9f38dc8a2 already did that by other means.
It only removes an unusual usage.
This is a convenience for sighted users. If they are showing start, center, length, end, they can click on the title 'Center' to preserve it, and then modify length. Similarly for the other controls. This makes working with more than two controls much more intuitive.
The toolbar can now show subsets of the start, center, length and end numeric controls. The choice is made using a button with a pop-up menu. The two most recently modified controls 'drive' the other two, whether they are visible or not. If shown, the driven controls are indicated in the name above (also for screen readers).
Most users will opt to just show two of the controls, e.g. start and end.
The menu button (Classic theme) has three dots on it. Other themes don't yet have the icon and will show as black.
I found a couple of problems working with upscaled image caches.
Firstly in GIMP a 'size 4 square pencil' is not 4x4, which makes editing an upscaled image very fiddly.
Secondly the wxIMAGE_QUALITY_NEAREST algorithm is not as dumb as I need it to be, and it is doing some blending when rescaling. This leads to loss of image quality in some cases.
So when we do switch to Hi-DPI support, we need to be 'all in' and only be downscaling in Audacity, not upscaling too.
This commit provides a different help landing page (Settings) for preferences that are used outside the normal Ctrl+P preferences dialog - for example, 'spectrum settings' accessed from the track menu. This should work for any settings that are used on their own in that way, though spectrum settings is currently the only example.
The wave is now green, to match the known-good black/green contrast for this theme. Corresponding changes were made to the buttons, slider pips, label shading and draggers. Time before zero is now also a lighter blue which shows up better against black than the dark blue did. Sliders are now (almost) white rather than grey. Selection in label tracks now matches selection in wave tracks. Envelopes are now (almost) white.