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 @@