diff --git a/src/main/events.ts b/src/main/events.ts index a1923bca5d..2b25e08987 100644 --- a/src/main/events.ts +++ b/src/main/events.ts @@ -150,5 +150,6 @@ export const TAB_EVENTS = { // 托盘相关事件 export const TRAY_EVENTS = { - SHOW_HIDDEN_WINDOW: 'tray:show-hidden-window' // 从托盘显示/隐藏窗口 + SHOW_HIDDEN_WINDOW: 'tray:show-hidden-window', // 从托盘显示/隐藏窗口 + CHECK_FOR_UPDATES: 'tray:check-for-updates' // 托盘检查更新 } diff --git a/src/main/index.ts b/src/main/index.ts index be1fe2ee81..d6e5f82ac4 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -90,6 +90,19 @@ app.whenReady().then(() => { // 注册全局快捷键 presenter.shortcutPresenter.registerShortcuts() + // 托盘 检测更新 + eventBus.on(TRAY_EVENTS.CHECK_FOR_UPDATES, () => { + const allWindows = presenter.windowPresenter.getAllWindows() + + // 查找目标窗口 (焦点窗口或第一个窗口) + const targetWindow = presenter.windowPresenter.getFocusedWindow() || allWindows![0] + presenter.windowPresenter.show(targetWindow.id) + targetWindow.focus() // 确保窗口置顶 + + // 触发更新 + presenter.upgradePresenter.checkUpdate() + }) + // 监听显示/隐藏窗口事件 (从托盘或快捷键触发) eventBus.on(TRAY_EVENTS.SHOW_HIDDEN_WINDOW, (trayClick: boolean) => { const allWindows = presenter.windowPresenter.getAllWindows() diff --git a/src/main/presenter/trayPresenter.ts b/src/main/presenter/trayPresenter.ts index 02330e98f1..9149c5cf7d 100644 --- a/src/main/presenter/trayPresenter.ts +++ b/src/main/presenter/trayPresenter.ts @@ -40,11 +40,17 @@ export class TrayPresenter { const labels = getContextMenuLabels(locale) const contextMenu = Menu.buildFromTemplate([ { - label: labels.open || '打开/隐藏(Command/Ctrl+O)', + label: labels.open || '打开/隐藏', click: () => { eventBus.sendToMain(TRAY_EVENTS.SHOW_HIDDEN_WINDOW) } }, + { + label: labels.checkForUpdates || '检查更新', + click: () => { + eventBus.sendToMain(TRAY_EVENTS.CHECK_FOR_UPDATES) + } + }, { label: labels.quit || '退出', click: () => { diff --git a/src/renderer/src/stores/upgrade.ts b/src/renderer/src/stores/upgrade.ts index 5fb36a7151..c6f22a6006 100644 --- a/src/renderer/src/stores/upgrade.ts +++ b/src/renderer/src/stores/upgrade.ts @@ -80,12 +80,12 @@ export const useUpgradeStore = defineStore('upgrade', () => { hasUpdate.value = true updateInfo.value = info ? { - version: info.version, - releaseDate: info.releaseDate, - releaseNotes: info.releaseNotes, - githubUrl: info.githubUrl, - downloadUrl: info.downloadUrl - } + version: info.version, + releaseDate: info.releaseDate, + releaseNotes: info.releaseNotes, + githubUrl: info.githubUrl, + downloadUrl: info.downloadUrl + } : null // 不自动弹出对话框,由主进程自动开始下载 break diff --git a/src/shared/i18n.ts b/src/shared/i18n.ts index 54b4564277..682dc27781 100644 --- a/src/shared/i18n.ts +++ b/src/shared/i18n.ts @@ -17,7 +17,8 @@ export const contextMenuTranslations: Record = { redo: '重做', saveImage: '图片另存为...', copyImage: '复制图片', - open: '打开/隐藏(Command/Ctrl+O)', + open: '打开/隐藏', + checkForUpdates: '检查更新', quit: '退出', translate: '翻译', askAI: '询问AI' @@ -31,7 +32,8 @@ export const contextMenuTranslations: Record = { redo: '重做', saveImage: '圖片另存為...', copyImage: '複製圖片', - open: '打開/隱藏(Command/Ctrl+O)', + open: '打開/隱藏', + checkForUpdates: '檢查更新', quit: '退出', translate: '翻譯', askAI: '詢問AI' @@ -45,7 +47,8 @@ export const contextMenuTranslations: Record = { redo: 'Redo', saveImage: 'Save Image...', copyImage: 'Copy Image', - open: 'Open/Hide(Command/Ctrl+O)', + open: 'Open/Hide', + checkForUpdates: 'Check for Updates', quit: 'Quit', translate: 'Translate', askAI: 'Ask AI' @@ -59,7 +62,8 @@ export const contextMenuTranslations: Record = { redo: 'やり直し', saveImage: '画像を保存...', copyImage: '画像をコピー', - open: '開く/隠す(Command/Ctrl+O)', + open: '開く/隠す', + checkForUpdates: '更新を確認', quit: '終了', translate: '翻訳', askAI: 'AIに質問' @@ -73,7 +77,8 @@ export const contextMenuTranslations: Record = { redo: '다시 실행', saveImage: '이미지 저장...', copyImage: '이미지 복사', - open: '열기/숨기기(Command/Ctrl+O)', + open: '열기/숨기기', + checkForUpdates: '업데이트 확인', quit: '종료', translate: '번역', askAI: 'AI에게 질문' @@ -87,7 +92,8 @@ export const contextMenuTranslations: Record = { redo: 'Rétablir', saveImage: "Enregistrer l'image...", copyImage: "Copier l'image", - open: 'Ouvrir/Cache(Command/Ctrl+O)', + open: 'Ouvrir/Cache', + checkForUpdates: 'Vérifier les mises à jour', quit: 'Quitter', translate: 'Traduire', askAI: "Demander à l'AI" @@ -101,7 +107,8 @@ export const contextMenuTranslations: Record = { redo: 'Wiederholen', saveImage: 'Bild speichern...', copyImage: 'Bild kopieren', - open: 'Öffnen/Verstecken(Command/Ctrl+O)', + open: 'Öffnen/Verstecken', + checkForUpdates: 'Nach Updates suchen', quit: 'Beenden', translate: 'Übersetzen', askAI: 'KI fragen' @@ -115,7 +122,8 @@ export const contextMenuTranslations: Record = { redo: 'Rehacer', saveImage: 'Guardar imagen...', copyImage: 'Copiar imagen', - open: 'Abrir/Esconder(Command/Ctrl+O)', + open: 'Abrir/Esconder', + checkForUpdates: 'Comprobar actualizaciones', quit: 'Salir', translate: 'Traducir', askAI: 'Preguntar a la AI'