1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-25 08:38:39 +02:00

Implement ReloadPreferences for SetPreferences Command.

This commit is contained in:
James Crook 2018-02-10 16:31:10 +00:00 committed by Paul Licameli
parent a8903a6c56
commit 2caad0f407
4 changed files with 41 additions and 3 deletions

View File

@ -1618,6 +1618,8 @@ void AudacityProject::CreateMenusAndCommands()
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("SetTrack"), _("Set Track..."), FN(OnAudacityCommand),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->AddItem(wxT("ReloadPreferences"), _("&Reload Preferences..."), FN(OnReloadPreferences),
AudioIONotBusyFlag, AudioIONotBusyFlag);
c->EndSubMenu();
@ -4892,6 +4894,37 @@ void AudacityProject::OnPreferences(const CommandContext &WXUNUSED(context) )
}
}
void AudacityProject::OnReloadPreferences(const CommandContext &WXUNUSED(context) )
{
{
GlobalPrefsDialog dialog(this /* parent */ );
wxCommandEvent Evt;
//dialog.Show();
dialog.OnOK(Evt);
}
// LL: Moved from PrefsDialog since wxWidgets on OSX can't deal with
// rebuilding the menus while the PrefsDialog is still in the modal
// state.
for (size_t i = 0; i < gAudacityProjects.size(); i++) {
AudacityProject *p = gAudacityProjects[i].get();
p->RebuildMenuBar();
p->RebuildOtherMenus();
// TODO: The comment below suggests this workaround is obsolete.
#if defined(__WXGTK__)
// Workaround for:
//
// http://bugzilla.audacityteam.org/show_bug.cgi?id=458
//
// This workaround should be removed when Audacity updates to wxWidgets 3.x which has a fix.
wxRect r = p->GetRect();
p->SetSize(wxSize(1,1));
p->SetSize(r.GetSize());
#endif
}
}
void AudacityProject::OnPageSetup(const CommandContext &WXUNUSED(context) )
{
HandlePageSetup(this);

View File

@ -235,6 +235,7 @@ void OnExportLabels(const CommandContext &context );
void OnExportMIDI(const CommandContext &context );
void OnPreferences(const CommandContext &context );
void OnReloadPreferences(const CommandContext &context );
void OnPageSetup(const CommandContext &context );
void OnPrint(const CommandContext &context );

View File

@ -20,6 +20,7 @@ SetPreferenceCommand classes
#include "../Prefs.h"
#include "../ShuttleGui.h"
#include "../commands/CommandContext.h"
#include "../Project.h" // for "OnReloadPreferences".
bool GetPreferenceCommand::DefineParams( ShuttleParams & S ){
S.Define( mName, wxT("Name"), wxT("") );
@ -68,11 +69,11 @@ void SetPreferenceCommand::PopulateOrExchange(ShuttleGui & S)
S.EndMultiColumn();
}
bool SetPreferenceCommand::Apply(const CommandContext & WXUNUSED(context))
bool SetPreferenceCommand::Apply(const CommandContext & context)
{
bool bOK = gPrefs->Write(mName, mValue) && gPrefs->Flush();
if( bOK && mbReload )
bOK = bOK; // Not yet implemented.
context.GetProject()->OnReloadPreferences( context );
return bOK;
}

View File

@ -518,7 +518,10 @@ void PrefsDialog::OnOK(wxCommandEvent & WXUNUSED(event))
WaveformSettings::defaults().LoadPrefs();
if( IsModal() )
EndModal(true);
else
Destroy();
}
void PrefsDialog::SelectPageByName(const wxString &pageName)