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',