diff --git a/src/Experimental.h b/src/Experimental.h index 636d738cc..42aa8cd1b 100644 --- a/src/Experimental.h +++ b/src/Experimental.h @@ -169,6 +169,7 @@ // First committed by Martyn, 30th May 2013. //#define EXPERIMENTAL_OUTPUT_DISPLAY -// Module prefs may be used to treat 'official' modules differently to 3rd party ones -//#define EXPERIMENTAL_MODULE_PREFS +// Module prefs provides a panel in prefs where users can choose which modules +// to enable. +#define EXPERIMENTAL_MODULE_PREFS #endif diff --git a/src/LoadModules.cpp b/src/LoadModules.cpp index aaa9774b2..42a5eae8b 100644 --- a/src/LoadModules.cpp +++ b/src/LoadModules.cpp @@ -225,10 +225,15 @@ void ModuleManager::Initialize(CommandHandler &cmdHandler) continue; if( iModuleStatus == kModuleFailed ) continue; + // New module? You have to go and explicitly enable it. + if( iModuleStatus == kModuleNew ){ + // To ensure it is noted in config file and so + // appears on modules page. + ModulePrefs::SetModuleStatus( files[i], kModuleNew); + continue; + } - if( (iModuleStatus == kModuleAsk ) || - (iModuleStatus == kModuleNew ) - ) + if( iModuleStatus == kModuleAsk ) #endif // JKC: I don't like prompting for the plug-ins individually // I think it would be better to show the module prefs page, diff --git a/src/prefs/ModulePrefs.cpp b/src/prefs/ModulePrefs.cpp index eb4aae0d9..baada9d4a 100644 --- a/src/prefs/ModulePrefs.cpp +++ b/src/prefs/ModulePrefs.cpp @@ -98,13 +98,20 @@ void ModulePrefs::PopulateOrExchange(ShuttleGui & S) S.AddFixedText(_("These are experimental Modules. Enable them only if you've read the manual\nand know what you are doing.") ); S.AddFixedText(wxString(wxT(" ")) + _("'Ask' means Audacity will ask if you want to load the plug-each time it starts.") ); S.AddFixedText(wxString(wxT(" ")) + _("'Failed' means Audacity thinks the plug-in is broken and won't run it.") ); - S.AddFixedText(wxString(wxT(" ")) + _("'New' is like 'Ask', but asks just once.") ); - S.StartMultiColumn( 2 ); - int i; - for(i=0;i<(int)mModules.GetCount();i++) - S.TieChoice( mModules[i], mStatuses[i], &StatusChoices ); - S.EndMultiColumn(); - + S.AddFixedText(wxString(wxT(" ")) + _("'New' means no choice has been made yet.") ); + S.StartScroller(); + { + S.StartMultiColumn( 2 ); + int i; + for(i=0;i<(int)mModules.GetCount();i++) + S.TieChoice( mModules[i], mStatuses[i], &StatusChoices ); + S.EndMultiColumn(); + } + if( mModules.GetCount() < 1 ) + { + S.AddFixedText( _("No Modules were found") ); + } + S.EndScroller(); } S.EndStatic(); }