diff --git a/build/entitlements.mas.plist b/build/entitlements.mas.plist index 75d6dc31..41f1ff7b 100644 --- a/build/entitlements.mas.plist +++ b/build/entitlements.mas.plist @@ -22,6 +22,12 @@ com.apple.security.cs.allow-dyld-environment-variables + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.device.usb + com.apple.security.network.server diff --git a/build/icons/icon2.icns b/build/icons/icon2.icns deleted file mode 100644 index 113d9326..00000000 Binary files a/build/icons/icon2.icns and /dev/null differ diff --git a/public/menubar-newdarwinTemplate.png b/public/menubar-newdarwinTemplate.png index 0b9ddfd4..96efb2ff 100644 Binary files a/public/menubar-newdarwinTemplate.png and b/public/menubar-newdarwinTemplate.png differ diff --git a/public/menubar-newdarwinTemplate@.png b/public/menubar-newdarwinTemplate@.png new file mode 100644 index 00000000..d43f3022 Binary files /dev/null and b/public/menubar-newdarwinTemplate@.png differ diff --git a/public/menubar-newdarwinTemplate@512w.png b/public/menubar-newdarwinTemplate@512w.png deleted file mode 100644 index d68d6e02..00000000 Binary files a/public/menubar-newdarwinTemplate@512w.png and /dev/null differ diff --git a/public/menubar.png b/public/menubar.png index b64b7bd2..4646df9b 100644 Binary files a/public/menubar.png and b/public/menubar.png differ diff --git a/src/main/apis/app/system/index.ts b/src/main/apis/app/system/index.ts index a03ed5e4..29bc7d35 100644 --- a/src/main/apis/app/system/index.ts +++ b/src/main/apis/app/system/index.ts @@ -23,6 +23,86 @@ import { buildPicBedListMenu } from '~/main/events/remotes/menu' let contextMenu: Menu | null let menu: Menu | null let tray: Tray | null + +export function createApplicationMenu () { + if (process.platform === 'darwin') { + const submenu = buildPicBedListMenu() + contextMenu = Menu.buildFromTemplate([ + { + label: 'PicList', + submenu: [ + { + label: T('ABOUT'), + click () { + dialog.showMessageBox({ + title: 'PicList', + message: 'PicList', + detail: `Version: ${pkg.version}\nAuthor: Kuingsmile\nGithub: https://github.com/Kuingsmile/PicList` + }) + } + }, + { + label: T('OPEN_MAIN_WINDOW'), + click () { + const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW) + settingWindow!.show() + settingWindow!.focus() + if (windowManager.has(IWindowList.MINI_WINDOW)) { + windowManager.get(IWindowList.MINI_WINDOW)!.hide() + } + } + }, + { + label: T('CHOOSE_DEFAULT_PICBED'), + type: 'submenu', + // @ts-ignore + submenu + }, + // @ts-ignore + { + label: T('OPEN_UPDATE_HELPER'), + type: 'checkbox', + checked: db.get('settings.showUpdateTip'), + click () { + const value = db.get('settings.showUpdateTip') + db.set('settings.showUpdateTip', !value) + } + }, + { + label: T('PRIVACY_AGREEMENT'), + click () { + privacyManager.show(false) + } + }, + { + label: T('RELOAD_APP'), + click () { + app.relaunch() + app.exit(0) + } + }, + // @ts-ignore + { + role: 'quit', + label: T('QUIT') + } + ] + }, + { + label: T('QUIT'), + submenu: [ + { + label: T('QUIT'), + role: 'quit' + } + ] + } + + ]) + Menu.setApplicationMenu(contextMenu) + } +} + export function createContextMenu () { if (process.platform === 'darwin' || process.platform === 'win32') { const submenu = buildPicBedListMenu() diff --git a/src/main/lifeCycle/index.ts b/src/main/lifeCycle/index.ts index 1ecc7dfd..50074d0a 100644 --- a/src/main/lifeCycle/index.ts +++ b/src/main/lifeCycle/index.ts @@ -23,7 +23,8 @@ import { uploadClipboardFiles } from 'apis/app/uploader/apis' import { - createTray + createTray, + createApplicationMenu } from 'apis/app/system' import server from '~/main/server/index' import updateChecker from '~/main/utils/updateChecker' @@ -90,6 +91,7 @@ class LifeCycle { windowManager.create(IWindowList.TRAY_WINDOW) windowManager.create(IWindowList.SETTING_WINDOW) createTray() + createApplicationMenu() db.set('needReload', false) updateChecker() // 不需要阻塞 @@ -180,15 +182,10 @@ class LifeCycle { } async launchApp () { - const gotTheLock = app.requestSingleInstanceLock() - if (!gotTheLock) { - app.quit() - } else { - await this.beforeReady() - this.onReady() - this.onRunning() - this.onQuit() - } + await this.beforeReady() + this.onReady() + this.onRunning() + this.onQuit() } } diff --git a/vue.config.js b/vue.config.js index 00c4ec91..08e2628a 100644 --- a/vue.config.js +++ b/vue.config.js @@ -67,7 +67,7 @@ const config = { }, mac: { icon: 'build/icons/icon.icns', - hardenedRuntime: true, + hardenedRuntime: false, entitlements: 'build/entitlements.mas.plist', entitlementsInherit: 'build/entitlements.mas.inherit.plist', provisioningProfile: 'build/piclistmass.provisionprofile', @@ -90,7 +90,7 @@ const config = { entitlements: 'build/entitlements.mas.plist', entitlementsInherit: 'build/entitlements.mas.inherit.plist', provisioningProfile: 'build/piclistmass.provisionprofile', - entitlementsLoginHelper: "build/entitlements.mas.loginhelper.plist" + entitlementsLoginHelper: 'build/entitlements.mas.loginhelper.plist' }, win: { icon: 'build/icons/icon.ico',