Add options to menu, export menu config

This commit is contained in:
TC
2020-04-12 18:52:43 +02:00
parent 1c56e7fea6
commit 1de6f3e2ed

70
menu.js
View File

@ -1,29 +1,75 @@
const { app, Menu } = require("electron"); const { app, Menu } = require("electron");
const { isPluginEnabled, enablePlugin, disablePlugin } = require("./store");
const { getAllPlugins } = require("./plugins/utils"); const { getAllPlugins } = require("./plugins/utils");
const {
isPluginEnabled,
enablePlugin,
disablePlugin,
autoUpdate,
isAppVisible,
isTrayEnabled,
setOptions,
} = require("./store");
module.exports.setApplicationMenu = () => { const mainMenuTemplate = [
const menuTemplate = [
{ {
label : "Plugins", label: "Plugins",
submenu: getAllPlugins().map(plugin => { submenu: getAllPlugins().map((plugin) => {
return { return {
label : plugin, label: plugin,
type : "checkbox", type: "checkbox",
checked: isPluginEnabled(plugin), checked: isPluginEnabled(plugin),
click : item => { click: (item) => {
if (item.checked) { if (item.checked) {
enablePlugin(plugin); enablePlugin(plugin);
} else { } else {
disablePlugin(plugin); disablePlugin(plugin);
} }
} },
}; };
}) }),
} },
]; {
label: "Options",
submenu: [
{
label: "Auto-update",
type: "checkbox",
checked: autoUpdate(),
click: (item) => {
setOptions({ autoUpdates: item.checked });
},
},
{
label: "Tray",
submenu: [
{
label: "Disabled",
type: "radio",
checked: !isTrayEnabled(),
click: () => setOptions({ tray: false, appVisible: true }),
},
{
label: "Enabled + app visible",
type: "radio",
checked: isTrayEnabled() && isAppVisible(),
click: () => setOptions({ tray: true, appVisible: true }),
},
{
label: "Enabled + app hidden",
type: "radio",
checked: isTrayEnabled() && !isAppVisible(),
click: () => setOptions({ tray: true, appVisible: false }),
},
],
},
],
},
];
module.exports.mainMenuTemplate = mainMenuTemplate;
module.exports.setApplicationMenu = () => {
const menuTemplate = [...mainMenuTemplate];
if (process.platform === "darwin") { if (process.platform === "darwin") {
const name = app.getName(); const name = app.getName();
menuTemplate.unshift({ menuTemplate.unshift({