From d708bfe7e81128a6e6b1653dae8ce8866bbb6e1e Mon Sep 17 00:00:00 2001 From: AkiChase <1003019131@qq.com> Date: Sat, 27 Apr 2024 09:26:14 +0800 Subject: [PATCH] feat(KeyBoard): load key config --- src/App.vue | 47 +++++++++------- src/components/Mask.vue | 26 +++++---- src/components/keyboard/KeyBoard.vue | 7 ++- src/components/keyboard/KeySetting.vue | 76 ++++++++++++++++++++++---- 4 files changed, 111 insertions(+), 45 deletions(-) diff --git a/src/App.vue b/src/App.vue index 9d9f2f7..2b68aae 100644 --- a/src/App.vue +++ b/src/App.vue @@ -8,7 +8,6 @@ import { NDialogProvider, } from "naive-ui"; import { Store } from "@tauri-apps/plugin-store"; -import { getCurrent } from "@tauri-apps/api/window"; import { KeyMappingConfig } from "./keyMappingConfig"; import { onMounted } from "vue"; import { useGlobalStore } from "./store/global"; @@ -22,30 +21,43 @@ onMounted(async () => { "keyMappingConfigList" ); if (keyMappingConfigList === null || keyMappingConfigList.length === 0) { + // unable to get mask element when app is not ready + // so we use the stored mask area to get relative size + const maskArea: { + posX: number; + posY: number; + sizeW: number; + sizeH: number; + } | null = await localStore.get("maskArea"); + let relativeSize = { w: 800, h: 600 }; + if (maskArea !== null) { + relativeSize = { + w: maskArea.sizeW, + h: maskArea.sizeH, + }; + } keyMappingConfigList = [ { - relativeSize: await calMaskSize(), + relativeSize, title: "空白方案", list: [], }, ]; } - store.keyMappingConfigList = keyMappingConfigList; -}); - -async function calMaskSize() { - const appWindow = getCurrent(); - const ml = 70; - const mt = 30; - let size = (await appWindow.outerSize()).toLogical( - await appWindow.scaleFactor() + // loading curKeyMappingIndex from local store + let curKeyMappingIndex: number | null = await localStore.get( + "curKeyMappingIndex" ); - return { - w: Math.round(size.width) - ml, - h: Math.round(size.height) - mt, - }; -} + if ( + curKeyMappingIndex === null || + curKeyMappingIndex >= keyMappingConfigList.length + ) { + curKeyMappingIndex = 0; + localStore.set("curKeyMappingIndex", curKeyMappingIndex); + } + store.curKeyMappingIndex = curKeyMappingIndex; +});