From bae55461b4f9f914faa430c7f7166770757168ad Mon Sep 17 00:00:00 2001 From: zyronon Date: Wed, 1 Nov 2023 18:50:26 +0800 Subject: [PATCH] Add custom shortcut keys --- src/components/Toolbar/SettingModal.vue | 24 ++++++++---------------- src/stores/setting.ts | 6 +++++- src/types.ts | 7 +++++++ 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/components/Toolbar/SettingModal.vue b/src/components/Toolbar/SettingModal.vue index 881614f3..bea93204 100644 --- a/src/components/Toolbar/SettingModal.vue +++ b/src/components/Toolbar/SettingModal.vue @@ -8,6 +8,7 @@ import {useChangeAllSound, useWatchAllSound} from "@/hooks/sound.ts"; import {useDisableEventListener, useEventListener} from "@/hooks/event.ts"; import {$computed, $ref} from "vue/macros"; import {cloneDeep} from "lodash-es"; +import {DefaultShortcutKeyMap} from "@/types.ts"; const tabIndex = $ref(2) const settingStore = useSettingStore() @@ -20,14 +21,8 @@ const emit = defineEmits([ useDisableEventListener() useWatchAllSound() -let ShortcutKeyMap = { - Show: 'Esc', - Ignore: 'Tab', - Remove: '`', - Collect: 'Enter', -} + let editShortcutKey = $ref('') -let shortcutKeyMapRef = $ref(cloneDeep(ShortcutKeyMap)) useEventListener('keydown', (e: KeyboardEvent) => { console.log('e', e, e.keyCode, e.ctrlKey, e.altKey, e.shiftKey) @@ -48,13 +43,13 @@ useEventListener('keydown', (e: KeyboardEvent) => { shortcutKey = shortcutKey.trim() if (editShortcutKey) { - for (const [k, v] of Object.entries(shortcutKeyMapRef)) { + for (const [k, v] of Object.entries(settingStore.shortcutKeyMap)) { if (v === shortcutKey && k !== editShortcutKey) { - shortcutKeyMapRef[editShortcutKey] = ShortcutKeyMap[editShortcutKey] + settingStore.shortcutKeyMap[editShortcutKey] = DefaultShortcutKeyMap[editShortcutKey] return ElMessage.warning('快捷键重复!') } } - shortcutKeyMapRef[editShortcutKey] = shortcutKey + settingStore.shortcutKeyMap[editShortcutKey] = shortcutKey } console.log('key', shortcutKey) @@ -281,7 +276,7 @@ useEventListener('keydown', (e: KeyboardEvent) => {
快捷键(点击可修改)
-
+
@@ -355,10 +350,6 @@ useEventListener('keydown', (e: KeyboardEvent) => { align-items: center; gap: $space * 5; - label { - - } - .wrapper { flex: 1; display: flex; @@ -376,10 +367,11 @@ useEventListener('keydown', (e: KeyboardEvent) => { align-items: center; input { - width: 100rem; + width: 150rem; margin-right: 10rem; height: 24rem; outline: none; + font-size: 16rem; } } } diff --git a/src/stores/setting.ts b/src/stores/setting.ts index 4eab8ce9..707d7d65 100644 --- a/src/stores/setting.ts +++ b/src/stores/setting.ts @@ -1,4 +1,6 @@ import {defineStore} from "pinia" +import {cloneDeep} from "lodash-es"; +import {DefaultShortcutKeyMap} from "@/types.ts"; export interface SettingState { showToolbar: boolean, @@ -33,6 +35,7 @@ export interface SettingState { showPanel: boolean, theme: string, collapse: boolean, + shortcutKeyMap: Record } export const useSettingStore = defineStore('setting', { @@ -71,7 +74,8 @@ export const useSettingStore = defineStore('setting', { waitTimeForChangeWord: 300, theme: 'auto', - collapse:false, + collapse: false, + shortcutKeyMap: cloneDeep(DefaultShortcutKeyMap) } }, }) \ No newline at end of file diff --git a/src/types.ts b/src/types.ts index add20852..202f4886 100644 --- a/src/types.ts +++ b/src/types.ts @@ -164,6 +164,13 @@ export const ShortcutKeyMap = { Collect: 'Enter', } +export const DefaultShortcutKeyMap = { + Show: 'Escape', + Ignore: 'Tab', + Remove: '`', + Collect: 'Enter', +} + export enum TranslateEngine {