From 1de6f3e2edf2fa4fe21e39814ce8a761e4bb7419 Mon Sep 17 00:00:00 2001 From: TC Date: Sun, 12 Apr 2020 18:52:43 +0200 Subject: [PATCH] Add options to menu, export menu config --- menu.js | 86 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 66 insertions(+), 20 deletions(-) diff --git a/menu.js b/menu.js index 56bd1623..2c72da2e 100644 --- a/menu.js +++ b/menu.js @@ -1,29 +1,75 @@ const { app, Menu } = require("electron"); -const { isPluginEnabled, enablePlugin, disablePlugin } = require("./store"); const { getAllPlugins } = require("./plugins/utils"); +const { + isPluginEnabled, + enablePlugin, + disablePlugin, + autoUpdate, + isAppVisible, + isTrayEnabled, + setOptions, +} = require("./store"); -module.exports.setApplicationMenu = () => { - const menuTemplate = [ - { - label : "Plugins", - submenu: getAllPlugins().map(plugin => { - return { - label : plugin, - type : "checkbox", - checked: isPluginEnabled(plugin), - click : item => { - if (item.checked) { - enablePlugin(plugin); - } else { - disablePlugin(plugin); - } +const mainMenuTemplate = [ + { + label: "Plugins", + submenu: getAllPlugins().map((plugin) => { + return { + label: plugin, + type: "checkbox", + checked: isPluginEnabled(plugin), + click: (item) => { + if (item.checked) { + enablePlugin(plugin); + } else { + 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") { const name = app.getName(); menuTemplate.unshift({