mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 02:31:45 +00:00
Add option to menu to render without roles
This commit is contained in:
52
menu.js
52
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",
|
||||
|
||||
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user