diff --git a/src/AudacityApp.cpp b/src/AudacityApp.cpp
index 2e3fd57fa..712c017b6 100644
--- a/src/AudacityApp.cpp
+++ b/src/AudacityApp.cpp
@@ -1658,8 +1658,9 @@ bool AudacityApp::OnInit()
          // Only want one page of the preferences
          PrefsDialog::Factories factories;
          factories.push_back(KeyConfigPrefsFactory( id ));
-         auto pWindow = FindProjectFrame( GetActiveProject() );
-         GlobalPrefsDialog dialog( pWindow, factories );
+         const auto pProject = GetActiveProject();
+         auto pWindow = FindProjectFrame( pProject );
+         GlobalPrefsDialog dialog( pWindow, pProject, factories );
          dialog.ShowModal();
          MenuCreator::RebuildAllMenuBars();
          return true;
@@ -1796,7 +1797,7 @@ bool AudacityApp::InitTempDir()
       // Only want one page of the preferences
       PrefsDialog::Factories factories;
       factories.push_back(DirectoriesPrefsFactory());
-      GlobalPrefsDialog dialog(NULL, factories);
+      GlobalPrefsDialog dialog(nullptr, nullptr, factories);
       dialog.ShowModal();
 
       AudacityMessageBox(XO(
@@ -2248,7 +2249,7 @@ void AudacityApp::OnMenuPreferences(wxCommandEvent & event)
    // all platforms.
 
    if(AllProjects{}.empty()) {
-      GlobalPrefsDialog dialog(NULL /* parent */ );
+      GlobalPrefsDialog dialog(nullptr /* parent */, nullptr );
       dialog.ShowModal();
    }
    else
diff --git a/src/commands/GetInfoCommand.cpp b/src/commands/GetInfoCommand.cpp
index 43aaf1a14..2abd09477 100644
--- a/src/commands/GetInfoCommand.cpp
+++ b/src/commands/GetInfoCommand.cpp
@@ -362,7 +362,7 @@ bool GetInfoCommand::SendPreferences(const CommandContext &context)
 {
    context.StartArray();
    auto pWin = &GetProjectFrame( context.project );
-   GlobalPrefsDialog dialog( pWin );
+   GlobalPrefsDialog dialog( pWin, &context.project );
    // wxCommandEvent Evt;
    //dialog.Show();
    ShuttleGuiGetDefinition S(pWin, *((context.pOutput)->mStatusTarget) );
diff --git a/src/menus/EditMenus.cpp b/src/menus/EditMenus.cpp
index be180bc30..39c1c3e4b 100644
--- a/src/menus/EditMenus.cpp
+++ b/src/menus/EditMenus.cpp
@@ -933,7 +933,7 @@ void OnPreferences(const CommandContext &context)
 {
    auto &project = context.project;
 
-   GlobalPrefsDialog dialog(&GetProjectFrame( project ) /* parent */ );
+   GlobalPrefsDialog dialog(&GetProjectFrame( project ) /* parent */, &project );
 
    if( ScreenshotCommand::MayCapture( &dialog ) )
       return;
diff --git a/src/prefs/BatchPrefs.cpp b/src/prefs/BatchPrefs.cpp
index 6ccb11584..0e2778644 100644
--- a/src/prefs/BatchPrefs.cpp
+++ b/src/prefs/BatchPrefs.cpp
@@ -96,7 +96,7 @@ BatchPrefs::~BatchPrefs()
 }
 
 PrefsPanel::Factory
-BatchPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+BatchPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew BatchPrefs(parent, winid);
diff --git a/src/prefs/DevicePrefs.cpp b/src/prefs/DevicePrefs.cpp
index 8a6aa3564..cbf8631ea 100644
--- a/src/prefs/DevicePrefs.cpp
+++ b/src/prefs/DevicePrefs.cpp
@@ -423,7 +423,7 @@ bool DevicePrefs::Commit()
 }
 
 PrefsPanel::Factory
-DevicePrefsFactory = [](wxWindow *parent, wxWindowID winid)
+DevicePrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 
 {
    wxASSERT(parent); // to justify safenew
diff --git a/src/prefs/DirectoriesPrefs.cpp b/src/prefs/DirectoriesPrefs.cpp
index 2929b3b36..d3c5e83eb 100644
--- a/src/prefs/DirectoriesPrefs.cpp
+++ b/src/prefs/DirectoriesPrefs.cpp
@@ -292,7 +292,7 @@ bool DirectoriesPrefs::Commit()
 
 PrefsPanel::Factory
 DirectoriesPrefsFactory() {
-   return [](wxWindow *parent, wxWindowID winid)
+   return [](wxWindow *parent, wxWindowID winid, AudacityProject *)
    {
       wxASSERT(parent); // to justify safenew
       return safenew DirectoriesPrefs(parent, winid);
diff --git a/src/prefs/EffectsPrefs.cpp b/src/prefs/EffectsPrefs.cpp
index 71dc1585d..407f6c1d2 100644
--- a/src/prefs/EffectsPrefs.cpp
+++ b/src/prefs/EffectsPrefs.cpp
@@ -251,7 +251,7 @@ bool EffectsPrefs::Commit()
 }
 
 PrefsPanel::Factory
-EffectsPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+EffectsPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew EffectsPrefs(parent, winid);
diff --git a/src/prefs/ExtImportPrefs.cpp b/src/prefs/ExtImportPrefs.cpp
index 0a29f3ef0..4a06a2b16 100644
--- a/src/prefs/ExtImportPrefs.cpp
+++ b/src/prefs/ExtImportPrefs.cpp
@@ -827,7 +827,7 @@ void ExtImportPrefsDropTarget::OnLeave()
 }
 
 PrefsPanel::Factory
-ExtImportPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+ExtImportPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew ExtImportPrefs(parent, winid);
diff --git a/src/prefs/GUIPrefs.cpp b/src/prefs/GUIPrefs.cpp
index 1d2f243dd..e8e4e41ca 100644
--- a/src/prefs/GUIPrefs.cpp
+++ b/src/prefs/GUIPrefs.cpp
@@ -378,7 +378,7 @@ int ShowClippingPrefsID()
 }
 
 PrefsPanel::Factory
-GUIPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+GUIPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew GUIPrefs(parent, winid);
diff --git a/src/prefs/ImportExportPrefs.cpp b/src/prefs/ImportExportPrefs.cpp
index 2d8b1ab69..56c86296d 100644
--- a/src/prefs/ImportExportPrefs.cpp
+++ b/src/prefs/ImportExportPrefs.cpp
@@ -150,7 +150,7 @@ bool ImportExportPrefs::Commit()
 }
 
 PrefsPanel::Factory
-ImportExportPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+ImportExportPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew ImportExportPrefs(parent, winid);
diff --git a/src/prefs/KeyConfigPrefs.cpp b/src/prefs/KeyConfigPrefs.cpp
index 06d5a3c84..65740d25a 100644
--- a/src/prefs/KeyConfigPrefs.cpp
+++ b/src/prefs/KeyConfigPrefs.cpp
@@ -714,7 +714,7 @@ void KeyConfigPrefs::Cancel()
 PrefsPanel::Factory
 KeyConfigPrefsFactory( const CommandID &name )
 {
-   return [=](wxWindow *parent, wxWindowID winid)
+   return [=](wxWindow *parent, wxWindowID winid, AudacityProject *)
    {
       wxASSERT(parent); // to justify safenew
       auto result = safenew KeyConfigPrefs{ parent, winid, name };
diff --git a/src/prefs/LibraryPrefs.cpp b/src/prefs/LibraryPrefs.cpp
index bd0316569..d54759127 100644
--- a/src/prefs/LibraryPrefs.cpp
+++ b/src/prefs/LibraryPrefs.cpp
@@ -262,7 +262,7 @@ bool LibraryPrefs::Commit()
 }
 
 PrefsPanel::Factory
-LibraryPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+LibraryPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew LibraryPrefs(parent, winid);
diff --git a/src/prefs/MidiIOPrefs.cpp b/src/prefs/MidiIOPrefs.cpp
index 6e56cbdc0..79395c676 100644
--- a/src/prefs/MidiIOPrefs.cpp
+++ b/src/prefs/MidiIOPrefs.cpp
@@ -302,7 +302,7 @@ bool MidiIOPrefs::Validate()
 }
 
 PrefsPanel::Factory
-MidiIOPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+MidiIOPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew MidiIOPrefs(parent, winid);
diff --git a/src/prefs/ModulePrefs.cpp b/src/prefs/ModulePrefs.cpp
index d7a957e95..9745edb84 100644
--- a/src/prefs/ModulePrefs.cpp
+++ b/src/prefs/ModulePrefs.cpp
@@ -188,7 +188,7 @@ void ModulePrefs::SetModuleStatus(const FilePath &fname, int iStatus){
 }
 
 PrefsPanel::Factory
-ModulePrefsFactory = [](wxWindow *parent, wxWindowID winid)
+ModulePrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew ModulePrefs(parent, winid);
diff --git a/src/prefs/MousePrefs.cpp b/src/prefs/MousePrefs.cpp
index de1e2692c..3a228a37b 100644
--- a/src/prefs/MousePrefs.cpp
+++ b/src/prefs/MousePrefs.cpp
@@ -223,7 +223,7 @@ bool MousePrefs::Commit()
 }
 
 PrefsPanel::Factory
