Skip to content
Permalink
Browse files
Track control "View Settings..." makes alternative SpectrumPrefs acce…
…ssible
  • Loading branch information
Paul-Licameli committed Jun 15, 2015
1 parent 42fac7a commit e689ace7088c3cb48966624284cf5772a056daaa
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 1 deletion.
@@ -214,6 +214,7 @@ is time to refresh some aspect of the screen.

#include "ondemand/ODManager.h"

#include "prefs/PrefsDialog.h"
#include "prefs/SpectrumPrefs.h"

#include "toolbars/ControlToolBar.h"
@@ -327,6 +328,7 @@ enum {
OnSpectralSelID,
OnSpectralSelLogID,
OnPitchID,
OnViewSettingsID,

OnSplitStereoID,
OnSplitStereoMonoID,
@@ -366,6 +368,7 @@ BEGIN_EVENT_TABLE(TrackPanel, wxWindow)
EVT_MENU_RANGE(OnChannelLeftID, OnChannelMonoID,
TrackPanel::OnChannelChange)
EVT_MENU_RANGE(OnWaveformID, OnPitchID, TrackPanel::OnSetDisplay)
EVT_MENU(OnViewSettingsID, TrackPanel::OnViewSettings)
EVT_MENU_RANGE(OnRate8ID, OnRate384ID, TrackPanel::OnRateChange)
EVT_MENU_RANGE(On16BitID, OnFloatID, TrackPanel::OnFormatChange)
EVT_MENU(OnRateOtherID, TrackPanel::OnRateOther)
@@ -728,9 +731,10 @@ void TrackPanel::BuildMenus(void)
mWaveTrackMenu->Append(OnSpectralSelID, _("S&pectral Selection"));
/* i18n-hint: short form of 'logarithm'*/
mWaveTrackMenu->Append(OnSpectralSelLogID, _("Spectral Selection lo&g(f)"));

mWaveTrackMenu->Append(OnPitchID, _("Pitc&h (EAC)"));
mWaveTrackMenu->Append(OnViewSettingsID, _("View& Settings...")); // PRL: all the other letters already taken for accelerators!
mWaveTrackMenu->AppendSeparator();

mWaveTrackMenu->AppendRadioItem(OnChannelMonoID, _("&Mono"));
mWaveTrackMenu->AppendRadioItem(OnChannelLeftID, _("&Left Channel"));
mWaveTrackMenu->AppendRadioItem(OnChannelRightID, _("&Right Channel"));
@@ -8493,6 +8497,7 @@ void TrackPanel::OnTrackMenu(Track *t)
theMenu->Enable(OnSpectralSelID, display != WaveTrack::SpectralSelectionDisplay);
theMenu->Enable(OnSpectralSelLogID, display != WaveTrack::SpectralSelectionLogDisplay);
theMenu->Enable(OnPitchID, display != WaveTrack::PitchDisplay);
theMenu->Enable(OnViewSettingsID, true);

WaveTrack * track = (WaveTrack *)t;
SetMenuCheck(*mRateMenu, IdOfRate((int) track->GetRate()));
@@ -8954,6 +8959,37 @@ void TrackPanel::OnMergeStereo(wxCommandEvent & WXUNUSED(event))
Refresh(false);
}

void TrackPanel::OnViewSettings(wxCommandEvent &)
{
// Fetch current defaults
const SpectrogramSettings &defaults = SpectrogramSettings::defaults();

// Fetch the chosen track's private settings
WaveTrack *const wt = static_cast<WaveTrack*>(mPopupMenuTarget);
SpectrogramSettings &settings = wt->GetIndependentSpectrogramSettings();

// Build the dialog
SpectrumPrefsFactory factory(settings);
PrefsDialog::Factories factories;
factories.push_back(&factory);
PrefsDialog dialog(this, _("View Settings: "), factories);

// Commit changes and redraw, but only if not cancelled
if (dialog.ShowModal()) {
WaveTrack *const partner =
wt->GetLinked() ? static_cast<WaveTrack*>(wt->GetLink()) : 0;
if (settings.checkDefaults && settings == defaults) {
// Make this track's settings non-independent
wt->SetSpectrogramSettings(NULL);
if (partner)
partner->SetSpectrogramSettings(NULL);
}
else if (partner)
partner->SetSpectrogramSettings(new SpectrogramSettings(settings));
Refresh(false);
}
}

/// Set the Display mode based on the menu choice in the Track Menu.
/// Note that gModes MUST BE IN THE SAME ORDER AS THE MENU CHOICES!!
/// const wxChar *gModes[] = { wxT("waveform"), wxT("waveformDB"),
@@ -458,6 +458,7 @@ class AUDACITY_DLL_API TrackPanel:public wxPanel {
virtual void MoveTrack(Track* target, int eventId);
virtual void OnChangeOctave (wxCommandEvent &event);
virtual void OnChannelChange(wxCommandEvent &event);
virtual void OnViewSettings(wxCommandEvent &event);
virtual void OnSetDisplay (wxCommandEvent &event);
virtual void OnSetTimeTrackRange (wxCommandEvent &event);
virtual void OnTimeTrackLin(wxCommandEvent &event);

0 comments on commit e689ace

Please sign in to comment.