From e4a819a0e2ed9c57dc2191428d86a33bb5918862 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 22 May 2024 19:54:19 +0300 Subject: initial Appearance Tab implementation, added text size/UI scale option --- src/components/settings_modal/helpers/setting.js | 10 ++++++++- .../settings_modal/helpers/unit_setting.js | 24 ++++++++++++++++++---- .../settings_modal/helpers/unit_setting.vue | 2 +- 3 files changed, 30 insertions(+), 6 deletions(-) (limited to 'src/components/settings_modal/helpers') diff --git a/src/components/settings_modal/helpers/setting.js b/src/components/settings_modal/helpers/setting.js index abf9cfdf..3b3e6268 100644 --- a/src/components/settings_modal/helpers/setting.js +++ b/src/components/settings_modal/helpers/setting.js @@ -48,6 +48,10 @@ export default { draftMode: { type: Boolean, default: undefined + }, + timedApplyMode: { + type: Boolean, + default: false } }, inject: { @@ -161,7 +165,11 @@ export default { case 'admin': return (k, v) => this.$store.dispatch('pushAdminSetting', { path: k, value: v }) default: - return (k, v) => this.$store.dispatch('setOption', { name: k, value: v }) + if (this.timedApplyMode) { + return (k, v) => this.$store.dispatch('setOptionTemporarily', { name: k, value: v }) + } else { + return (k, v) => this.$store.dispatch('setOption', { name: k, value: v }) + } } }, defaultState () { diff --git a/src/components/settings_modal/helpers/unit_setting.js b/src/components/settings_modal/helpers/unit_setting.js index c9c23cb0..daeddd81 100644 --- a/src/components/settings_modal/helpers/unit_setting.js +++ b/src/components/settings_modal/helpers/unit_setting.js @@ -21,15 +21,23 @@ export default { unitSet: { type: String, default: 'none' + }, + step: { + type: Number, + default: 1 + }, + resetDefault: { + type: Object, + default: null } }, computed: { ...Setting.computed, stateUnit () { - return this.state.replace(/\d+/, '') + return typeof this.state === 'string' ? this.state.replace(/[0-9,.]+/, '') : '' }, stateValue () { - return this.state.replace(/\D+/, '') + return typeof this.state === 'string' ? this.state.replace(/[^0-9,.]+/, '') : '' } }, methods: { @@ -39,10 +47,18 @@ export default { return this.$t(['settings', 'units', this.unitSet, value].join('.')) }, updateValue (e) { - this.configSink(this.path, parseInt(e.target.value) + this.stateUnit) + this.configSink(this.path, parseFloat(e.target.value) + this.stateUnit) }, updateUnit (e) { - this.configSink(this.path, this.stateValue + e.target.value) + let value = this.stateValue + const newUnit = e.target.value + if (this.resetDefault) { + const replaceValue = this.resetDefault[newUnit] + if (replaceValue != null) { + value = replaceValue + } + } + this.configSink(this.path, value + newUnit) } } } diff --git a/src/components/settings_modal/helpers/unit_setting.vue b/src/components/settings_modal/helpers/unit_setting.vue index 68f52b1c..86798e04 100644 --- a/src/components/settings_modal/helpers/unit_setting.vue +++ b/src/components/settings_modal/helpers/unit_setting.vue @@ -13,7 +13,7 @@ :id="path" class="input number-input" type="number" - step="1" + step="step" :disabled="disabled" :min="min || 0" :value="stateValue" -- cgit v1.2.3-70-g09d2 From 041da0cdffd73e716a02cc232b01b56526864c63 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Sun, 21 Jul 2024 23:46:54 +0300 Subject: fix step not working in unit input --- src/components/settings_modal/helpers/unit_setting.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/components/settings_modal/helpers') diff --git a/src/components/settings_modal/helpers/unit_setting.vue b/src/components/settings_modal/helpers/unit_setting.vue index 86798e04..e5da9012 100644 --- a/src/components/settings_modal/helpers/unit_setting.vue +++ b/src/components/settings_modal/helpers/unit_setting.vue @@ -13,7 +13,7 @@ :id="path" class="input number-input" type="number" - step="step" + :step="step" :disabled="disabled" :min="min || 0" :value="stateValue" -- cgit v1.2.3-70-g09d2 From f4544f0742508713a9cef2db08c6fa844345d9e0 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 23 Jul 2024 21:35:29 +0300 Subject: elaboration and spacing --- .../settings_modal/helpers/unit_setting.vue | 1 + .../settings_modal/tabs/appearance_tab.vue | 86 ++++++++++++---------- .../settings_modal/tabs/theme_tab/theme_tab.scss | 5 ++ .../settings_modal/tabs/theme_tab/theme_tab.vue | 2 +- src/i18n/en.json | 3 +- 5 files changed, 57 insertions(+), 40 deletions(-) (limited to 'src/components/settings_modal/helpers') diff --git a/src/components/settings_modal/helpers/unit_setting.vue b/src/components/settings_modal/helpers/unit_setting.vue index e5da9012..40ab6880 100644 --- a/src/components/settings_modal/helpers/unit_setting.vue +++ b/src/components/settings_modal/helpers/unit_setting.vue @@ -9,6 +9,7 @@ > + {{ ' ' }} -
+

{{ $t('settings.theme') }}

+
+ {{ $t("settings.style.appearance_tab_note") }} +

{{ $t('settings.scale_and_layout') }}

    @@ -254,49 +257,56 @@