From 28a634c5e24b6a1a3174c3cd925a89b40206e6c6 Mon Sep 17 00:00:00 2001 From: James Crook Date: Sat, 24 Apr 2021 12:20:18 +0100 Subject: [PATCH] Bug 2671 - ENH: "Show track name as overlay" cannot be turned on from main menus --- src/TrackArtist.cpp | 6 +++--- src/menus/ViewMenus.cpp | 20 ++++++++++++++++++++ src/prefs/GUIPrefs.cpp | 6 ++++++ src/prefs/GUIPrefs.h | 1 + 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/TrackArtist.cpp b/src/TrackArtist.cpp index 0fe487838..eec1f4f8b 100644 --- a/src/TrackArtist.cpp +++ b/src/TrackArtist.cpp @@ -245,6 +245,8 @@ void TrackArtist::UpdateSelectedPrefs( int id ) { if( id == ShowClippingPrefsID()) mShowClipping = gPrefs->Read(wxT("/GUI/ShowClipping"), mShowClipping); + if( id == ShowTrackNameInWaveformPrefsID()) + mbShowTrackNameInTrack = gPrefs->ReadBool(wxT("/GUI/ShowTrackNameInWaveform"), false); } void TrackArtist::UpdatePrefs() @@ -252,10 +254,8 @@ void TrackArtist::UpdatePrefs() mdBrange = gPrefs->Read(ENV_DB_KEY, mdBrange); mSampleDisplay = TracksPrefs::SampleViewChoice(); - mbShowTrackNameInTrack = - gPrefs->ReadBool(wxT("/GUI/ShowTrackNameInWaveform"), false); - UpdateSelectedPrefs( ShowClippingPrefsID() ); + UpdateSelectedPrefs( ShowTrackNameInWaveformPrefsID() ); SetColours(0); } diff --git a/src/menus/ViewMenus.cpp b/src/menus/ViewMenus.cpp index 8142be887..5f640fff5 100644 --- a/src/menus/ViewMenus.cpp +++ b/src/menus/ViewMenus.cpp @@ -334,6 +334,23 @@ void OnShowClipping(const CommandContext &context) trackPanel.Refresh(false); } +void OnShowNameOverlay(const CommandContext &context) +{ + auto &project = context.project; + auto &commandManager = CommandManager::Get( project ); + auto &trackPanel = TrackPanel::Get( project ); + + bool checked = !gPrefs->Read(wxT("/GUI/ShowTrackNameInWaveform"), 0L); + gPrefs->Write(wxT("/GUI/ShowTrackNameInWaveform"), checked); + gPrefs->Flush(); + commandManager.Check(wxT("ShowTrackNameInWaveform"), checked); + + wxTheApp->AddPendingEvent(wxCommandEvent{ + EVT_PREFS_UPDATE, ShowTrackNameInWaveformPrefsID() }); + + trackPanel.Refresh(false); +} + #if defined(EXPERIMENTAL_EFFECTS_RACK) void OnShowEffectsRack(const CommandContext &context ) { @@ -442,6 +459,9 @@ BaseItemSharedPtr ViewMenu() Command( wxT("ShowExtraMenus"), XXO("&Extra Menus (on/off)"), FN(OnShowExtraMenus), AlwaysEnabledFlag, Options{}.CheckTest( wxT("/GUI/ShowExtraMenus"), false ) ), + Command( wxT("ShowTrackNameInWaveform"), XXO("Track &Name (on/off)"), + FN(OnShowNameOverlay), AlwaysEnabledFlag, + Options{}.CheckTest( wxT("/GUI/ShowTrackNameInWaveform"), false ) ), Command( wxT("ShowClipping"), XXO("&Show Clipping (on/off)"), FN(OnShowClipping), AlwaysEnabledFlag, Options{}.CheckTest( wxT("/GUI/ShowClipping"), false ) ) diff --git a/src/prefs/GUIPrefs.cpp b/src/prefs/GUIPrefs.cpp index 63d39f685..79ee95e12 100644 --- a/src/prefs/GUIPrefs.cpp +++ b/src/prefs/GUIPrefs.cpp @@ -371,6 +371,12 @@ int ShowClippingPrefsID() return value; } +int ShowTrackNameInWaveformPrefsID() +{ + static int value = wxNewId(); + return value; +} + namespace{ PrefsPanel::Registration sAttachment{ "GUI", [](wxWindow *parent, wxWindowID winid, AudacityProject *) diff --git a/src/prefs/GUIPrefs.h b/src/prefs/GUIPrefs.h index 0e2d0c3f0..79d0c5db9 100644 --- a/src/prefs/GUIPrefs.h +++ b/src/prefs/GUIPrefs.h @@ -69,6 +69,7 @@ class GUIPrefs final : public PrefsPanel }; int ShowClippingPrefsID(); +int ShowTrackNameInWaveformPrefsID(); extern ChoiceSetting GUIManualLocation