Add Alt+P and Alt+N Previous/Next Clip shortcuts
Shoorter naming of Default options. Now just 'Standard' and 'Full'.
No longer even attempt to remove (Option)+Command+M
* envelope-fixes:
Bug835(cut-then-paste should be no-op): Rewrite Envelope::Paste...
Envelope::Paste takes a time tolerance argument
Define consistency check for Envelope, to be used in Paste
Rewrite Envelope::InsertSpace
Simplify InsertOrReplaceRelative, always trim when to domain...
... Simplify. Don't assume e->mOffset is zero. Check consistency afterward.
Do not leave responsibility for simplification of discontinuities to higher
level code.
Allow real discontinuities at the end of the insertion; no more readjustment of
times of points.
... Comment in it says that it does not check for discontinuities if it
replaces!
This will not matter in the uses of it internal to the Envelope class, which
will in fact always be proper insertions, having checked first for the presence
of a point.
... And more generally, Envelope::CollapseRegion, should it be reused more
widely, is responsible for removing the points; WaveTrack code is relieved of
that.
Change the drawing of wave track envelope at high zoom...
Change evaluation of envelope near discontinuities...
Prefer "sampleDur" to "sampleTime" for some variable names
... The function defined by the envelope is evaluated exactly at the times of
samples, but not between samples -- instead there is a simple interpolation.
Therefore the curve might not go through the control points when they are not at
sample times.
The exact value of the function defined by the envelope has no influence on
rendering of the sound in between samples. So this can make it clear that
the middle point has no influence at all in case three points are very close.
Drawing of other envelopes (Time track, Equalization curves) is not changed.
... So that even if the time is "slightly" (less than 1/2 sample interval) left
of the discontinuity, the right-hand limit is always used.
Thus this compensates for some roundoff errors when pasting one clip with
an envelope into another.
This overcomes the objections that were in a comment in Envelope::Paste
to making control points with exactly equal times.
And therefore Paste can be rewritten to do so, but that has not happened yet.
Envelope points at exactly equal time coordinates can already be made by
dragging points in the envelope editor.
We now don't sort the list until a view is selected. Also we create it with nodes open, rather than creating with nodes closed and then separately opening them. Instead of 3 sorts at initialisation only one happens now. AX info is only updated after a sort, so this may be 3x faster for screen reader users too.
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.