... And corrected improper connections in HistoryWindow and ContrastDialog,
improper because they got called with the wrong this pointer, to
the control instead of the dialog. But that was harmless anyway because the
handlers did not use this.
... Wrong sizer was pushed instead of the page's own, and was popped as
current sizer, when the first sub-sizer in the page was done.
But nothing was affected by this error, because notebook pages are used only
in the About dialog, and none of the pages have more than one directly nested
sizer. So popping null as current sizer didn't matter because the stack did
not deepen again.
PushSizer() only after assigning mpSizer, as with other calls to it.
... preparatory to removing that overload.
This overload is used in exactly these files:
DevicePrefs.cpp (displaying host names retrieved by portaudio, which are not
defined in Audacity source)
EffectsPrefs.cpp
ExportFLAC.cpp (twice)
ExportMultiple.cpp (displaying the descriptions defined in the several export
plugin classes)
GUIPrefs.cpp (four times: languages, manual location, theme, and meter DB
range; the language names themselves don't have localizations!)
MidiIOPrefs.cpp (displaying host names retrieved by portmidi)
TracksBehaviorsPrefs.cpp (for solo button choices)
There is also TieNumberAsChoice, used in QualityPrefs and elsewhere, which
calls through to that overload.
... with one exception (/FileFormats/FFmpegAACProfile),
the calls are replaced with TieNumberAsChoice.
Some unfortunately repetitious string tables are a small price in exchange for
reduced confusion in ShuttleGui.cpp
Untranslated strings are passed to TieNumberAsChoice, which is wrong, but that
will be made right in the next commit when we change the implementation of that
function
... Make the array of integer choices optional, and call through to the
non-deprecated overload of TieChoice, which uses strings.
In 2.3.3 this function is only used in the Quality preferences dialog.
This is caused by the same problem that caused bug 1980. This was fixed for check boxes by commit 42efe53.
Note that the bug in NVDA's audacity appmodule affects controls with the class button: button, check boxes, radio buttons and group boxes.
The fix is similar to the fix for bug 1980:
For group boxes which have an empty label, set the accessibility name to "\a", which is non-empty, but not read by screen readers.
... Unnecessary because transitively included.
But each .cpp file still includes its own .h file near the top to ensure
that it compiles indenendently, even if it is reincluded transitively later.
... I think this is a defect in wxWidgets, but one we can work around with a
simple wrapper class around wxSlider overriding one method.
To make the fix complete, change all occurrences of "safenew wxSlider"
but the one in ShuttleGui.cpp covers most cases
... This should cover most of the neglected cases, where a choice was added
by ShuttleGui.
There are some places where choices are added directly: scan the soure for
"safenew wxChoice"
I think there are still uncovered cases then in Grid.cpp, LV2 Effects, and in
commented-out parts of Transcription toolbar.
Are these important?
(This reinstates commit d2c112600d38f0894fe783f8dfd8861b5e604fce, which had
been reverted at 21a1260f912a9cb0ac8bff4f6e0fd7f8132f01ca, but making the
changes conditionally compiled on Mac only.)
This reverts commit d2c112600d38f0894fe783f8dfd8861b5e604fce.
On Windows, it is intentional that SetAccessible is not called for wxChoice in ShuttleGui.
See the commit message of f9ee3cd for background.
Changing this during code freeze and close to creating release candidates would have the danger of introducing bugs.
Fixing this bug needs further discussion. Hopefully the Mac accessibility code can be changed to bring it into line with the changes in the wxWidets accessibility code when we moved to 3.1.1
... This should cover most of the neglected cases, where a choice was added
by ShuttleGui.
There are some places where choices are added directly: scan the soure for
"safenew wxChoice"
I think there are still uncovered cases then in Grid.cpp, LV2 Effects, and in
commented-out parts of Transcription toolbar.
Are these important?