update refreshMenu() function

This commit is contained in:
Araxeus
2021-05-23 17:57:54 +03:00
parent 541c7f34b7
commit 33855f17dd

25
menu.js
View File

@ -10,7 +10,7 @@ const config = require("./config");
// true only if in-app-menu was loaded on launch // true only if in-app-menu was loaded on launch
const inAppMenuActive = config.plugins.isEnabled("in-app-menu"); const inAppMenuActive = config.plugins.isEnabled("in-app-menu");
const pluginEnabledMenu = (win, plugin, label = "", hasSubmenu = false) => ({ const pluginEnabledMenu = (plugin, label = "", hasSubmenu = false, refreshMenu = undefined) => ({
label: label || plugin, label: label || plugin,
type: "checkbox", type: "checkbox",
checked: config.plugins.isEnabled(plugin), checked: config.plugins.isEnabled(plugin),
@ -21,15 +21,19 @@ const pluginEnabledMenu = (win, plugin, label = "", hasSubmenu = false) => ({
config.plugins.disable(plugin); config.plugins.disable(plugin);
} }
if (hasSubmenu) { if (hasSubmenu) {
refreshMenu();
}
},
});
const mainMenuTemplate = (win) => {
const refreshMenu = () => {
this.setApplicationMenu(win); this.setApplicationMenu(win);
if (inAppMenuActive) { if (inAppMenuActive) {
win.webContents.send("updateMenu", true); win.webContents.send("updateMenu", true);
} }
} }
}, return [
});
const mainMenuTemplate = (win) => [
{ {
label: "Plugins", label: "Plugins",
submenu: [ submenu: [
@ -37,21 +41,19 @@ const mainMenuTemplate = (win) => [
const pluginPath = path.join(__dirname, "plugins", plugin, "menu.js") const pluginPath = path.join(__dirname, "plugins", plugin, "menu.js")
if (existsSync(pluginPath)) { if (existsSync(pluginPath)) {
if (!config.plugins.isEnabled(plugin)) { if (!config.plugins.isEnabled(plugin)) {
return pluginEnabledMenu(win, plugin, "", true); return pluginEnabledMenu(plugin, "", true, refreshMenu);
} }
const getPluginMenu = require(pluginPath); const getPluginMenu = require(pluginPath);
return { return {
label: plugin, label: plugin,
submenu: [ submenu: [
pluginEnabledMenu(win, plugin, "Enabled", true), pluginEnabledMenu(plugin, "Enabled", true, refreshMenu),
...getPluginMenu(win, config.plugins.getOptions(plugin), () => ...getPluginMenu(win, config.plugins.getOptions(plugin), refreshMenu),
module.exports.setApplicationMenu(win)
),
], ],
}; };
} }
return pluginEnabledMenu(win, plugin); return pluginEnabledMenu(plugin);
}), }),
], ],
}, },
@ -238,6 +240,7 @@ const mainMenuTemplate = (win) => [
], ],
}, },
]; ];
}
module.exports.mainMenuTemplate = mainMenuTemplate; module.exports.mainMenuTemplate = mainMenuTemplate;
module.exports.setApplicationMenu = (win) => { module.exports.setApplicationMenu = (win) => {