From 400a2a9bab1b05bcabe0ff6609370cdac225a5e4 Mon Sep 17 00:00:00 2001 From: TC Date: Wed, 31 Mar 2021 20:18:20 +0200 Subject: [PATCH] Add option to menu to render without roles --- menu.js | 52 ++++++++++++++++++++++++++++++------- plugins/styled-bars/back.js | 35 +------------------------ 2 files changed, 44 insertions(+), 43 deletions(-) diff --git a/menu.js b/menu.js index 24895c61..33ac027f 100644 --- a/menu.js +++ b/menu.js @@ -20,7 +20,7 @@ const pluginEnabledMenu = (plugin, label = "") => ({ }, }); -const mainMenuTemplate = (win) => [ +const mainMenuTemplate = (win, withRoles = true) => [ { label: "Plugins", submenu: [ @@ -191,14 +191,48 @@ const mainMenuTemplate = (win) => [ }, { label: "View", - submenu: [ - { role: "reload" }, - { role: "forceReload" }, - { type: "separator" }, - { role: "zoomIn" }, - { role: "zoomOut" }, - { role: "resetZoom" }, - ], + submenu: withRoles + ? [ + { role: "reload" }, + { role: "forceReload" }, + { type: "separator" }, + { role: "zoomIn" }, + { role: "zoomOut" }, + { role: "resetZoom" }, + ] + : [ + { + label: "Reload", + click: () => { + win.webContents.reload(); + }, + }, + { + label: "Force Reload", + click: () => { + win.webContents.reloadIgnoringCache(); + }, + }, + { type: "separator" }, + { + label: "Zoom In", + click: () => { + win.webContents.setZoomLevel(win.webContents.getZoomLevel() + 1); + }, + }, + { + label: "Zoom Out", + click: () => { + win.webContents.setZoomLevel(win.webContents.getZoomLevel() - 1); + }, + }, + { + label: "Reset Zoom", + click: () => { + win.webContents.setZoomLevel(0); + }, + }, + ], }, { label: "Navigation", diff --git a/plugins/styled-bars/back.js b/plugins/styled-bars/back.js index cd8afbf2..ec70c7b2 100644 --- a/plugins/styled-bars/back.js +++ b/plugins/styled-bars/back.js @@ -9,7 +9,7 @@ var { mainMenuTemplate } = require("../../menu"); const originTemplate = mainMenuTemplate; mainMenuTemplate = function (winHook) { //get template - let template = originTemplate(winHook); + let template = originTemplate(winHook, false); //fix checkbox and roles fixMenu(template); //return as normal @@ -67,42 +67,9 @@ function fixMenu(template) { checkCheckbox(itemClicked); }; } - //customize roles - else if (item.role != null) { - fixRoles(item) - } } } -//custom menu doesn't support roles, so they get injected manually -function fixRoles(MenuItem) { - switch (MenuItem.role) { - case 'reload': - MenuItem.label = 'Reload'; - MenuItem.click = () => { win.webContents.reload(); } - break; - case 'forceReload': - MenuItem.label = 'Force Reload'; - MenuItem.click = () => { win.webContents.reloadIgnoringCache(); } - break; - case 'zoomIn': - MenuItem.label = 'Zoom In'; - MenuItem.click = () => { win.webContents.setZoomLevel(win.webContents.getZoomLevel() + 1); } - break; - case 'zoomOut': - MenuItem.label = 'Zoom Out'; - MenuItem.click = () => { win.webContents.setZoomLevel(win.webContents.getZoomLevel() - 1); } - break; - case 'resetZoom': - MenuItem.label = 'Reset Zoom'; - MenuItem.click = () => { win.webContents.setZoomLevel(0); } - break; - default: - console.log(`Error fixing MenuRoles: "${MenuItem.role}" was not expected`); - } - delete MenuItem.role; -} - function checkCheckbox(item) { //check item item.checked = !item.checked;