diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json index 2b1e581b..3919dfea 100644 --- a/src/i18n/en_US.json +++ b/src/i18n/en_US.json @@ -300,6 +300,9 @@ "menubar.options.trans": "Translation Report/Request", "menubar.options.license": "View License", "menubar.options.conf": "Open Configuration File in Editor", + "menubar.options.listennow": "Listen Now", + "menubar.options.recentlyAdded": "Recently Added", + "menubar.options.songs": "Songs", "settings.header.general": "General", "settings.header.general.description": "Adjust the general settings for Cider.", "settings.option.general.language": "Language", @@ -338,6 +341,9 @@ "settings.description.cast": "Cast to Devices", "settings.description.settings": "Settings", "settings.description.developer": "Developer Tools", + "settings.description.listnow": "Listen Now", + "settings.description.recentAdd": "Recently Added", + "settings.description.songs": "Songs", "settings.notyf.updateCider.update-not-available": "No update available", "settings.notyf.updateCider.update-downloaded": "Update has been downloaded, restart to apply", "settings.notyf.updateCider.update-error": "Error updating Cider", diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 0c785691..9b5cced1 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -77,6 +77,7 @@ export class BrowserWindow { "pages/audiolabs", "pages/zoo", "pages/plugin-renderer", + "pages/keybinds", "components/mediaitem-artwork", "components/artwork-material", "components/menu-panel", diff --git a/src/main/base/store.ts b/src/main/base/store.ts index de8590a5..260208ab 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -54,6 +54,22 @@ export class Store { process.platform == "darwin" ? "Command" : "Control", "F" ], + "listnow": [ + process.platform == "darwin" ? "Command" : "Control", + "L" + ], + "browse": [ + process.platform == "darwin" ? "Command" : "Control", + "B" + ], + "recentAdd": [ + process.platform == "darwin" ? "Command" : "Control", + "G" + ], + "songs" : [ + process.platform == "darwin" ? "Command" : "Control", + "J" + ], "albums": [ process.platform == "darwin" ? "Command" : "Control", "S" @@ -62,10 +78,6 @@ export class Store { process.platform == "darwin" ? "Command" : "Control", "D" ], - "browse": [ - process.platform == "darwin" ? "Command" : "Control", - "B" - ], "togglePrivateSession": [ process.platform == "darwin" ? "Command" : "Control", "P" diff --git a/src/main/plugins/menubar.ts b/src/main/plugins/menubar.ts index a9d73428..76a0e52b 100644 --- a/src/main/plugins/menubar.ts +++ b/src/main/plugins/menubar.ts @@ -23,8 +23,9 @@ export default class Thumbar { label: app.getName(), submenu: [ { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.about'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('about')`) + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.toggleprivate'), + accelerator: utils.getStoreValue("general.keybindings.togglePrivateSession").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.cfg.general.privateEnabled = !app.cfg.general.privateEnabled`) }, {type: 'separator'}, { @@ -40,30 +41,63 @@ export default class Thumbar { {role: 'hideOthers'}, {role: 'unhide'}, ]: [ + {type: 'separator'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.about'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('about')`) + }, {type: 'separator'}, {role: 'quit', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.quit')}, ]), ], }, - { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.view'), submenu: [ - {role: 'reload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.reload')}, - {role: 'forceReload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.forcereload')}, - ...(this.isMac ? [ - {role: 'toggleDevTools'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.search'), + accelerator: utils.getStoreValue("general.keybindings.search").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('search')`) + }, + {type:'separator'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.listennow'), + accelerator: utils.getStoreValue('general.keybindings.listnow').join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('listen_now')`) + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.browse'), + accelerator: utils.getStoreValue("general.keybindings.browse").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('browse')`) + }, {type: 'separator'}, - {role: 'resetZoom'}, - {role: 'zoomIn'}, - {role: 'zoomOut'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.recentlyAdded') + ,accelerator: utils.getStoreValue("general.keybindings.recentAdd").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-recentlyadded')`) + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.songs'), + accelerator: utils.getStoreValue("general.keybindings.songs").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-songs')`) + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.albums'), + accelerator: utils.getStoreValue("general.keybindings.albums").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-albums')`) + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.artists'), + accelerator: utils.getStoreValue("general.keybindings.artists").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-artists')`) + }, {type: 'separator'}, - {role: 'togglefullscreen'}, - + ...(this.isMac ? [ ]: []), ], }, + { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.window'), submenu: [ @@ -73,15 +107,24 @@ export default class Thumbar { label: 'Show', click: () => utils.getWindow().show() }, - {role: 'zoom'}, + {role: 'toggleDevTools'}, + {type: 'separator'}, + { + label:'Zoom', + submenu: [ + {role: 'zoom'}, + {role: 'resetZoom'}, + {role: 'zoomIn'}, + {role: 'zoomOut'}, + ] + }, + {type: 'separator'}, + {role: 'togglefullscreen'}, + {type: 'separator'}, {role: 'front'}, - {role: 'close'}, - - {role: 'close'}, - - + {role: 'close'}, { label: 'Edit', submenu: [ @@ -93,33 +136,14 @@ export default class Thumbar { {role: 'paste'}, ] }, - ] : [] - ), - {type: 'separator'}, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.toggleprivate'), - accelerator: utils.getStoreValue("general.keybindings.togglePrivateSession").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.cfg.general.privateEnabled = !app.cfg.general.privateEnabled`) - }, - {type: 'separator'}, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.webremote'), - accelerator: utils.getStoreValue("general.keybindings.webRemote").join('+'), - sublabel: 'Opens in external window', - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('remote-pair')`) - }, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.audio'), - accelerator: utils.getStoreValue("general.keybindings.audioSettings").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.audioSettings = true`) - }, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.plugins'), - accelerator: utils.getStoreValue("general.keybindings.pluginMenu").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.pluginMenu = true`) - } + ] : [ + {type:'separator'}, + {role: 'reload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.reload')}, + {role: 'forceReload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.forcereload')}, + ]), ] }, + { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.controls'), submenu: [ @@ -148,35 +172,32 @@ export default class Thumbar { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.volumedown'), accelerator: 'CommandOrControl+Down', click: () => utils.getWindow().webContents.executeJavaScript(`app.volumeDown()`) - }, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.browse'), - accelerator: utils.getStoreValue("general.keybindings.browse").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('browse')`) - }, - {type: 'separator'}, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.artists'), - accelerator: utils.getStoreValue("general.keybindings.artists").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-artists')`) - }, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.search'), - accelerator: utils.getStoreValue("general.keybindings.search").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('search')`) - }, - {type: 'separator'}, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.albums'), - accelerator: utils.getStoreValue("general.keybindings.albums").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-albums')`) - }, + }, {type: 'separator'}, { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.cast'), accelerator: utils.getStoreValue("general.keybindings.castToDevices").join('+'), click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.castMenu = true`) + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.webremote'), + accelerator: utils.getStoreValue("general.keybindings.webRemote").join('+'), + sublabel: 'Opens in external window', + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('remote-pair')`) + }, + {type: 'separator'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.audio'), + accelerator: utils.getStoreValue("general.keybindings.audioSettings").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.audioSettings = true`) + }, + {type: 'separator'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.plugins'), + accelerator: utils.getStoreValue("general.keybindings.pluginMenu").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.pluginMenu = true`) } + ] }, { diff --git a/src/renderer/style.css b/src/renderer/style.css index 3448d228..539bdcee 100644 --- a/src/renderer/style.css +++ b/src/renderer/style.css @@ -13192,3 +13192,18 @@ body[platform="linux"] #window-controls-container { #app.twopanel .collection-page .top-fab { bottom: 96px; } + + +.keybinds-page .md-option-header { + padding: 0px 0px; + border-bottom: unset; + border-top: unset; + font-weight: 600; + background: rgba(255, 255, 255, 0); + font-size: 2em; + } + +.content-inner.keybinds-page { + top: var(--navigationBarHeight); + padding: 15px; +} \ No newline at end of file diff --git a/src/renderer/style.less b/src/renderer/style.less index b24ce657..8e404005 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -3342,6 +3342,20 @@ body[platform='darwin'] { display: none; } +.keybinds-page .md-option-header { + padding: 0px 0px; + border-bottom: unset; + border-top: unset; + font-weight: 600; + background: rgba(255, 255, 255, 0); + font-size: 2em; + } + +.content-inner.keybinds-page { + top: var(--navigationBarHeight); + padding: 15px; +} + @import url("less/macos.less"); @import url("less/linux.less"); @import url("less/compact.less"); diff --git a/src/renderer/views/app/app-content.ejs b/src/renderer/views/app/app-content.ejs index dfa1cb33..96e6b348 100644 --- a/src/renderer/views/app/app-content.ejs +++ b/src/renderer/views/app/app-content.ejs @@ -46,6 +46,11 @@ - + + + + \ No newline at end of file diff --git a/src/renderer/views/pages/keybinds.ejs b/src/renderer/views/pages/keybinds.ejs new file mode 100644 index 00000000..3fc314a2 --- /dev/null +++ b/src/renderer/views/pages/keybinds.ejs @@ -0,0 +1,267 @@ + + + \ No newline at end of file diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index 8e9bc841..df0c031a 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -185,146 +185,17 @@ - +
{{$root.getLz('settings.option.general.keybindings')}}
-
- -
-
-
- {{$root.getLz('settings.description.search')}} -
-
- -
-
-
-
- {{$root.getLz('settings.description.albums')}} -
-
- -
-
-
-
- {{$root.getLz('settings.description.artists')}} -
-
- -
-
-
-
- {{$root.getLz('settings.description.browse')}} -
-
- -
-
-
-
- {{$root.getLz('settings.description.private')}} -
-
- -
-
-
-
- {{$root.getLz('settings.description.remote')}} -
-
- -
-
-
-
- {{$root.getLz('settings.description.audio')}} -
-
- -
-
-
-
- {{$root.getLz('settings.description.plugins')}} -
-
- -
-
-
-
- {{$root.getLz('settings.description.cast')}} -
-
- -
-
-
-
- {{$root.getLz('settings.description.settings')}} -
-
- -
-
-
-
- {{$root.getLz('settings.description.developer')}} -
-
- -
-
- -
-
-
+ @@ -1517,9 +1388,11 @@ }, keyBindReset: function () { app.cfg.general.keybindings.search = [app.platform == "darwin" ? "Command" : "Control", "S"]; + app.cfg.general.keybindings.listennow = [app.platform == "darwin" ? "Command" : "Control", "L"]; + app.cfg.general.keybindings.browse = [app.platform == "darwin" ? "Command" : "Control", "B"]; + app.cfg.general.keybindings.recentAdded = [app.platform == "darwin" ? "Command" : "Control", "G"]; app.cfg.general.keybindings.albums = [app.platform == "darwin" ? "Command" : "Control", "F"]; app.cfg.general.keybindings.artists = [app.platform == "darwin" ? "Command" : "Control", "D"]; - app.cfg.general.keybindings.browse = [app.platform == "darwin" ? "Command" : "Control", "B"]; app.cfg.general.keybindings.togglePrivateSession = [app.platform == "darwin" ? "Command" : "Control", "P"]; app.cfg.general.keybindings.webRemote = [app.platform == "darwin" ? "Command" : "Control", "W"]; app.cfg.general.keybindings.audioSettings = [app.platform == "darwin" ? "Option" : "Alt", "A"];