MASSIVELY streamlined theme setting process, now EVERYTHING happens in a vuex action "setTheme" instead of several different applyTheme()s scattered around

This commit is contained in:
Henry Jameson 2024-07-10 22:49:56 +03:00
commit c6ccab778f
10 changed files with 158 additions and 110 deletions

View file

@ -29,6 +29,11 @@ const AppearanceTab = {
key: mode,
value: i - 1,
label: this.$t(`settings.forced_roundness_mode_${mode}`)
})),
underlayOverrideModes: ['none', 'opaque', 'transparent'].map((mode, i) => ({
key: mode,
value: mode,
label: this.$t(`settings.underlay_override_mode_${mode}`)
}))
}
},

View file

@ -182,6 +182,15 @@
{{ $t('settings.force_interface_roundness') }}
</ChoiceSetting>
</li>
<li>
<ChoiceSetting
id="underlayOverride"
path="theme3hacks.underlay"
:options="underlayOverrideModes"
>
{{ $t('settings.underlay_overrides') }}
</ChoiceSetting>
</li>
<li v-if="instanceWallpaperUsed">
<BooleanSetting path="hideInstanceWallpaper">
{{ $t('settings.hide_wallpaper') }}

View file

@ -502,6 +502,7 @@ export default {
this.$store.dispatch('setOption', {
name: 'customTheme',
value: {
ignore: true,
themeFileVersion: this.selectedVersion,
themeEngineVersion: CURRENT_VERSION,
...this.previewTheme
@ -699,13 +700,13 @@ export default {
}
},
updateTheme3Preview () {
console.log(this.previewTheme)
const theme2 = convertTheme2To3(this.previewTheme)
const theme3 = init({
extraRuleset: theme2,
inputRuleset: theme2,
ultimateBackgroundColor: '#000000',
liteMode: true
})
this.themeV3Preview = getCssRules(theme3.eager)
.map(x => {
if (x.startsWith('html')) {
@ -722,7 +723,7 @@ export default {
watch: {
currentRadii () {
try {
this.previewTheme.radii = generateRadii({ radii: this.currentRadii }).theme
this.previewTheme.radii = generateRadii({ radii: this.currentRadii }).theme.radii
this.radiiInvalid = false
} catch (e) {
this.radiiInvalid = true
@ -744,7 +745,7 @@ export default {
fontsLocal: {
handler () {
try {
this.previewTheme.fonts = generateFonts({ fonts: this.fontsLocal }).theme
this.previewTheme.fonts = generateFonts({ fonts: this.fontsLocal }).theme.fonts
this.fontsInvalid = false
} catch (e) {
this.fontsInvalid = true