... not per track,
and the preferences or View Settings page has a separate static box for
global settings as opposed to track settings. This is the only global setting
for now.
... 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)
Track control "View Settings..." makes alternative SpectrumPrefs accessible
Apply button for Spectrograms Preferences and View Settings
Checkbox for defaulting track spectrogram settings (not seen in Preferences)
Static boxes distinguish the panel in Preferences from that in View Settings
SpectrumPrefs takes SpectrogramSettings object as parameter, and...
... writes global preferences explicitly, and only when it is the default
settings object.
Also impose validation of settings when constructing from preferences.
Fix crash initializing GlobalPrefsDialog for special case of undefined temp...
Future subclasses of PrefsDialog may choose the preferred page by other means.
PrefsDialog can vary the title prefix string
Allow tree structuring of the Prefs dialog pages
Table-driven construction of Prefs dialog. A factory for each kind of panel...
... by passing invalid frequency values,
rather than by checking the 'view property in each effect.
Spectral editing is now permitted only for appropriate track view types.
But I would suggest reconsideration of the exact conditions in which we do
this.
... rather, selections up to half of the maximum of project rate and all track
rates is permitted.
Also added some more cautions to the Nyquist code for spectral selection
effects, in case input frequencies exceed Nyquist for the track (as they
may now do).
Allow 2 decimal places in Normalize control (as requested by Gale).
I don't see any practical case where this is 'necessary', but it is a user request, there may be some obscure use case, and it does no harm.