diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index f3308f78..158cf251 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -167,12 +167,12 @@ export class BrowserWindow { page: "browsepage", component: ``, condition: `page == 'browse'`, - onEnter: `getBrowsePage();` + onEnter: `` }, { page: "listen_now", component: ``, condition: `page == 'listen_now'`, - onEnter: `getListenNow()` + onEnter: `` }, { page: "settings", component: ``, @@ -185,17 +185,17 @@ export class BrowserWindow { page: "library-songs", component: ``, condition: `page == 'library-songs'`, - onEnter: `getLibrarySongsFull()` + onEnter: `` }, { page: "library-albums", component: ``, condition: `page == 'library-albums'`, - onEnter: `getLibraryAlbumsFull(null, 1); getAlbumSort(); searchLibraryAlbums(1); getLibrarySongsFull() ;searchLibraryAlbums(1);` + onEnter: `` }, { page: "library-artists", component: ``, condition: `page == 'library-artists'`, - onEnter: `getLibraryArtistsFull(null, 0);` + onEnter: `` }, { page: "appleCurator", component: ``, diff --git a/src/main/base/store.ts b/src/main/base/store.ts index f16b6a73..da524ae9 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -114,6 +114,7 @@ export class Store { }, "visual": { "theme": "", + "styles": [], "scrollbars": 0, // 0 = show on hover, 2 = always hide, 3 = always show "refresh_rate": 0, "window_background_style": "artwork", // "none", "artwork", "color" diff --git a/src/renderer/less/elements.less b/src/renderer/less/elements.less index 13b65d5f..768b2a8f 100644 --- a/src/renderer/less/elements.less +++ b/src/renderer/less/elements.less @@ -1738,7 +1738,7 @@ input[type=checkbox][switch]:checked:active::before { display: inline-flex; align-items: center; justify-content: center; - margin: 12px 0px; + margin: 12px 12px 12px 0px; border-radius: 4px; color: white; font-size: 1em; diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index 1cb68db9..5f064127 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -465,9 +465,9 @@ const app = new Vue({ history.forward() }, getHTMLStyle() { - if(app.cfg.visual.uiScale != 1) { + if (app.cfg.visual.uiScale != 1) { document.querySelector("#app").style.zoom = app.cfg.visual.uiScale - }else{ + } else { document.querySelector("#app").style.zoom = "" } }, @@ -899,6 +899,9 @@ const app = new Vue({ this.$forceUpdate() }, 500) ipcRenderer.invoke("renderer-ready", true) + if (this.cfg.visual.styles.length != 0) { + this.reloadStyles() + } document.querySelector("#LOADER").remove() if (this.cfg.general.themeUpdateNotification) { this.checkForThemeUpdates() @@ -956,6 +959,37 @@ const app = new Vue({ less.refresh() } }, + async reloadStyles() { + document.querySelector("body").style.opacity = 0 + document.querySelector("body").style.overflow = "hidden" + const styles = this.cfg.visual.styles + document.querySelectorAll(`[id*='less']`).forEach(el => { + el.remove() + }); + this.chrome.appliedTheme.info = {} + await asyncForEach(styles, async (style) => { + let styleEl = document.createElement("link") + styleEl.id = `less-${style.replace(".less", "")}` + styleEl.rel = "stylesheet/less" + styleEl.href = `themes/${style}` + styleEl.type = "text/css" + document.head.appendChild(styleEl) + try { + let infoResponse = await fetch("themes/" + style.replace("index.less", "theme.json")) + this.chrome.appliedTheme.info = Object.assign(this.chrome.appliedTheme.info, await infoResponse.json()) + } catch (e) { + e = null + console.warn("failed to get theme.json") + } + }) + less.registerStylesheetsImmediately() + less.refresh(true, true, true) + this.$forceUpdate() + setTimeout(() => { + document.querySelector("body").style.opacity = "" + document.querySelector("body").style.overflow = "" + }, 500) + }, macOSEmu() { this.chrome.forceDirectives["macosemu"] = { value: true @@ -3811,7 +3845,7 @@ const app = new Vue({ ] } } - if(this.cfg.advanced.AudioContext) { + if (this.cfg.advanced.AudioContext) { menus.normal.items.find(i => i.id === 'audioLab').hidden = false menus.normal.items.find(i => i.id === 'equalizer').hidden = false } diff --git a/src/renderer/views/components/mediaitem-artwork.ejs b/src/renderer/views/components/mediaitem-artwork.ejs index 16a79210..806aa32e 100644 --- a/src/renderer/views/components/mediaitem-artwork.ejs +++ b/src/renderer/views/components/mediaitem-artwork.ejs @@ -2,6 +2,7 @@
diff --git a/src/renderer/views/components/mediaitem-square.ejs b/src/renderer/views/components/mediaitem-square.ejs index 90d45943..fa44a94e 100644 --- a/src/renderer/views/components/mediaitem-square.ejs +++ b/src/renderer/views/components/mediaitem-square.ejs @@ -5,7 +5,7 @@ @contextmenu.self="contextMenu" v-observe-visibility="{callback: visibilityChanged}" > -
{{item?.meta?.reason?.stringForDisplay ?? ' '}}
+
{{item?.meta?.reason?.stringForDisplay ?? ''}}