From cd5d1b928db04fac75ec9561a13d9895457ce819 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Sat, 23 May 2026 12:42:08 +0800 Subject: [PATCH] feat(grid): add configurable keyboard shortcuts for copy and delete current row --- .../editor/EditorSettingsDialog.vue | 45 ++++++++++------- .../src/components/editor/QueryEditor.vue | 2 + apps/desktop/src/components/grid/DataGrid.vue | 50 ++++++++++++++++++- apps/desktop/src/i18n/locales/en.ts | 2 + apps/desktop/src/i18n/locales/es.ts | 2 + apps/desktop/src/i18n/locales/zh-CN.ts | 2 + apps/desktop/src/lib/keyboardShortcuts.ts | 8 +++ apps/desktop/src/lib/shortcutRegistry.ts | 14 ++++++ .../dataGridRowShortcutSource.test.ts | 12 +++++ packages/app-tests/keyboardShortcuts.test.ts | 10 ++++ .../app-tests/settingsDialogLayout.test.ts | 2 + packages/app-tests/settingsStore.test.ts | 11 +++- 12 files changed, 141 insertions(+), 19 deletions(-) create mode 100644 packages/app-tests/dataGridRowShortcutSource.test.ts diff --git a/apps/desktop/src/components/editor/EditorSettingsDialog.vue b/apps/desktop/src/components/editor/EditorSettingsDialog.vue index d66e8c14c7..bd0d970e34 100644 --- a/apps/desktop/src/components/editor/EditorSettingsDialog.vue +++ b/apps/desktop/src/components/editor/EditorSettingsDialog.vue @@ -3,6 +3,7 @@ import { ref, watch, shallowRef, computed } from "vue"; import type { EditorView as EditorViewType } from "@codemirror/view"; import { useI18n } from "vue-i18n"; import { CircleHelp, ExternalLink, Loader2, RefreshCw, Settings } from "lucide-vue-next"; +import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; @@ -652,7 +653,7 @@ watch(