mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 02:31:45 +00:00
Merge remote-tracking branch 'upstream/master' into custom-electron-prompt
This commit is contained in:
236
menu.js
236
menu.js
@ -12,6 +12,8 @@ const pluginEnabledMenu = (win, plugin, label = "", hasSubmenu = false) => ({
|
||||
label: label || plugin,
|
||||
type: "checkbox",
|
||||
checked: config.plugins.isEnabled(plugin),
|
||||
//Submenu check used in in-app-menu
|
||||
hasSubmenu: hasSubmenu || undefined,
|
||||
click: (item) => {
|
||||
if (item.checked) {
|
||||
config.plugins.enable(plugin);
|
||||
@ -24,18 +26,16 @@ const pluginEnabledMenu = (win, plugin, label = "", hasSubmenu = false) => ({
|
||||
},
|
||||
});
|
||||
|
||||
const mainMenuTemplate = (win, withRoles = true, isTray = false) => [
|
||||
const mainMenuTemplate = (win) => [
|
||||
{
|
||||
label: "Plugins",
|
||||
submenu: [
|
||||
...getAllPlugins().map((plugin) => {
|
||||
const pluginPath = path.join(__dirname, "plugins", plugin, "menu.js");
|
||||
|
||||
const pluginPath = path.join(__dirname, "plugins", plugin, "menu.js")
|
||||
if (existsSync(pluginPath)) {
|
||||
if (!config.plugins.isEnabled(plugin)) {
|
||||
return pluginEnabledMenu(win, plugin, "", true);
|
||||
}
|
||||
|
||||
const getPluginMenu = require(pluginPath);
|
||||
return {
|
||||
label: plugin,
|
||||
@ -50,13 +50,6 @@ const mainMenuTemplate = (win, withRoles = true, isTray = false) => [
|
||||
|
||||
return pluginEnabledMenu(win, plugin);
|
||||
}),
|
||||
{ type: "separator" },
|
||||
{
|
||||
label: "Advanced options",
|
||||
click: () => {
|
||||
config.edit();
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
@ -70,30 +63,6 @@ const mainMenuTemplate = (win, withRoles = true, isTray = false) => [
|
||||
config.set("options.autoUpdates", item.checked);
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Disable hardware acceleration",
|
||||
type: "checkbox",
|
||||
checked: config.get("options.disableHardwareAcceleration"),
|
||||
click: (item) => {
|
||||
config.set("options.disableHardwareAcceleration", item.checked);
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Restart on config changes",
|
||||
type: "checkbox",
|
||||
checked: config.get("options.restartOnConfigChanges"),
|
||||
click: (item) => {
|
||||
config.set("options.restartOnConfigChanges", item.checked);
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Reset App cache when app starts",
|
||||
type: "checkbox",
|
||||
checked: config.get("options.autoResetAppCache"),
|
||||
click: (item) => {
|
||||
config.set("options.autoResetAppCache", item.checked);
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Resume last song when app starts",
|
||||
type: "checkbox",
|
||||
@ -104,29 +73,29 @@ const mainMenuTemplate = (win, withRoles = true, isTray = false) => [
|
||||
},
|
||||
...(is.windows() || is.linux()
|
||||
? [
|
||||
{
|
||||
label: "Hide menu",
|
||||
type: "checkbox",
|
||||
checked: config.get("options.hideMenu"),
|
||||
click: (item) => {
|
||||
config.set("options.hideMenu", item.checked);
|
||||
},
|
||||
{
|
||||
label: "Hide menu",
|
||||
type: "checkbox",
|
||||
checked: config.get("options.hideMenu"),
|
||||
click: (item) => {
|
||||
config.set("options.hideMenu", item.checked);
|
||||
},
|
||||
]
|
||||
},
|
||||
]
|
||||
: []),
|
||||
...(is.windows() || is.macOS()
|
||||
? // Only works on Win/Mac
|
||||
// https://www.electronjs.org/docs/api/app#appsetloginitemsettingssettings-macos-windows
|
||||
[
|
||||
{
|
||||
label: "Start at login",
|
||||
type: "checkbox",
|
||||
checked: config.get("options.startAtLogin"),
|
||||
click: (item) => {
|
||||
config.set("options.startAtLogin", item.checked);
|
||||
},
|
||||
// https://www.electronjs.org/docs/api/app#appsetloginitemsettingssettings-macos-windows
|
||||
[
|
||||
{
|
||||
label: "Start at login",
|
||||
type: "checkbox",
|
||||
checked: config.get("options.startAtLogin"),
|
||||
click: (item) => {
|
||||
config.set("options.startAtLogin", item.checked);
|
||||
},
|
||||
]
|
||||
},
|
||||
]
|
||||
: []),
|
||||
{
|
||||
label: "Tray",
|
||||
@ -182,79 +151,96 @@ const mainMenuTemplate = (win, withRoles = true, isTray = false) => [
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "Toggle DevTools",
|
||||
// Cannot use "toggleDevTools" role in MacOS
|
||||
label: "Advanced options",
|
||||
submenu: [
|
||||
{
|
||||
label: "Disable hardware acceleration",
|
||||
type: "checkbox",
|
||||
checked: config.get("options.disableHardwareAcceleration"),
|
||||
click: (item) => {
|
||||
config.set("options.disableHardwareAcceleration", item.checked);
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Restart on config changes",
|
||||
type: "checkbox",
|
||||
checked: config.get("options.restartOnConfigChanges"),
|
||||
click: (item) => {
|
||||
config.set("options.restartOnConfigChanges", item.checked);
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Reset App cache when app starts",
|
||||
type: "checkbox",
|
||||
checked: config.get("options.autoResetAppCache"),
|
||||
click: (item) => {
|
||||
config.set("options.autoResetAppCache", item.checked);
|
||||
},
|
||||
},
|
||||
{ type: "separator" },
|
||||
{
|
||||
label: "Toggle DevTools",
|
||||
// Cannot use "toggleDevTools" role in MacOS
|
||||
click: () => {
|
||||
const { webContents } = win;
|
||||
if (webContents.isDevToolsOpened()) {
|
||||
webContents.closeDevTools();
|
||||
} else {
|
||||
const devToolsOptions = {};
|
||||
webContents.openDevTools(devToolsOptions);
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Edit config.json",
|
||||
click: () => {
|
||||
config.edit();
|
||||
},
|
||||
},
|
||||
]
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "View",
|
||||
submenu: [
|
||||
{
|
||||
label: "Reload",
|
||||
click: () => {
|
||||
const { webContents } = win;
|
||||
if (webContents.isDevToolsOpened()) {
|
||||
webContents.closeDevTools();
|
||||
} else {
|
||||
const devToolsOptions = {};
|
||||
webContents.openDevTools(devToolsOptions);
|
||||
}
|
||||
win.webContents.reload();
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Advanced options",
|
||||
label: "Force Reload",
|
||||
click: () => {
|
||||
config.edit();
|
||||
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);
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
...(!isTray
|
||||
? [
|
||||
{
|
||||
label: "View",
|
||||
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",
|
||||
submenu: [
|
||||
@ -281,16 +267,12 @@ const mainMenuTemplate = (win, withRoles = true, isTray = false) => [
|
||||
app.quit();
|
||||
},
|
||||
},
|
||||
...(!isTray
|
||||
? [
|
||||
{
|
||||
label: "Quit App",
|
||||
click: () => {
|
||||
app.quit();
|
||||
},
|
||||
},
|
||||
]
|
||||
: []),
|
||||
{
|
||||
label: "Quit App",
|
||||
click: () => {
|
||||
app.quit();
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user