Fix crash when loading plugins from CLI and compilation when !ENABLE_UI

This commit is contained in:
David Capello 2020-04-07 10:56:39 -03:00
parent a7f3fc968a
commit 482fcd3b8c
2 changed files with 6 additions and 1 deletions

View File

@ -643,8 +643,10 @@ void Extension::exitScripts()
ASSERT(cmd); ASSERT(cmd);
if (cmd) { if (cmd) {
#ifdef ENABLE_UI
// TODO use a signal // TODO use a signal
AppMenus::instance()->removeMenuItemWithCommand(cmd); AppMenus::instance()->removeMenuItemWithCommand(cmd);
#endif // ENABLE_UI
cmds->remove(cmd); cmds->remove(cmd);

View File

@ -128,14 +128,17 @@ int Plugin_newCommand(lua_State* L)
Commands::instance()->add(cmd); Commands::instance()->add(cmd);
plugin->ext->addCommand(id); plugin->ext->addCommand(id);
#ifdef ENABLE_UI
// Add a new menu option if the "group" is defined // Add a new menu option if the "group" is defined
if (!group.empty()) { if (!group.empty() &&
App::instance()->isGui()) { // On CLI menus do not make sense
if (auto appMenus = AppMenus::instance()) { if (auto appMenus = AppMenus::instance()) {
std::unique_ptr<MenuItem> menuItem(new AppMenuItem(title, cmd)); std::unique_ptr<MenuItem> menuItem(new AppMenuItem(title, cmd));
appMenus->addMenuItemIntoGroup( appMenus->addMenuItemIntoGroup(
group, title, std::move(menuItem)); group, title, std::move(menuItem));
} }
} }
#endif // ENABLE_UI
} }
else { else {
lua_pop(L, 1); lua_pop(L, 1);