-MousePrefsFactory = [](wxWindow *parent, wxWindowID winid)
+MousePrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew MousePrefs(parent, winid);
diff --git a/src/prefs/PlaybackPrefs.cpp b/src/prefs/PlaybackPrefs.cpp
index 06154b3cb..5a0767e09 100644
--- a/src/prefs/PlaybackPrefs.cpp
+++ b/src/prefs/PlaybackPrefs.cpp
@@ -183,7 +183,7 @@ bool PlaybackPrefs::Commit()
 }
 
 PrefsPanel::Factory
-PlaybackPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+PlaybackPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew PlaybackPrefs(parent, winid);
diff --git a/src/prefs/PrefsDialog.cpp b/src/prefs/PrefsDialog.cpp
index 2c9c7f6f4..19a323f4d 100644
--- a/src/prefs/PrefsDialog.cpp
+++ b/src/prefs/PrefsDialog.cpp
@@ -533,7 +533,7 @@ PrefsDialog::Factories
 
 
 PrefsDialog::PrefsDialog(
-   wxWindow * parent,
+   wxWindow * parent, AudacityProject *pProject,
    const TranslatableString &titlePrefix, Factories &factories)
 :  wxDialogWrapper(parent, wxID_ANY, XO("Audacity Preferences"),
             wxDefaultPosition,
@@ -575,7 +575,7 @@ PrefsDialog::PrefsDialog(
                {
                   const PrefsNode &node = *it;
                   const PrefsPanel::Factory &factory = node.factory;
-                  wxWindow *const w = factory(mCategories, wxID_ANY);
+                  wxWindow *const w = factory(mCategories, wxID_ANY, pProject);
                   if (stack.empty())
                      // Parameters are: AddPage(page, name, IsSelected, imageId).
                      mCategories->AddPage(w, w->GetName(), false, 0);
@@ -603,7 +603,7 @@ PrefsDialog::PrefsDialog(
          // Unique page, don't show the factory
          const PrefsNode &node = factories[0];
          const PrefsPanel::Factory &factory = node.factory;
-         mUniquePage = factory(S.GetParent(), wxID_ANY);
+         mUniquePage = factory(S.GetParent(), wxID_ANY, pProject);
          wxWindow * uniquePageWindow = S.Prop(1)
             .Position(wxEXPAND)
             .AddWindow(mUniquePage);
@@ -888,8 +888,9 @@ int PrefsDialog::GetSelectedPage() const
       return 0;
 }
 
-GlobalPrefsDialog::GlobalPrefsDialog(wxWindow * parent, Factories &factories)
-   : PrefsDialog(parent, XO("Preferences:"), factories)
+GlobalPrefsDialog::GlobalPrefsDialog(
+   wxWindow * parent, AudacityProject *pProject, Factories &factories)
+   : PrefsDialog(parent, pProject, XO("Preferences:"), factories)
 {
 }
 
@@ -951,7 +952,8 @@ void DoReloadPreferences( AudacityProject &project )
       SpectrogramSettings::defaults().LoadPrefs();
       WaveformSettings::defaults().LoadPrefs();
 
-      GlobalPrefsDialog dialog(&GetProjectFrame( project ) /* parent */ );
+      GlobalPrefsDialog dialog(
+         &GetProjectFrame( project ) /* parent */, &project );
       wxCommandEvent Evt;
       //dialog.Show();
       dialog.OnOK(Evt);
diff --git a/src/prefs/PrefsDialog.h b/src/prefs/PrefsDialog.h
index 4cef3c45f..06187fb61 100644
--- a/src/prefs/PrefsDialog.h
+++ b/src/prefs/PrefsDialog.h
@@ -16,6 +16,7 @@
 #include <vector>
 #include "../widgets/wxPanelWrapper.h" // to inherit
 
+class AudacityProject;
 class wxTreebook;
 class wxTreeEvent;
 class PrefsPanel;
@@ -27,13 +28,16 @@ class ShuttleGui;
 #define CONST const
 #endif
 
+class AudacityProject;
+
 class PrefsDialog /* not final */ : public wxDialogWrapper
 {
  public:
     // An array of PrefsNode specifies the tree of pages in pre-order traversal.
     struct PrefsNode {
        using Factory =
-         std::function< PrefsPanel * (wxWindow *parent, wxWindowID winid) >;
+         std::function< PrefsPanel * (
+            wxWindow *parent, wxWindowID winid, AudacityProject *) >;
        Factory factory;
        CONST int nChildren;
        bool expanded;
@@ -48,6 +52,7 @@ class PrefsDialog /* not final */ : public wxDialogWrapper
    static Factories &DefaultFactories();
 
    PrefsDialog(wxWindow * parent,
+      AudacityProject *pProject, // may be null
       const TranslatableString &titlePrefix = XO("Preferences:"),
       Factories &factories = DefaultFactories());
    virtual ~PrefsDialog();
@@ -92,7 +97,9 @@ private:
 class GlobalPrefsDialog final : public PrefsDialog
 {
 public:
-   GlobalPrefsDialog(wxWindow * parent, Factories &factories = DefaultFactories());
+   GlobalPrefsDialog(
+      wxWindow * parent, AudacityProject *pProject,
+      Factories &factories = DefaultFactories());
    virtual ~GlobalPrefsDialog();
    long GetPreferredPage() override;
    void SavePreferredPage() override;
diff --git a/src/prefs/PrefsPanel.h b/src/prefs/PrefsPanel.h
index 2b4094cf6..9ed84312c 100644
--- a/src/prefs/PrefsPanel.h
+++ b/src/prefs/PrefsPanel.h
@@ -42,6 +42,7 @@ MousePrefs, QualityPrefs, SpectrumPrefs and ThemePrefs.
 #define TOP_LEVEL_BORDER       5
 #define GENERIC_CONTROL_BORDER 5
 
+class AudacityProject;
 class ShuttleGui;
 
 class PrefsPanel /* not final */ : public wxPanelWrapper, ComponentInterface
@@ -49,8 +50,12 @@ class PrefsPanel /* not final */ : public wxPanelWrapper, ComponentInterface
  public:
    // \brief Type alias for factories such as GUIPrefsFactory that produce a
    // PrefsPanel.
+   // The project pointer may be null.  Usually it's not needed because
+   // preferences are global.  But sometimes you need a project, such as to
+   // preview the preference changes for spectrograms.
    using Factory =
-      std::function< PrefsPanel * (wxWindow *parent, wxWindowID winid) >;
+      std::function< PrefsPanel * (
+         wxWindow *parent, wxWindowID winid, AudacityProject *) >;
 
    PrefsPanel(
       wxWindow * parent, wxWindowID winid, const TranslatableString &title)
diff --git a/src/prefs/ProjectsPrefs.cpp b/src/prefs/ProjectsPrefs.cpp
index 1d463ee90..cc20ba59f 100644
--- a/src/prefs/ProjectsPrefs.cpp
+++ b/src/prefs/ProjectsPrefs.cpp
@@ -96,7 +96,7 @@ bool ProjectsPrefs::Commit()
 }
 
 PrefsPanel::Factory
-ProjectsPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+ProjectsPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew ProjectsPrefs(parent, winid);
diff --git a/src/prefs/QualityPrefs.cpp b/src/prefs/QualityPrefs.cpp
index 9b3a6cd3a..eab6c8fcf 100644
--- a/src/prefs/QualityPrefs.cpp
+++ b/src/prefs/QualityPrefs.cpp
@@ -234,7 +234,7 @@ bool QualityPrefs::Commit()
 }
 
 PrefsPanel::Factory
-QualityPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+QualityPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew QualityPrefs(parent, winid);
diff --git a/src/prefs/RecordingPrefs.cpp b/src/prefs/RecordingPrefs.cpp
index bd523b09a..e66308915 100644
--- a/src/prefs/RecordingPrefs.cpp
+++ b/src/prefs/RecordingPrefs.cpp
@@ -305,7 +305,7 @@ void RecordingPrefs::OnToggleCustomName(wxCommandEvent & /* Evt */)
 }
 
 PrefsPanel::Factory
-RecordingPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+RecordingPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew RecordingPrefs(parent, winid);
diff --git a/src/prefs/SpectrumPrefs.cpp b/src/prefs/SpectrumPrefs.cpp
index dcb62514a..aad46bf00 100644
--- a/src/prefs/SpectrumPrefs.cpp
+++ b/src/prefs/SpectrumPrefs.cpp
@@ -588,7 +588,7 @@ END_EVENT_TABLE()
 PrefsPanel::Factory
 SpectrumPrefsFactory( WaveTrack *wt )
 {
-   return [=](wxWindow *parent, wxWindowID winid)
+   return [=](wxWindow *parent, wxWindowID winid, AudacityProject *)
    {
       wxASSERT(parent); // to justify safenew
       return safenew SpectrumPrefs(parent, winid, wt);
diff --git a/src/prefs/ThemePrefs.cpp b/src/prefs/ThemePrefs.cpp
index 396e43f3c..891e8b659 100644
--- a/src/prefs/ThemePrefs.cpp
+++ b/src/prefs/ThemePrefs.cpp
@@ -230,7 +230,7 @@ bool ThemePrefs::Commit()
 }
 
 PrefsPanel::Factory
-ThemePrefsFactory = [](wxWindow *parent, wxWindowID winid)
+ThemePrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew ThemePrefs(parent, winid);
diff --git a/src/prefs/TracksBehaviorsPrefs.cpp b/src/prefs/TracksBehaviorsPrefs.cpp
index 0984257af..e299ff5f1 100644
--- a/src/prefs/TracksBehaviorsPrefs.cpp
+++ b/src/prefs/TracksBehaviorsPrefs.cpp
@@ -132,7 +132,7 @@ bool TracksBehaviorsPrefs::Commit()
 }
 
 PrefsPanel::Factory
-TracksBehaviorsPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+TracksBehaviorsPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew TracksBehaviorsPrefs(parent, winid);
diff --git a/src/prefs/TracksPrefs.cpp b/src/prefs/TracksPrefs.cpp
index 66b08748c..0df951828 100644
--- a/src/prefs/TracksPrefs.cpp
+++ b/src/prefs/TracksPrefs.cpp
@@ -396,7 +396,7 @@ bool TracksPrefs::Commit()
 }
 
 PrefsPanel::Factory
-TracksPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+TracksPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew TracksPrefs(parent, winid);
diff --git a/src/prefs/WarningsPrefs.cpp b/src/prefs/WarningsPrefs.cpp
index 631fb9ce6..4bd23133a 100644
--- a/src/prefs/WarningsPrefs.cpp
+++ b/src/prefs/WarningsPrefs.cpp
@@ -107,7 +107,7 @@ bool WarningsPrefs::Commit()
 }
 
 PrefsPanel::Factory
-WarningsPrefsFactory = [](wxWindow *parent, wxWindowID winid)
+WarningsPrefsFactory = [](wxWindow *parent, wxWindowID winid, AudacityProject *)
 {
    wxASSERT(parent); // to justify safenew
    return safenew WarningsPrefs(parent, winid);
diff --git a/src/prefs/WaveformPrefs.cpp b/src/prefs/WaveformPrefs.cpp
index d947cc607..349486ded 100644
--- a/src/prefs/WaveformPrefs.cpp
+++ b/src/prefs/WaveformPrefs.cpp
@@ -256,7 +256,7 @@ END_EVENT_TABLE()
 PrefsPanel::Factory
 WaveformPrefsFactory(WaveTrack *wt)
 {
-   return [=](wxWindow *parent, wxWindowID winid)
+   return [=](wxWindow *parent, wxWindowID winid, AudacityProject *)
    {
       wxASSERT(parent); // to justify safenew
       return safenew WaveformPrefs(parent, winid, wt);
diff --git a/src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp b/src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp
index 88a4cda04..7c5befad7 100644
--- a/src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp
+++ b/src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp
@@ -828,10 +828,10 @@ void WaveTrackMenuTable::OnSpectrogramSettings(wxCommandEvent &)
    class ViewSettingsDialog final : public PrefsDialog
    {
    public:
-      ViewSettingsDialog(wxWindow *parent,
+      ViewSettingsDialog(wxWindow *parent, AudacityProject &project,
          const TranslatableString &title, PrefsDialog::Factories &factories,
          int page)
-         : PrefsDialog(parent, title, factories)
+         : PrefsDialog(parent, &project, title, factories)
          , mPage(page)
       {
       }
@@ -869,7 +869,8 @@ void WaveTrackMenuTable::OnSpectrogramSettings(wxCommandEvent &)
       0;
 
    auto title = XO("%s:").Format( pTrack->GetName() );
-   ViewSettingsDialog dialog(mpData->pParent, title, factories, page);
+   ViewSettingsDialog dialog(
+      mpData->pParent, mpData->project, title, factories, page);
 
    if (0 != dialog.ShowModal()) {
       // Redraw