From 6a1a3ebf13f1869d652669b424fbbf72749a4559 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Thu, 26 Dec 2024 23:45:43 +0200 Subject: [PATCH 1/4] update to palettes GUI + disable theme-setting stuff while change is in progress --- .../palette_editor/palette_editor.vue | 4 +- .../settings_modal/tabs/appearance_tab.js | 3 + .../settings_modal/tabs/appearance_tab.scss | 30 +++-- .../settings_modal/tabs/appearance_tab.vue | 110 ++++++++++-------- src/modules/interface.js | 7 +- 5 files changed, 94 insertions(+), 60 deletions(-) diff --git a/src/components/palette_editor/palette_editor.vue b/src/components/palette_editor/palette_editor.vue index e5ae2000f..3d43b7464 100644 --- a/src/components/palette_editor/palette_editor.vue +++ b/src/components/palette_editor/palette_editor.vue @@ -30,6 +30,8 @@ v-if="apply" class="btn button-default palette-apply-button" @click="applyPalette" + :disabled="disabled" + :class="{ disabled }" > {{ $t('settings.style.themes3.palette.apply') }} @@ -67,7 +69,7 @@ const paletteKeys = [ 'wallpaper' ] -const props = defineProps(['modelValue', 'compact', 'apply']) +const props = defineProps(['modelValue', 'compact', 'apply', 'disabled']) const emit = defineEmits(['update:modelValue', 'applyPalette']) const getExportedObject = () => paletteKeys.reduce((acc, key) => { const value = props.modelValue[key] diff --git a/src/components/settings_modal/tabs/appearance_tab.js b/src/components/settings_modal/tabs/appearance_tab.js index 3d03af457..c2b6fa24f 100644 --- a/src/components/settings_modal/tabs/appearance_tab.js +++ b/src/components/settings_modal/tabs/appearance_tab.js @@ -186,6 +186,9 @@ const AppearanceTab = { } }, computed: { + switchInProgress () { + return this.$store.state.interface.themeChangeInProgress + }, paletteDataUsed () { return this.$store.state.interface.paletteDataUsed }, diff --git a/src/components/settings_modal/tabs/appearance_tab.scss b/src/components/settings_modal/tabs/appearance_tab.scss index 596c674fa..26ab2f788 100644 --- a/src/components/settings_modal/tabs/appearance_tab.scss +++ b/src/components/settings_modal/tabs/appearance_tab.scss @@ -20,14 +20,25 @@ } } + h4 { + margin: 0.5em 0; + } + .palettes { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 0.5em; + height: 15em; + overflow-y: auto; + overflow-x: hidden; + scrollbar-gutter: stable; + border-radius: var(--roundness); + border: 1px solid var(--border); + margin: -0.5em; + padding: 0.5em; - h4, - .unsupported-theme-v2, - .userPalette { + h4 { + margin: 0; grid-column: 1 / span 2; } } @@ -37,6 +48,7 @@ align-items: center; justify-content: space-between; padding: 0 0.5em; + height: 2.5em; .palette-label label { text-align: center; @@ -73,13 +85,13 @@ margin-top: 0.5em; width: 100%; } + } - .palette-preview { - display: grid; - grid-template-columns: 1fr 1fr 1fr 1fr; - grid-template-rows: 1em 1em; - margin-bottom: 0.5em; - } + .palette-preview { + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr; + grid-template-rows: 1em 1em; + margin: 0.5em 0; } .theme-list { diff --git a/src/components/settings_modal/tabs/appearance_tab.vue b/src/components/settings_modal/tabs/appearance_tab.vue index a44cc1a70..bd82643f5 100644 --- a/src/components/settings_modal/tabs/appearance_tab.vue +++ b/src/components/settings_modal/tabs/appearance_tab.vue @@ -12,8 +12,9 @@ +

{{ $t('settings.style.themes3.palette.bundled') }}

+ + +