... Perhaps it should be in Internat.h (which is at the lowest level of the
dependency graph), but later ComponentInterface.h will need to include it, and
I don't want includes/ to depend on src/.
Though there is still a linkage dependency on src if
TranslatableString::Translation() is used.
... Translations were in the catalog, but weren't used.
Affects Change Pitch effect and Plot Spectrum cross-hair readouts.
See for instance Czech (cs) locale, where "H" should replace "B".
... Trying to reduce that just to chained calls on S, or conditional and looping
logic for variations in layout.
Lift some declarations to higher scope; or use expressions that avoid local
variables; or even use lambdas for more complicated computation of arguments
for the member functions of S.
... 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.
... so that in all cases a ChoiceSetting object stores all the details about
visible names, internal string codes, default value, and preference path.
Repetition of literals for some preference paths and their default values is
eliminated
... 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.