Skip invalid commands when constructing the toolbar and menu rather than exploding

Originally committed to SVN as r5478.
This commit is contained in:
Thomas Goyne 2011-07-15 23:43:52 +00:00
parent c32e372dd4
commit 3d22da9fbc
2 changed files with 17 additions and 2 deletions

View File

@ -100,7 +100,14 @@ wxMenu* Menu::BuildMenu(std::string name, const json::Array& array, int submenu)
std::string cmd_name = type == Menu::Submenu ? name_submenu : command.Value();
cmd::Command *cmd = cmd::get(cmd_name);
cmd::Command *cmd;
try {
cmd = cmd::get(cmd_name);
}
catch (CommandNotFound const&) {
LOG_W("menu/command/not_found") << "Command '" << cmd_name << "' not found; skipping";
continue;
}
wxString display = cmd->StrMenu() + "\t" + hotkey::get_hotkey_str_first("Default", cmd_name);
wxString descr = cmd->StrHelp();

View File

@ -33,6 +33,7 @@
#endif
#include <libaegisub/json.h>
#include <libaegisub/log.h>
#include <libaegisub/signal.h>
namespace {
@ -105,7 +106,14 @@ namespace {
AddSeparator();
}
else {
cmd::Command *command = cmd::get(command_name.Value());
cmd::Command *command;
try {
command = cmd::get(command_name.Value());
}
catch (CommandNotFound const&) {
LOG_W("toolbar/command/not_found") << "Command '" << command_name.Value() << "' not found; skipping";
continue;
}
wxBitmap const& bitmap = command->Icon(icon_size);
// this hack is needed because ???