From 5380b306dec048435fd1bd3da8fad6baee05c757 Mon Sep 17 00:00:00 2001 From: Alexander Drozdov Date: Sat, 25 Jul 2020 12:58:02 +0300 Subject: [PATCH] refactor --- src/ipc/KeyToCode.ts | 7 ++++ src/main/config.ts | 58 +++++++++++++++----------------- src/web/settings/HotkeyInput.vue | 4 +-- src/web/settings/hotkeys.vue | 2 +- 4 files changed, 37 insertions(+), 34 deletions(-) diff --git a/src/ipc/KeyToCode.ts b/src/ipc/KeyToCode.ts index 401d7f13..854ffb95 100644 --- a/src/ipc/KeyToCode.ts +++ b/src/ipc/KeyToCode.ts @@ -214,3 +214,10 @@ export const KeyToElectron = { Alt: 'Alt', Shift: 'Shift' } + +export const forbidden = [ + 'Ctrl + C', 'Ctrl + V', 'Ctrl + A', 'Ctrl + F', 'Ctrl + Enter', + 'Home', 'Delete', 'Enter', + 'ArrowUp', 'ArrowRight', 'ArrowLeft' +] +export const forbiddenCtrl = ['C', 'V', 'A', 'F', 'Enter'] diff --git a/src/main/config.ts b/src/main/config.ts index 865c0a73..f89453a5 100644 --- a/src/main/config.ts +++ b/src/main/config.ts @@ -2,6 +2,7 @@ import Store from 'electron-store' import { ipcMain } from 'electron' import isDeepEq from 'fast-deep-equal' import { Config, defaultConfig } from '@/ipc/types' +import { forbidden, forbiddenCtrl } from '@/ipc/KeyToCode' import { GET_CONFIG, PUSH_CONFIG, CLOSE_SETTINGS_WINDOW } from '@/ipc/ipc-event' import { overlayWindow } from './overlay-window' import { logger } from './logger' @@ -25,53 +26,48 @@ export function setupConfigEvents () { } export const config = (() => { - const config = new Store({ + const store = new Store({ name: 'config', cwd: 'apt-data', defaults: defaultConfig }) + const config = store.store - const forbidden = ['Ctrl + C', 'Ctrl + V', 'Ctrl + A', 'Ctrl + F'] - if (forbidden.includes(config.get('priceCheckLocked') as string)) { config.set('priceCheckLocked', null) } - if (forbidden.includes(config.get('wikiKey') as string)) { config.set('wikiKey', null) } - if (forbidden.includes(config.get('mapCheckKey') as string)) { config.set('mapCheckKey', null) } - const comands = config.get('commands') - for (const c of comands) { + if (forbidden.includes(config.priceCheckLocked as string)) { config.priceCheckLocked = null } + if (forbidden.includes(config.wikiKey as string)) { config.wikiKey = null } + if (forbidden.includes(config.mapCheckKey as string)) { config.mapCheckKey = null } + if (config.priceCheckKeyHold === 'Ctrl' && forbiddenCtrl.includes(config.priceCheckKey as string)) { + config.priceCheckKey = null + } + for (const c of config.commands) { if (forbidden.includes(c.hotkey as string)) { c.hotkey = null } } - config.set('commands', comands) - if (config.get('priceCheckKeyHold') === 'Ctrl') { - if (['C', 'V', 'A', 'F'].includes(config.get('priceCheckKey') as string)) { - config.set('priceCheckKey', null) + if (typeof config.fontSize !== 'number') { + config.fontSize = defaultConfig.fontSize + } + + { + const mapWidget = config.widgets.find(w => w.wmType === 'map-check')! + if (mapWidget.wmZorder !== 'exclusive') { + mapWidget.wmZorder = 'exclusive' + mapWidget.selectedStats = mapWidget.selectedStats.map((legacy: { text: string, markedAs: string }) => ({ + matchRef: legacy.text, + invert: false, + valueWarning: legacy.markedAs === 'warning' ? '+' : '', + valueDanger: legacy.markedAs === 'danger' ? '+' : '', + valueDesirable: legacy.markedAs === 'desirable' ? '+' : '' + })) } } - - if (typeof config.get('fontSize') !== 'number') { - config.set('fontSize', defaultConfig.fontSize) - } - - const widgets = config.get('widgets') - const mapWidget = widgets.find(w => w.wmType === 'map-check')! - if (mapWidget.wmZorder !== 'exclusive') { - mapWidget.wmZorder = 'exclusive' - mapWidget.selectedStats = mapWidget.selectedStats.map((legacy: { text: string, markedAs: string }) => ({ - matchRef: legacy.text, - invert: false, - valueWarning: legacy.markedAs === 'warning' ? '+' : '', - valueDanger: legacy.markedAs === 'danger' ? '+' : '', - valueDesirable: legacy.markedAs === 'desirable' ? '+' : '' - })) config.set('widgets', widgets) } - return config + store.store = config + return store })() export function batchUpdateConfig (upd: Config, push = true) { - // for (const key in upd) { - // config.set(key as keyof Config, upd[key as keyof Config]) - // } config.store = upd logger.verbose('Saved', { source: 'config', push }) if (push) { diff --git a/src/web/settings/HotkeyInput.vue b/src/web/settings/HotkeyInput.vue index 84ba2e3c..cde32350 100644 --- a/src/web/settings/HotkeyInput.vue +++ b/src/web/settings/HotkeyInput.vue @@ -8,7 +8,7 @@