From 084fc1be9b15ae473f5db8c622d8ed580ceb0b6b Mon Sep 17 00:00:00 2001 From: Terry Truong Date: Wed, 29 Jun 2022 19:11:19 +1000 Subject: Allow single-setting-resets via settings-label-clicks --- src/components/SettingsModal.vue | 72 ++++++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/components/SettingsModal.vue b/src/components/SettingsModal.vue index 2e4d217..42647a5 100644 --- a/src/components/SettingsModal.vue +++ b/src/components/SettingsModal.vue @@ -9,16 +9,16 @@

Layout

- Sweep leaves to side +
Sweep leaves to side
  • + @change="onSettingChg('LYT', 'layoutType')"/> Yes
  • + @change="onSettingChg('LYT', 'layoutType')"/> No
- Sweep into parent +
Sweep into parent
  • @@ -31,19 +31,25 @@
- +
{{pxToDisplayStr(lytOpts.minTileSz)}}
- +
{{pxToDisplayStr(lytOpts.maxTileSz)}}
- + @@ -54,30 +60,38 @@

Timing

- + + @change="onSettingChg('UI', 'transitionDuration')" class="my-auto" name="animTimeInput"/>
{{uiOpts.transitionDuration}} ms
- + + @change="onSettingChg('UI', 'autoActionDelay')" class="my-auto" name="autoDelayInput"/>
{{uiOpts.autoActionDelay}} ms

Other

- + +
- + +
+ @click="onResetAll"> Reset @@ -116,6 +130,9 @@ export default defineComponent({ boxShadow: this.uiOpts.shadowNormal, }; }, + labelClasses(): Record { + return "w-fit hover:cursor-pointer hover:text-lime-600"; + }, }, watch: { sweepLeaves(newVal: boolean, oldVal: boolean){ @@ -156,7 +173,28 @@ export default defineComponent({ } } }, - onReset(){ + onReset(optionType: OptionType, option: string){ + let defaultLytOpts = getDefaultLytOpts(); + let defaultUiOpts = getDefaultUiOpts(defaultLytOpts); + if (optionType == 'LYT'){ + let lytOpt = option as keyof LayoutOptions; + if (this.lytOpts[lytOpt] == defaultLytOpts[lytOpt]){ + return; + } + (this.lytOpts[lytOpt] as any) = defaultLytOpts[lytOpt]; + if (option == 'layoutType'){ + this.sweepLeaves = this.lytOpts.layoutType == 'sweep'; + } + } else { + let uiOpt = option as keyof UiOptions; + if (this.uiOpts[uiOpt] == defaultUiOpts[uiOpt]){ + return; + } + (this.uiOpts[uiOpt] as any) = defaultUiOpts[uiOpt]; + } + this.onSettingChg(optionType, option); + }, + onResetAll(){ // Restore default options let defaultLytOpts = getDefaultLytOpts(); let defaultUiOpts = getDefaultUiOpts(defaultLytOpts); -- cgit v1.2.3