diff --git a/src/menus/HelpMenus.cpp b/src/menus/HelpMenus.cpp index b477669c2..5297c5ccd 100644 --- a/src/menus/HelpMenus.cpp +++ b/src/menus/HelpMenus.cpp @@ -21,6 +21,7 @@ #include "../ShuttleGui.h" #include "../SplashDialog.h" #include "../Theme.h" +#include "../toolbars/ToolManager.h" #include "../commands/CommandContext.h" #include "../commands/CommandManager.h" #include "../prefs/PrefsDialog.h" @@ -306,14 +307,29 @@ struct Handler : CommandHandlerObject { void OnResetConfig(const CommandContext &context) { auto &project = context.project; - wxString dir = gPrefs->Read(wxT("/Directories/TempDir")); + wxString dir = gPrefs->Read("/Directories/TempDir"); gPrefs->DeleteAll(); // This stops ReloadPreferences warning about directory change // on next restart. - gPrefs->Write(wxT("/Directories/TempDir"), dir); + gPrefs->Write("/Directories/TempDir", dir); + gPrefs->Write("/GUI/SyncLockTracks", 0); + gPrefs->Write("/SnapTo", 0 ); + ProjectSelectionManager::Get( project ).AS_SetSnapTo( 0 ); + // There are many more things we could reset here. + // Beeds discussion as to which make sense to. + // Maybe in future versions? + // - Reset Effects + // - Reset Recording and Playback volumes + // - Reset Selection formats (and for spectral too) + // - Reset Play-at-speed speed to x1 + // - Reset Selected tool to cursor. + // - Stop playback/recording and unapply pause. + // - Set Zoom sensibly. + //ProjectSelectionManager::Get(project).AS_SetRate(44100.0); + gPrefs->Write("/AudioIO/SoundActivatedRecord", 0); gPrefs->Flush(); DoReloadPreferences(project); - // OnResetToolBars(context); + ToolManager::OnResetToolBars(context); gPrefs->Flush(); } diff --git a/src/menus/ToolbarMenus.cpp b/src/menus/ToolbarMenus.cpp index 07131aa52..ae99c3948 100644 --- a/src/menus/ToolbarMenus.cpp +++ b/src/menus/ToolbarMenus.cpp @@ -18,15 +18,12 @@ struct Handler : CommandHandlerObject { void OnResetToolBars(const CommandContext &context) { - auto &project = context.project; - auto &toolManager = ToolManager::Get( project ); - - toolManager.Reset(); - MenuManager::Get(project).ModifyToolbarMenus(project); + ToolManager::OnResetToolBars(context); } }; // struct Handler + } // namespace static CommandHandlerObject &findCommandHandler(AudacityProject &) { diff --git a/src/toolbars/ToolManager.cpp b/src/toolbars/ToolManager.cpp index d73aafca3..f1776aa23 100644 --- a/src/toolbars/ToolManager.cpp +++ b/src/toolbars/ToolManager.cpp @@ -28,6 +28,7 @@ #include "ToolManager.h" #include "../Experimental.h" +#include "../commands/CommandContext.h" // For compilers that support precompilation, includes "wx/wx.h". #include @@ -547,6 +548,17 @@ static struct DefaultConfigEntry { { SpectralSelectionBarID, NoBarID, NoBarID }, }; +// Static member function. +void ToolManager::OnResetToolBars(const CommandContext &context) +{ + auto &project = context.project; + auto &toolManager = ToolManager::Get( project ); + + toolManager.Reset(); + MenuManager::Get(project).ModifyToolbarMenus(project); +} + + void ToolManager::Reset() { // Disconnect all docked bars diff --git a/src/toolbars/ToolManager.h b/src/toolbars/ToolManager.h index 565cd0524..7affabe13 100644 --- a/src/toolbars/ToolManager.h +++ b/src/toolbars/ToolManager.h @@ -23,6 +23,10 @@ #include "../ClientData.h" #include "ToolDock.h" +#include "../commands/CommandFunctors.h" +#include "../commands/CommandManager.h" + + class wxCommandEvent; class wxFrame; class wxMouseEvent; @@ -80,6 +84,8 @@ class ToolManager final const ToolDock *GetBotDock() const; void Reset(); + static void OnResetToolBars(const CommandContext &context); + void Destroy(); void RegenerateTooltips(); @@ -210,8 +216,6 @@ public: }; -#include "../commands/CommandFunctors.h" -#include "../commands/CommandManager.h" // Construct a static instance of this class to add a menu item that shows and // hides a toolbar