... Should have no effect on generated code, except perhaps some slight faster
virtual function calls. Mostly useful as documentation of design intent.
Tried to mark every one of our classes that inherits from another, or is a
base for others, or has abstract virtual functions, and a few others besides.
Update the manifest pragma to match the docs.
Using * for processorArchitecture should work on both 32 and 64 bit systems, with Audacity compiled for 32 bit.
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.
I'm pretty sure this gets all of the currently known issues, including
the SHIFT+M not working, the Play buttons responding to SHIFT and CTRL,
the ESC key canceling drags, and I'm pretty sure it even fixes
but #784.
Several other issues were also fixed (hopefully ;-)).
This is a major change to accelerator handling and keyboard
capturing. Menu shortcuts, non-menu commands, label editing,
navigation, and basically anything else were you might use
the keyboard should be thoroughly tested.
It had been causing problems in Unity for a while now and they
were missing on OSX as well in wx3. So, the old menu Open/Close
method of hiding has been removed and replaced with an event
filter/monitor which looks for wxEVT_CHAR_HOOK events to pass
key events to the handler that has the keyboard captured.
... Also removed one line from the track control drop-down, and changed
accelerators to more mnemonic choices.
Also the open page of View Settings... determines track view type after OK
... SpectrogramSettings does that instead, and Preferences or View Settings
are the user interface for changing it.
Handle invalidation of spectrogram pixel cache for scale type changes,
just as for other changes of settings. No more
TrackArtist::InvalidateSpectrumCache().
View type of track now switches to Spectrum when applying or OKing the
View Settings... dialog and the Spectrogram page is open (and for now
it is still the only page)
It was producing "ghost" windows on OSX in wx3. These were
supposed to be hidden, but they weren't any longer and after
reviewing TipPanel, I realized that there was a separate
code path for OSX entirely...must've gone back to some of the
earliest versions.
Now all platforms use the same bit of code.
And it doesn't do all of the same initialization as the new one, so we
get assertions on Windows (not sure why the other two didn't complain).
Warning in wx302 manual says:
Deprecated:
This form is deprecated, use the other one unless you know what you are doing.
So, best to use the new one. This DOES mean that we WILL have to
testing locales again which is fine cause we had some work to do
there anyway.
This also re-enables the splash screen and recombines the
OnInit() and FinishInits() since I'm pretty sure the progress
dialog was the issue.
I also retested (as much as I could) and cleaned out all of the
little "hacks" the progress dialog gained over the years. With
the new modal handling of wx3, it seems that things are much better
behaved.
However, it seems that wxGTK (at least) has gained some new focus
probs (to be dealt with later).
This gets FileDialog updated and working on Windows. It also
removes removes the "wx3" build configurations and makes the default
Debug and Release builds wx3-only.
Still need to get VSTs updated.
Since I ran out of time, I put OSX back to the way it was in
2.1.0...forced locale to en_US. Heck, I'm not sure there is
a "real" fix anyway.
At least, the problem languages appear to be happy now, even
when using the validators.