diff --git a/packages/ui/src/main/commands/index.ts b/packages/ui/src/main/commands/index.ts new file mode 100644 index 0000000..f04564a --- /dev/null +++ b/packages/ui/src/main/commands/index.ts @@ -0,0 +1,5 @@ +import { BrowserWindow } from 'electron' + +export function openDevTools(win: BrowserWindow) { + win.webContents.openDevTools() +} diff --git a/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/app-menu.ts b/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/app-menu.ts index 881f5f4..610e7ea 100644 --- a/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/app-menu.ts +++ b/packages/ui/src/main/flow/OPEN_SETTING_WINDOW/app-menu.ts @@ -1,4 +1,5 @@ import { app, Menu, MenuItemConstructorOptions, MenuItem } from 'electron' +import { openDevTools } from '../../commands' const isMac = process.platform === 'darwin' @@ -21,7 +22,43 @@ const template: (MenuItemConstructorOptions | MenuItem)[] = [ ] } ] - : []) + : []), + { + label: 'Edit', + submenu: [ + { role: 'undo' }, + { role: 'redo' }, + { type: 'separator' }, + { role: 'cut' }, + { role: 'copy' }, + { role: 'paste' }, + ...(isMac + ? [ + { role: 'pasteAndMatchStyle' }, + { role: 'delete' }, + { role: 'selectAll' }, + { type: 'separator' }, + { + label: 'Speech', + submenu: [{ role: 'startSpeaking' }, { role: 'stopSpeaking' }] + } + ] + : [{ role: 'delete' }, { type: 'separator' }, { role: 'selectAll' }]), + { type: 'separator' } + ] + }, + { + role: 'Help', + submenu: [ + { + label: '为当前窗口打开调试工具', + accelerator: 'CommandOrControl+Shift+I', + click(_, win) { + openDevTools(win) + } + } + ] + } ] const menu = Menu.buildFromTemplate(template) Menu.setApplicationMenu(menu) diff --git a/packages/ui/src/main/window/mainWindow.ts b/packages/ui/src/main/window/mainWindow.ts index 7a576e4..a6f4d6c 100644 --- a/packages/ui/src/main/window/mainWindow.ts +++ b/packages/ui/src/main/window/mainWindow.ts @@ -1,5 +1,6 @@ import { BrowserWindow, shell } from 'electron' import path from 'path' +import { openDevTools } from '../commands' export let mainWindow: BrowserWindow | null = null export function createMainWindow(): void { @@ -20,7 +21,7 @@ export function createMainWindow(): void { } }) - process.env.NODE_ENV === 'development' && mainWindow.webContents.openDevTools() + process.env.NODE_ENV === 'development' && openDevTools(mainWindow) mainWindow.on('ready-to-show', () => { mainWindow.show()