From 1d25e6c22ee7faf59f6bfbc75ae6cd6d773afa3d Mon Sep 17 00:00:00 2001 From: zhandouxiaojiji Date: Wed, 11 Nov 2020 11:26:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=8D=E5=88=B6&=E7=B2=98=E8=B4=B4=E5=BF=AB?= =?UTF-8?q?=E6=8D=B7=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main-process/AppMenu.ts | 7 ++++-- main-process/MainProcess.tsx | 10 ++++++++- package-lock.json | 43 +++++++++++++++++++++++++++++++++++- package.json | 1 + 4 files changed, 57 insertions(+), 4 deletions(-) diff --git a/main-process/AppMenu.ts b/main-process/AppMenu.ts index b82f125..a789a37 100644 --- a/main-process/AppMenu.ts +++ b/main-process/AppMenu.ts @@ -44,6 +44,7 @@ export default class AppMenu { submenu: [ { label: "新建", + accelerator: 'ctrl+n', click: () => { (async () => { const res = await dialog.showSaveDialog({ @@ -92,12 +93,14 @@ export default class AppMenu { { type: 'separator' }, { label: "保存", + accelerator: 'ctrl+s', click: () => { this.webContents.send(MainEventType.SAVE); }, }, { label: "全部保存", + accelerator: 'ctrl+shift+s', click: () => { this.webContents.send(MainEventType.SAVE_ALL); }, @@ -120,7 +123,7 @@ export default class AppMenu { { type: 'separator' }, { label: '复制节点', - accelerator: 'ctrl+shift+c', + accelerator: 'ctrl+c', role: 'copy', click: () => { this.webContents.send(MainEventType.COPY_NODE); @@ -128,7 +131,7 @@ export default class AppMenu { }, { label: '粘贴节点', - accelerator: 'ctrl+shift+v', + accelerator: 'ctrl+v', click: () => { this.webContents.send(MainEventType.PASTE_NODE); } diff --git a/main-process/MainProcess.tsx b/main-process/MainProcess.tsx index 9b8bd2c..6cd3383 100644 --- a/main-process/MainProcess.tsx +++ b/main-process/MainProcess.tsx @@ -3,6 +3,8 @@ import AppMenu from './AppMenu' import Settings from './Settings'; import MainEventType from '../common/MainEventType'; +const electronLocalshortcut = require('electron-localshortcut'); + // 一些暴露给render-process的全局变量 export interface Global { settings: Settings @@ -17,6 +19,12 @@ export class MainProcess { nativeTheme.themeSource = 'dark'; app.on('ready', () => { this.createWindow(); + electronLocalshortcut.register(this.mainWindow, 'Ctrl+C', () => { + this.mainWindow.webContents.send(MainEventType.COPY_NODE); + }); + electronLocalshortcut.register(this.mainWindow, 'Ctrl+V', () => { + this.mainWindow.webContents.send(MainEventType.PASTE_NODE); + }); }) app.on('window-all-closed', () => { if (process.platform !== 'darwin') { @@ -33,7 +41,7 @@ export class MainProcess { createWindow() { this.settings = new Settings(); global.settings = this.settings; - + this.mainWindow = new BrowserWindow({ width: 1280, height: 800, diff --git a/package-lock.json b/package-lock.json index 9274586..24ebbf2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "behavior3editor", - "version": "0.0.3", + "version": "0.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1901,6 +1901,37 @@ "extract-zip": "^1.0.3" } }, + "electron-is-accelerator": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/electron-is-accelerator/download/electron-is-accelerator-0.1.2.tgz", + "integrity": "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=" + }, + "electron-localshortcut": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/electron-localshortcut/download/electron-localshortcut-3.2.1.tgz", + "integrity": "sha1-z8g6Pv9eKPr5jdzIf4Cizk9iPNM=", + "requires": { + "debug": "^4.0.1", + "electron-is-accelerator": "^0.1.0", + "keyboardevent-from-electron-accelerator": "^2.0.0", + "keyboardevents-areequal": "^0.2.1" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.2.0.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz", + "integrity": "sha1-fxUPk5IOlMWPVXTC/QGjEQ7/5/E=", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" + } + } + }, "electron-notarize": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/electron-notarize/download/electron-notarize-1.0.0.tgz", @@ -3319,6 +3350,16 @@ "resolved": "https://registry.npm.taobao.org/junk/download/junk-3.1.0.tgz", "integrity": "sha1-MUmQmNkCt+mMXZucgPQ0V6iKv6E=" }, + "keyboardevent-from-electron-accelerator": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/keyboardevent-from-electron-accelerator/download/keyboardevent-from-electron-accelerator-2.0.0.tgz", + "integrity": "sha1-rOIbGqTkcUiBXRYAV/nttmVnxQw=" + }, + "keyboardevents-areequal": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/keyboardevents-areequal/download/keyboardevents-areequal-0.2.2.tgz", + "integrity": "sha1-iBkexzjOn3WRwl6QVt6Si0AncZQ=" + }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npm.taobao.org/keyv/download/keyv-3.1.0.tgz?cache=0&sync_timestamp=1600337463601&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fkeyv%2Fdownload%2Fkeyv-3.1.0.tgz", diff --git a/package.json b/package.json index 4c21141..093a2cf 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "@types/react-dom": "^16.9.8", "antd": "^4.6.6", "electron": "^10.1.3", + "electron-localshortcut": "^3.2.1", "electron-packager": "^15.1.0", "react": "^16.13.1", "react-dom": "^16.13.1",