1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-20 14:20:06 +02:00

Fix scripting bug where missing parameters gave syntax error

In these cases the default parameters should have been used instead.
Also the Help command now gives Help on Help by default.
This commit is contained in:
James Crook 2017-12-20 19:58:05 +00:00
parent b6138b1968
commit a7960864dd
4 changed files with 7 additions and 2 deletions

View File

@ -245,6 +245,8 @@ bool Shuttle::TransferString( const wxString & Name, wxString & strValue, const
{ {
strValue = mValueString; strValue = mValueString;
} }
else
return false;
} }
else else
{ {

View File

@ -114,11 +114,14 @@ void CommandBuilder::BuildCommand(const wxString &cmdName,
ParamValueMap::const_iterator iter; ParamValueMap::const_iterator iter;
ParamValueMap params = signature.GetDefaults(); ParamValueMap params = signature.GetDefaults();
// Iterate through the parameters defined by the command
for (iter = params.begin(); iter != params.end(); ++iter) for (iter = params.begin(); iter != params.end(); ++iter)
{ {
wxString paramString; wxString paramString;
// IF there is a match in the args actually used
if (shuttle.TransferString(iter->first, paramString, wxT(""))) if (shuttle.TransferString(iter->first, paramString, wxT("")))
{ {
// Then set that parameter.
if (!mCommand->SetParameter(iter->first, paramString)) if (!mCommand->SetParameter(iter->first, paramString))
{ {
Failure(); Failure();

View File

@ -25,7 +25,7 @@ wxString GetAllMenuCommandsType::BuildName()
void GetAllMenuCommandsType::BuildSignature(CommandSignature &signature) void GetAllMenuCommandsType::BuildSignature(CommandSignature &signature)
{ {
auto showStatusValidator = make_movable<BoolValidator>(); auto showStatusValidator = make_movable<BoolValidator>();
signature.AddParameter(wxT("ShowStatus"), 0, std::move(showStatusValidator)); signature.AddParameter(wxT("ShowStatus"), false, std::move(showStatusValidator));
} }
CommandHolder GetAllMenuCommandsType::Create(std::unique_ptr<CommandOutputTarget> &&target) CommandHolder GetAllMenuCommandsType::Create(std::unique_ptr<CommandOutputTarget> &&target)

View File

@ -26,7 +26,7 @@ wxString HelpCommandType::BuildName()
void HelpCommandType::BuildSignature(CommandSignature &signature) void HelpCommandType::BuildSignature(CommandSignature &signature)
{ {
auto commandNameValidator = make_movable<DefaultValidator>(); auto commandNameValidator = make_movable<DefaultValidator>();
signature.AddParameter(wxT("CommandName"), wxT(""), std::move(commandNameValidator)); signature.AddParameter(wxT("CommandName"), wxT("Help"), std::move(commandNameValidator));
} }
CommandHolder HelpCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target) CommandHolder HelpCommandType::Create(std::unique_ptr<CommandOutputTarget> &&target)