mirror of
https://github.com/Molunerfinn/PicGo.git
synced 2024-04-21 10:31:33 +00:00
Compare commits
6
Commits
v2.4.0-beta.5
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e91582adc | ||
|
|
aaec99f466 | ||
|
|
50e0a64519 | ||
|
|
8cede85732 | ||
|
|
050a3dd602 | ||
|
|
cd07b33e6b |
Vendored
+4
-3
@@ -20,7 +20,8 @@
|
|||||||
"stylusSupremacy.sortProperties": "grouped",
|
"stylusSupremacy.sortProperties": "grouped",
|
||||||
"stylusSupremacy.quoteChar": "\"",
|
"stylusSupremacy.quoteChar": "\"",
|
||||||
"editor.codeActionsOnSave": {
|
"editor.codeActionsOnSave": {
|
||||||
"source.fixAll.eslint": true,
|
"source.fixAll.eslint": "explicit",
|
||||||
"source.organizeImports": false
|
"source.organizeImports": "never"
|
||||||
}
|
},
|
||||||
|
"prettier.enable": false
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,13 @@
|
|||||||
|
# :tada: 2.4.0-beta.6 (2023-11-19)
|
||||||
|
|
||||||
|
|
||||||
|
### :bug: Bug Fixes
|
||||||
|
|
||||||
|
* app.asar directroy copy error ([#1180](https://github.com/Molunerfinn/PicGo/issues/1180)) ([cd07b33](https://github.com/Molunerfinn/PicGo/commit/cd07b33)), closes [#1179](https://github.com/Molunerfinn/PicGo/issues/1179)
|
||||||
|
* can't add new config for picbed ([050a3dd](https://github.com/Molunerfinn/PicGo/commit/050a3dd)), closes [#1184](https://github.com/Molunerfinn/PicGo/issues/1184)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# :tada: 2.4.0-beta.5 (2023-09-10)
|
# :tada: 2.4.0-beta.5 (2023-09-10)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "picgo",
|
"name": "picgo",
|
||||||
"version": "2.4.0-beta.5",
|
"version": "2.4.0-beta.6",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "vue-cli-service electron:build",
|
"build": "vue-cli-service electron:build",
|
||||||
|
|||||||
+8
-4
@@ -1,4 +1,4 @@
|
|||||||
LANG_DISPLAY_LABEL: 'English'
|
LANG_DISPLAY_LABEL: "English"
|
||||||
ABOUT: About
|
ABOUT: About
|
||||||
OPEN_MAIN_WINDOW: Open Main Window
|
OPEN_MAIN_WINDOW: Open Main Window
|
||||||
CHOOSE_DEFAULT_PICBED: Choose Default Picbed
|
CHOOSE_DEFAULT_PICBED: Choose Default Picbed
|
||||||
@@ -28,7 +28,7 @@ OPEN_TOOLBOX: Open Toolbox
|
|||||||
|
|
||||||
# ---renderer i18n begin---
|
# ---renderer i18n begin---
|
||||||
|
|
||||||
CHOOSE_YOUR_DEFAULT_PICBED: 'Choose ${d} as your default picbed:'
|
CHOOSE_YOUR_DEFAULT_PICBED: "Choose ${d} as your default picbed:"
|
||||||
UPLOAD_AREA: Upload Area
|
UPLOAD_AREA: Upload Area
|
||||||
GALLERY: Gallery
|
GALLERY: Gallery
|
||||||
PICBEDS_SETTINGS: Picbeds Settings
|
PICBEDS_SETTINGS: Picbeds Settings
|
||||||
@@ -85,7 +85,7 @@ SETTINGS_AUTO_COPY_URL_AFTER_UPLOAD: Auto Copy URL After Upload
|
|||||||
SETTINGS_TIPS_PLACEHOLDER_URL: Use $url to represent url position
|
SETTINGS_TIPS_PLACEHOLDER_URL: Use $url to represent url position
|
||||||
SETTINGS_TIPS_PLACEHOLDER_FILENAME: Use $fileName to represent file name position
|
SETTINGS_TIPS_PLACEHOLDER_FILENAME: Use $fileName to represent file name position
|
||||||
SETTINGS_TIPS_PLACEHOLDER_EXTNAME: Use $extName to represent file's ext position
|
SETTINGS_TIPS_PLACEHOLDER_EXTNAME: Use $extName to represent file's ext position
|
||||||
SETTINGS_TIPS_SUCH_AS: 'Such as: $url/$fileName'
|
SETTINGS_TIPS_SUCH_AS: "Such as: $url/$fileName"
|
||||||
SETTINGS_UPLOAD_PROXY: Upload Proxy
|
SETTINGS_UPLOAD_PROXY: Upload Proxy
|
||||||
SETTINGS_PLUGIN_INSTALL_PROXY: Proxy for Plugin Install
|
SETTINGS_PLUGIN_INSTALL_PROXY: Proxy for Plugin Install
|
||||||
SETTINGS_PLUGIN_INSTALL_MIRROR: Mirror for Plugin Install
|
SETTINGS_PLUGIN_INSTALL_MIRROR: Mirror for Plugin Install
|
||||||
@@ -121,6 +121,10 @@ UPLOADER_CONFIG_PLACEHOLDER: Please Enter Configuration Name
|
|||||||
SELECTED_SETTING_HINT: Selected
|
SELECTED_SETTING_HINT: Selected
|
||||||
SETTINGS_ENCODE_OUTPUT_URL: Encode Output(or Copyed) URL
|
SETTINGS_ENCODE_OUTPUT_URL: Encode Output(or Copyed) URL
|
||||||
SETTINGS_SHOW_DOCK_ICON: Show Dock icon
|
SETTINGS_SHOW_DOCK_ICON: Show Dock icon
|
||||||
|
SETTINGS_STARTUP_MODE: Startup Mode
|
||||||
|
SETTINGS_STARTUP_MODE_MAIN_WINDOW: Open Main Window
|
||||||
|
SETTINGS_STARTUP_MODE_MINI_WINDOW: Open Mini Window
|
||||||
|
SETTINGS_STARTUP_MODE_HIDE: Silent Startup
|
||||||
|
|
||||||
# shortcut-page
|
# shortcut-page
|
||||||
|
|
||||||
@@ -236,7 +240,7 @@ TIPS_PLUGIN_OVERWRITE_GALLERY: Plugin is trying to overwrite the album gallery,
|
|||||||
TIPS_UPLOAD_NOT_PICTURES: The latest clipboard item is not a picture
|
TIPS_UPLOAD_NOT_PICTURES: The latest clipboard item is not a picture
|
||||||
TIPS_PICGO_CONFIG_FILE_BROKEN_WITH_DEFAULT: PicGo config file broken, has been restored to default
|
TIPS_PICGO_CONFIG_FILE_BROKEN_WITH_DEFAULT: PicGo config file broken, has been restored to default
|
||||||
TIPS_PICGO_CONFIG_FILE_BROKEN_WITH_BACKUP: PicGo config file broken, has been restored to backup
|
TIPS_PICGO_CONFIG_FILE_BROKEN_WITH_BACKUP: PicGo config file broken, has been restored to backup
|
||||||
TIPS_PICGO_BACKUP_FILE_VERSION: 'Backup file version: ${v}'
|
TIPS_PICGO_BACKUP_FILE_VERSION: "Backup file version: ${v}"
|
||||||
TIPS_CUSTOM_CONFIG_FILE_PATH_ERROR: Custom config file parse error, please check the path content
|
TIPS_CUSTOM_CONFIG_FILE_PATH_ERROR: Custom config file parse error, please check the path content
|
||||||
TIPS_SHORTCUT_MODIFIED_SUCCEED: Shortcut modified successfully
|
TIPS_SHORTCUT_MODIFIED_SUCCEED: Shortcut modified successfully
|
||||||
TIPS_SHORTCUT_MODIFIED_CONFLICT: Shortcut conflict, please reset
|
TIPS_SHORTCUT_MODIFIED_CONFLICT: Shortcut conflict, please reset
|
||||||
|
|||||||
@@ -121,6 +121,10 @@ UPLOADER_CONFIG_PLACEHOLDER: 请输入配置名称
|
|||||||
SELECTED_SETTING_HINT: 已选中
|
SELECTED_SETTING_HINT: 已选中
|
||||||
SETTINGS_ENCODE_OUTPUT_URL: 输出(复制) URL 时进行转义
|
SETTINGS_ENCODE_OUTPUT_URL: 输出(复制) URL 时进行转义
|
||||||
SETTINGS_SHOW_DOCK_ICON: 显示 Dock 栏图标
|
SETTINGS_SHOW_DOCK_ICON: 显示 Dock 栏图标
|
||||||
|
SETTINGS_STARTUP_MODE: 启动模式
|
||||||
|
SETTINGS_STARTUP_MODE_MAIN_WINDOW: 打开主窗口
|
||||||
|
SETTINGS_STARTUP_MODE_MINI_WINDOW: 打开 Mini 窗口
|
||||||
|
SETTINGS_STARTUP_MODE_HIDE: 静默启动
|
||||||
|
|
||||||
# shortcut-page
|
# shortcut-page
|
||||||
|
|
||||||
@@ -236,7 +240,7 @@ TIPS_PLUGIN_OVERWRITE_GALLERY: 有插件正在试图覆盖相册列表,是否
|
|||||||
TIPS_UPLOAD_NOT_PICTURES: 剪贴板最新的一条记录不是图片
|
TIPS_UPLOAD_NOT_PICTURES: 剪贴板最新的一条记录不是图片
|
||||||
TIPS_PICGO_CONFIG_FILE_BROKEN_WITH_DEFAULT: PicGo 配置文件损坏,已经恢复为默认配置
|
TIPS_PICGO_CONFIG_FILE_BROKEN_WITH_DEFAULT: PicGo 配置文件损坏,已经恢复为默认配置
|
||||||
TIPS_PICGO_CONFIG_FILE_BROKEN_WITH_BACKUP: PicGo 配置文件损坏,已经恢复为备份配置
|
TIPS_PICGO_CONFIG_FILE_BROKEN_WITH_BACKUP: PicGo 配置文件损坏,已经恢复为备份配置
|
||||||
TIPS_PICGO_BACKUP_FILE_VERSION: '备份文件版本: ${v}'
|
TIPS_PICGO_BACKUP_FILE_VERSION: "备份文件版本: ${v}"
|
||||||
TIPS_CUSTOM_CONFIG_FILE_PATH_ERROR: 自定义文件解析出错,请检查路径内容是否正确
|
TIPS_CUSTOM_CONFIG_FILE_PATH_ERROR: 自定义文件解析出错,请检查路径内容是否正确
|
||||||
TIPS_SHORTCUT_MODIFIED_SUCCEED: 快捷键已经修改成功
|
TIPS_SHORTCUT_MODIFIED_SUCCEED: 快捷键已经修改成功
|
||||||
TIPS_SHORTCUT_MODIFIED_CONFLICT: 快捷键冲突,请重新设置
|
TIPS_SHORTCUT_MODIFIED_CONFLICT: 快捷键冲突,请重新设置
|
||||||
|
|||||||
@@ -121,6 +121,10 @@ UPLOADER_CONFIG_PLACEHOLDER: 請輸入配置名稱
|
|||||||
SELECTED_SETTING_HINT: 已選中
|
SELECTED_SETTING_HINT: 已選中
|
||||||
SETTINGS_ENCODE_OUTPUT_URL: 輸出(複製) URL 時進行轉義
|
SETTINGS_ENCODE_OUTPUT_URL: 輸出(複製) URL 時進行轉義
|
||||||
SETTINGS_SHOW_DOCK_ICON: 顯示 Dock 欄圖示
|
SETTINGS_SHOW_DOCK_ICON: 顯示 Dock 欄圖示
|
||||||
|
SETTINGS_STARTUP_MODE: 啟動模式
|
||||||
|
SETTINGS_STARTUP_MODE_MAIN_WINDOW: 打開主視窗
|
||||||
|
SETTINGS_STARTUP_MODE_MINI_WINDOW: 打開 Mini 視窗
|
||||||
|
SETTINGS_STARTUP_MODE_HIDE: 靜默啟動
|
||||||
|
|
||||||
# shortcut-page
|
# shortcut-page
|
||||||
|
|
||||||
@@ -236,7 +240,7 @@ TIPS_PLUGIN_OVERWRITE_GALLERY: 有插件正在試圖覆蓋相簿列表,是否
|
|||||||
TIPS_UPLOAD_NOT_PICTURES: 剪貼簿最新的一條記錄不是圖片
|
TIPS_UPLOAD_NOT_PICTURES: 剪貼簿最新的一條記錄不是圖片
|
||||||
TIPS_PICGO_CONFIG_FILE_BROKEN_WITH_DEFAULT: PicGo 設定檔案已損壞,已經恢復為預設設定
|
TIPS_PICGO_CONFIG_FILE_BROKEN_WITH_DEFAULT: PicGo 設定檔案已損壞,已經恢復為預設設定
|
||||||
TIPS_PICGO_CONFIG_FILE_BROKEN_WITH_BACKUP: PicGo 設定檔案已損壞,已經恢復為備份設定
|
TIPS_PICGO_CONFIG_FILE_BROKEN_WITH_BACKUP: PicGo 設定檔案已損壞,已經恢復為備份設定
|
||||||
TIPS_PICGO_BACKUP_FILE_VERSION: '備份檔案版本: ${v}'
|
TIPS_PICGO_BACKUP_FILE_VERSION: "備份檔案版本: ${v}"
|
||||||
TIPS_CUSTOM_CONFIG_FILE_PATH_ERROR: 自訂設定檔案解析出錯,請檢查路徑內容是否正確
|
TIPS_CUSTOM_CONFIG_FILE_PATH_ERROR: 自訂設定檔案解析出錯,請檢查路徑內容是否正確
|
||||||
TIPS_SHORTCUT_MODIFIED_SUCCEED: 快捷鍵已經修改成功
|
TIPS_SHORTCUT_MODIFIED_SUCCEED: 快捷鍵已經修改成功
|
||||||
TIPS_SHORTCUT_MODIFIED_CONFLICT: 快捷鍵衝突,請重新設定
|
TIPS_SHORTCUT_MODIFIED_CONFLICT: 快捷鍵衝突,請重新設定
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import { privacyManager } from '~/main/utils/privacyManager'
|
|||||||
import { T } from '~/main/i18n'
|
import { T } from '~/main/i18n'
|
||||||
import { isMacOSVersionGreaterThanOrEqualTo } from '~/main/utils/getMacOSVersion'
|
import { isMacOSVersionGreaterThanOrEqualTo } from '~/main/utils/getMacOSVersion'
|
||||||
import { buildPicBedListMenu } from '~/main/events/remotes/menu'
|
import { buildPicBedListMenu } from '~/main/events/remotes/menu'
|
||||||
|
import { isLinux, isMacOS } from '~/universal/utils/common'
|
||||||
let contextMenu: Menu | null
|
let contextMenu: Menu | null
|
||||||
let menu: Menu | null
|
let menu: Menu | null
|
||||||
let tray: Tray | null
|
let tray: Tray | null
|
||||||
@@ -137,7 +138,9 @@ export function createContextMenu () {
|
|||||||
const getTrayIcon = () => {
|
const getTrayIcon = () => {
|
||||||
if (process.platform === 'darwin') {
|
if (process.platform === 'darwin') {
|
||||||
const isMacOSGreaterThan11 = isMacOSVersionGreaterThanOrEqualTo('11')
|
const isMacOSGreaterThan11 = isMacOSVersionGreaterThanOrEqualTo('11')
|
||||||
return isMacOSGreaterThan11 ? `${__static}/menubar-newdarwinTemplate.png` : `${__static}/menubar.png`
|
return isMacOSGreaterThan11
|
||||||
|
? `${__static}/menubar-newdarwinTemplate.png`
|
||||||
|
: `${__static}/menubar.png`
|
||||||
} else {
|
} else {
|
||||||
return `${__static}/menubar-nodarwin.png`
|
return `${__static}/menubar-nodarwin.png`
|
||||||
}
|
}
|
||||||
@@ -153,7 +156,9 @@ export function createTray () {
|
|||||||
windowManager.get(IWindowList.TRAY_WINDOW)!.hide()
|
windowManager.get(IWindowList.TRAY_WINDOW)!.hide()
|
||||||
}
|
}
|
||||||
createContextMenu()
|
createContextMenu()
|
||||||
|
setTimeout(() => {
|
||||||
tray!.popUpContextMenu(contextMenu!)
|
tray!.popUpContextMenu(contextMenu!)
|
||||||
|
}, 0)
|
||||||
})
|
})
|
||||||
tray.on('click', (event, bounds) => {
|
tray.on('click', (event, bounds) => {
|
||||||
if (process.platform === 'darwin') {
|
if (process.platform === 'darwin') {
|
||||||
@@ -174,7 +179,10 @@ export function createTray () {
|
|||||||
} else {
|
} else {
|
||||||
if (decodePath !== '') {
|
if (decodePath !== '') {
|
||||||
// 带有中文的路径,无法直接被img.src所使用,会被转义
|
// 带有中文的路径,无法直接被img.src所使用,会被转义
|
||||||
const base64 = await fs.readFile(decodePath.replace('file://', ''), { encoding: 'base64' })
|
const base64 = await fs.readFile(
|
||||||
|
decodePath.replace('file://', ''),
|
||||||
|
{ encoding: 'base64' }
|
||||||
|
)
|
||||||
obj.push({
|
obj.push({
|
||||||
imgUrl: `data:image/png;base64,${base64}`
|
imgUrl: `data:image/png;base64,${base64}`
|
||||||
})
|
})
|
||||||
@@ -190,7 +198,9 @@ export function createTray () {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
windowManager.get(IWindowList.TRAY_WINDOW)!.webContents.send('clipboardFiles', obj)
|
windowManager
|
||||||
|
.get(IWindowList.TRAY_WINDOW)!
|
||||||
|
.webContents.send('clipboardFiles', obj)
|
||||||
}, 0)
|
}, 0)
|
||||||
} else {
|
} else {
|
||||||
if (windowManager.has(IWindowList.TRAY_WINDOW)) {
|
if (windowManager.has(IWindowList.TRAY_WINDOW)) {
|
||||||
@@ -229,7 +239,9 @@ export function createTray () {
|
|||||||
if (imgs !== false) {
|
if (imgs !== false) {
|
||||||
const pasteText: string[] = []
|
const pasteText: string[] = []
|
||||||
for (let i = 0; i < imgs.length; i++) {
|
for (let i = 0; i < imgs.length; i++) {
|
||||||
pasteText.push(pasteTemplate(pasteStyle, imgs[i], db.get('settings.customLink')))
|
pasteText.push(
|
||||||
|
pasteTemplate(pasteStyle, imgs[i], db.get('settings.customLink'))
|
||||||
|
)
|
||||||
const notification = new Notification({
|
const notification = new Notification({
|
||||||
title: T('UPLOAD_SUCCEED'),
|
title: T('UPLOAD_SUCCEED'),
|
||||||
body: imgs[i].imgUrl!
|
body: imgs[i].imgUrl!
|
||||||
@@ -245,7 +257,7 @@ export function createTray () {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
// toggleWindow()
|
// toggleWindow()
|
||||||
} else if (process.platform === 'linux') {
|
} else if (isLinux) {
|
||||||
// click事件在Ubuntu上无法触发,Unity不支持(在Mac和Windows上可以触发)
|
// click事件在Ubuntu上无法触发,Unity不支持(在Mac和Windows上可以触发)
|
||||||
// 需要使用 setContextMenu 设置菜单
|
// 需要使用 setContextMenu 设置菜单
|
||||||
createContextMenu()
|
createContextMenu()
|
||||||
@@ -254,7 +266,7 @@ export function createTray () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function handleDockIcon () {
|
export function handleDockIcon () {
|
||||||
if (process.platform === 'darwin') {
|
if (isMacOS) {
|
||||||
if (db.get('settings.showDockIcon') !== false) {
|
if (db.get('settings.showDockIcon') !== false) {
|
||||||
app.dock.show()
|
app.dock.show()
|
||||||
app.dock.setMenu(createContextMenu())
|
app.dock.setMenu(createContextMenu())
|
||||||
@@ -269,16 +281,25 @@ export function createMenu () {
|
|||||||
return menu
|
return menu
|
||||||
}
|
}
|
||||||
if (process.env.NODE_ENV !== 'development') {
|
if (process.env.NODE_ENV !== 'development') {
|
||||||
const template = [{
|
const template = [
|
||||||
|
{
|
||||||
label: 'Edit',
|
label: 'Edit',
|
||||||
submenu: [
|
submenu: [
|
||||||
{ label: 'Undo', accelerator: 'CmdOrCtrl+Z', selector: 'undo:' },
|
{ label: 'Undo', accelerator: 'CmdOrCtrl+Z', selector: 'undo:' },
|
||||||
{ label: 'Redo', accelerator: 'Shift+CmdOrCtrl+Z', selector: 'redo:' },
|
{
|
||||||
|
label: 'Redo',
|
||||||
|
accelerator: 'Shift+CmdOrCtrl+Z',
|
||||||
|
selector: 'redo:'
|
||||||
|
},
|
||||||
{ type: 'separator' },
|
{ type: 'separator' },
|
||||||
{ label: 'Cut', accelerator: 'CmdOrCtrl+X', selector: 'cut:' },
|
{ label: 'Cut', accelerator: 'CmdOrCtrl+X', selector: 'cut:' },
|
||||||
{ label: 'Copy', accelerator: 'CmdOrCtrl+C', selector: 'copy:' },
|
{ label: 'Copy', accelerator: 'CmdOrCtrl+C', selector: 'copy:' },
|
||||||
{ label: 'Paste', accelerator: 'CmdOrCtrl+V', selector: 'paste:' },
|
{ label: 'Paste', accelerator: 'CmdOrCtrl+V', selector: 'paste:' },
|
||||||
{ label: 'Select All', accelerator: 'CmdOrCtrl+A', selector: 'selectAll:' },
|
{
|
||||||
|
label: 'Select All',
|
||||||
|
accelerator: 'CmdOrCtrl+A',
|
||||||
|
selector: 'selectAll:'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: 'Quit',
|
label: 'Quit',
|
||||||
accelerator: 'CmdOrCtrl+Q',
|
accelerator: 'CmdOrCtrl+Q',
|
||||||
@@ -287,7 +308,8 @@ export function createMenu () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}]
|
}
|
||||||
|
]
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
menu = Menu.buildFromTemplate(template)
|
menu = Menu.buildFromTemplate(template)
|
||||||
Menu.setApplicationMenu(menu)
|
Menu.setApplicationMenu(menu)
|
||||||
|
|||||||
@@ -5,13 +5,14 @@ import {
|
|||||||
RENAME_WINDOW_URL,
|
RENAME_WINDOW_URL,
|
||||||
TOOLBOX_WINDOW_URL
|
TOOLBOX_WINDOW_URL
|
||||||
} from './constants'
|
} from './constants'
|
||||||
import { IWindowList } from '#/types/enum'
|
import { IStartupMode, IWindowList } from '#/types/enum'
|
||||||
import bus from '@core/bus'
|
import bus from '@core/bus'
|
||||||
import { CREATE_APP_MENU } from '@core/bus/constants'
|
import { CREATE_APP_MENU } from '@core/bus/constants'
|
||||||
import db from '~/main/apis/core/datastore'
|
import db from '~/main/apis/core/datastore'
|
||||||
import { TOGGLE_SHORTKEY_MODIFIED_MODE } from '#/events/constants'
|
import { TOGGLE_SHORTKEY_MODIFIED_MODE } from '#/events/constants'
|
||||||
import { app } from 'electron'
|
import { app } from 'electron'
|
||||||
import { T } from '~/main/i18n'
|
import { T } from '~/main/i18n'
|
||||||
|
import { isLinux } from '~/universal/utils/common'
|
||||||
// import { URLSearchParams } from 'url'
|
// import { URLSearchParams } from 'url'
|
||||||
|
|
||||||
const windowList = new Map<IWindowList, IWindowListItem>()
|
const windowList = new Map<IWindowList, IWindowListItem>()
|
||||||
@@ -25,6 +26,21 @@ const handleWindowParams = (windowURL: string) => {
|
|||||||
return windowURL
|
return windowURL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const isWindowShouldShowOnStartup = (currentWindow: IWindowList) => {
|
||||||
|
const startupMode = db.get('settings.startupMode') || (isLinux ? IStartupMode.SHOW_MINI_WINDOW : IStartupMode.HIDE)
|
||||||
|
switch (currentWindow) {
|
||||||
|
case IWindowList.MINI_WINDOW: {
|
||||||
|
return startupMode === IStartupMode.SHOW_MINI_WINDOW
|
||||||
|
}
|
||||||
|
case IWindowList.SETTING_WINDOW: {
|
||||||
|
return startupMode === IStartupMode.SHOW_MAIN_WINDOW
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
windowList.set(IWindowList.TRAY_WINDOW, {
|
windowList.set(IWindowList.TRAY_WINDOW, {
|
||||||
isValid: process.platform !== 'linux',
|
isValid: process.platform !== 'linux',
|
||||||
multiple: false,
|
multiple: false,
|
||||||
@@ -113,7 +129,7 @@ windowList.set(IWindowList.MINI_WINDOW, {
|
|||||||
const obj: IBrowserWindowOptions = {
|
const obj: IBrowserWindowOptions = {
|
||||||
height: 64,
|
height: 64,
|
||||||
width: 64,
|
width: 64,
|
||||||
show: process.platform === 'linux',
|
show: isLinux,
|
||||||
frame: false,
|
frame: false,
|
||||||
fullscreenable: false,
|
fullscreenable: false,
|
||||||
skipTaskbar: true,
|
skipTaskbar: true,
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ import {
|
|||||||
OPEN_WINDOW,
|
OPEN_WINDOW,
|
||||||
GET_LANGUAGE_LIST,
|
GET_LANGUAGE_LIST,
|
||||||
SET_CURRENT_LANGUAGE,
|
SET_CURRENT_LANGUAGE,
|
||||||
GET_CURRENT_LANGUAGE
|
GET_CURRENT_LANGUAGE,
|
||||||
|
GET_PICBED_CONFIG
|
||||||
} from '#/events/constants'
|
} from '#/events/constants'
|
||||||
|
|
||||||
import { GalleryDB } from 'apis/core/datastore'
|
import { GalleryDB } from 'apis/core/datastore'
|
||||||
@@ -223,14 +224,14 @@ const handleNPMError = (): IDispose => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const handleGetPicBedConfig = () => {
|
const handleGetPicBedConfig = () => {
|
||||||
ipcMain.on('getPicBedConfig', (event: IpcMainEvent, type: string) => {
|
ipcMain.on(GET_PICBED_CONFIG, (event: IpcMainEvent, type: string) => {
|
||||||
const name = picgo.helper.uploader.get(type)?.name || type
|
const name = picgo.helper.uploader.get(type)?.name || type
|
||||||
if (picgo.helper.uploader.get(type)?.config) {
|
if (picgo.helper.uploader.get(type)?.config) {
|
||||||
const _config = picgo.helper.uploader.get(type)!.config!(picgo)
|
const _config = picgo.helper.uploader.get(type)!.config!(picgo)
|
||||||
const config = handleConfigWithFunction(_config)
|
const config = handleConfigWithFunction(_config)
|
||||||
event.sender.send('getPicBedConfig', config, name)
|
event.sender.send(GET_PICBED_CONFIG, config, name)
|
||||||
} else {
|
} else {
|
||||||
event.sender.send('getPicBedConfig', [], name)
|
event.sender.send(GET_PICBED_CONFIG, [], name)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import fixPath from './fixPath'
|
|||||||
import { initI18n } from '~/main/utils/handleI18n'
|
import { initI18n } from '~/main/utils/handleI18n'
|
||||||
import { remoteNoticeHandler } from 'apis/app/remoteNotice'
|
import { remoteNoticeHandler } from 'apis/app/remoteNotice'
|
||||||
import { isMacOS } from '../utils/getMacOSVersion'
|
import { isMacOS } from '../utils/getMacOSVersion'
|
||||||
|
import { isWindowShouldShowOnStartup } from '../apis/app/window/windowList'
|
||||||
|
|
||||||
const isDevelopment = process.env.NODE_ENV !== 'production'
|
const isDevelopment = process.env.NODE_ENV !== 'production'
|
||||||
|
|
||||||
@@ -79,7 +80,7 @@ class LifeCycle {
|
|||||||
try {
|
try {
|
||||||
await installExtension(VUEJS_DEVTOOLS)
|
await installExtension(VUEJS_DEVTOOLS)
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
console.error('Vue Devtools failed to install:', e.toString())
|
console.error('Vue Devtools failed to install:', e?.toString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
windowManager.create(IWindowList.TRAY_WINDOW)
|
windowManager.create(IWindowList.TRAY_WINDOW)
|
||||||
@@ -87,6 +88,17 @@ class LifeCycle {
|
|||||||
settingWindow?.once('show', () => {
|
settingWindow?.once('show', () => {
|
||||||
remoteNoticeHandler.triggerHook(IRemoteNoticeTriggerHook.SETTING_WINDOW_OPEN)
|
remoteNoticeHandler.triggerHook(IRemoteNoticeTriggerHook.SETTING_WINDOW_OPEN)
|
||||||
})
|
})
|
||||||
|
if (isWindowShouldShowOnStartup(IWindowList.SETTING_WINDOW)) {
|
||||||
|
settingWindow?.show()
|
||||||
|
settingWindow?.focus()
|
||||||
|
}
|
||||||
|
if (!isMacOS) {
|
||||||
|
if (isWindowShouldShowOnStartup(IWindowList.MINI_WINDOW)) {
|
||||||
|
const miniWindow = windowManager.create(IWindowList.MINI_WINDOW)
|
||||||
|
miniWindow?.show()
|
||||||
|
miniWindow?.focus()
|
||||||
|
}
|
||||||
|
}
|
||||||
createTray()
|
createTray()
|
||||||
handleDockIcon()
|
handleDockIcon()
|
||||||
db.set('needReload', false)
|
db.set('needReload', false)
|
||||||
|
|||||||
@@ -16,6 +16,29 @@ function beforeOpen () {
|
|||||||
resolveClipboardImageGenerator()
|
resolveClipboardImageGenerator()
|
||||||
resolveOtherI18nFiles()
|
resolveOtherI18nFiles()
|
||||||
}
|
}
|
||||||
|
function copyFileOutsideOfElectronAsar (
|
||||||
|
sourceInAsarArchive: string,
|
||||||
|
destOutsideAsarArchive: string
|
||||||
|
) {
|
||||||
|
if (fs.existsSync(sourceInAsarArchive)) {
|
||||||
|
// file will be copied
|
||||||
|
if (fs.statSync(sourceInAsarArchive).isFile()) {
|
||||||
|
const file = destOutsideAsarArchive;
|
||||||
|
const dir = path.dirname(file)
|
||||||
|
if (!fs.existsSync(dir)) {
|
||||||
|
fs.mkdirSync(dir, { recursive: true })
|
||||||
|
}
|
||||||
|
fs.writeFileSync(file, fs.readFileSync(sourceInAsarArchive))
|
||||||
|
} else if (fs.statSync(sourceInAsarArchive).isDirectory()) {
|
||||||
|
fs.readdirSync(sourceInAsarArchive).forEach(function (fileOrFolderName) {
|
||||||
|
copyFileOutsideOfElectronAsar(
|
||||||
|
`${sourceInAsarArchive}/${fileOrFolderName}`,
|
||||||
|
`${destOutsideAsarArchive}/${fileOrFolderName}`
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* macOS 右键菜单
|
* macOS 右键菜单
|
||||||
@@ -26,7 +49,7 @@ function resolveMacWorkFlow () {
|
|||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
fs.copySync(path.join(__static, 'Upload pictures with PicGo.workflow'), dest)
|
copyFileOutsideOfElectronAsar(path.join(__static, 'Upload pictures with PicGo.workflow'), dest)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,13 +45,7 @@ const $route = useRoute()
|
|||||||
const $form = ref<IFormInstance>()
|
const $form = ref<IFormInstance>()
|
||||||
const configList = ref<IPicGoPluginConfig[]>([])
|
const configList = ref<IPicGoPluginConfig[]>([])
|
||||||
const formModel = reactive<IStringKeyMap>({})
|
const formModel = reactive<IStringKeyMap>({})
|
||||||
|
const isUploader = props.type === 'uploader'
|
||||||
watch(toRefs(props.config), (val: IPicGoPluginConfig[]) => {
|
|
||||||
handleConfig(val)
|
|
||||||
}, {
|
|
||||||
deep: true,
|
|
||||||
immediate: true
|
|
||||||
})
|
|
||||||
|
|
||||||
async function validate (): Promise<IStringKeyMap | false> {
|
async function validate (): Promise<IStringKeyMap | false> {
|
||||||
const res = await $form.value?.validate() || false
|
const res = await $form.value?.validate() || false
|
||||||
@@ -74,14 +68,13 @@ function getConfigType () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const isUploader = props.type === 'uploader'
|
|
||||||
|
|
||||||
const handleConfigForm = useConfigForm()
|
const handleConfigForm = useConfigForm()
|
||||||
|
|
||||||
async function handleConfig (inputConfig: IPicGoPluginConfig[]) {
|
async function handleConfig (inputConfig: IPicGoPluginConfig[]) {
|
||||||
const currentConfig = await getCurConfigFormData()
|
const currentConfig = await getCurConfigFormData()
|
||||||
|
const resetConfig = isUploader && !$route.params.configId
|
||||||
Object.assign(formModel, currentConfig)
|
Object.assign(formModel, currentConfig)
|
||||||
configList.value = handleConfigForm(inputConfig, formModel, currentConfig)
|
configList.value = handleConfigForm(inputConfig, formModel, currentConfig, resetConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getCurConfigFormData () {
|
async function getCurConfigFormData () {
|
||||||
@@ -101,6 +94,13 @@ async function resetConfig () {
|
|||||||
Object.assign(formModel, config)
|
Object.assign(formModel, config)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
watch(toRefs(props.config), (val: IPicGoPluginConfig[]) => {
|
||||||
|
handleConfig(val)
|
||||||
|
}, {
|
||||||
|
deep: true,
|
||||||
|
immediate: true
|
||||||
|
})
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
validate,
|
validate,
|
||||||
getConfigType,
|
getConfigType,
|
||||||
|
|||||||
@@ -4,13 +4,15 @@ import { cloneDeep, union } from 'lodash'
|
|||||||
* @param configList origin config list
|
* @param configList origin config list
|
||||||
* @param formModel el-form form model for default value
|
* @param formModel el-form form model for default value
|
||||||
* @param currentConfig current config
|
* @param currentConfig current config
|
||||||
|
* @param resetConfigForm reset form model -> clear default value
|
||||||
* @returns transformed config list
|
* @returns transformed config list
|
||||||
*/
|
*/
|
||||||
export const useConfigForm = () => {
|
export const useConfigForm = () => {
|
||||||
return (configList: IPicGoPluginConfig[], formModel: IStringKeyMap, currentConfig?: IStringKeyMap) => {
|
return (configList: IPicGoPluginConfig[], formModel: IStringKeyMap, currentConfig?: IStringKeyMap, resetConfigForm?: boolean) => {
|
||||||
if (configList.length > 0) {
|
if (configList.length > 0) {
|
||||||
return cloneDeep(configList).map((item) => {
|
return cloneDeep(configList).map((item) => {
|
||||||
// if (!configId) return item
|
// if (!configId) return item
|
||||||
|
if (resetConfigForm) return item
|
||||||
let defaultValue = item.default !== undefined
|
let defaultValue = item.default !== undefined
|
||||||
? item.default
|
? item.default
|
||||||
: item.type === 'checkbox'
|
: item.type === 'checkbox'
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ import { ElForm } from 'element-plus'
|
|||||||
import { Reading } from '@element-plus/icons-vue'
|
import { Reading } from '@element-plus/icons-vue'
|
||||||
import { IConfig } from 'picgo'
|
import { IConfig } from 'picgo'
|
||||||
import { T as $T } from '@/i18n/index'
|
import { T as $T } from '@/i18n/index'
|
||||||
import { enforceNumber } from '~/universal/utils/common'
|
import { enforceNumber, isLinux } from '~/universal/utils/common'
|
||||||
import { onBeforeMount, reactive, ref } from 'vue'
|
import { onBeforeMount, reactive, ref } from 'vue'
|
||||||
import { getConfig } from '@/utils/dataSender'
|
import { getConfig } from '@/utils/dataSender'
|
||||||
import ButtonAreaSettings from './components/settings/buttonArea/ButtonAreaSettings.vue'
|
import ButtonAreaSettings from './components/settings/buttonArea/ButtonAreaSettings.vue'
|
||||||
@@ -56,6 +56,7 @@ import SwitchAreaSettings from './components/settings/switchArea/SwitchAreaSetti
|
|||||||
import CustomAreaSettings from './components/settings/customArea/CustomAreaSettings.vue'
|
import CustomAreaSettings from './components/settings/customArea/CustomAreaSettings.vue'
|
||||||
import SelectAreaSettings from './components/settings/selectArea/SelectAreaSettings.vue'
|
import SelectAreaSettings from './components/settings/selectArea/SelectAreaSettings.vue'
|
||||||
import { openURL } from '@/utils/common'
|
import { openURL } from '@/utils/common'
|
||||||
|
import { IStartupMode } from '#/types/enum'
|
||||||
|
|
||||||
const form = reactive<ISettingForm>({
|
const form = reactive<ISettingForm>({
|
||||||
showUpdateTip: false,
|
showUpdateTip: false,
|
||||||
@@ -80,7 +81,8 @@ const form = reactive<ISettingForm>({
|
|||||||
port: 36677,
|
port: 36677,
|
||||||
host: '127.0.0.1',
|
host: '127.0.0.1',
|
||||||
enable: true
|
enable: true
|
||||||
}
|
},
|
||||||
|
startupMode: IStartupMode.HIDE
|
||||||
})
|
})
|
||||||
|
|
||||||
const proxy = ref('')
|
const proxy = ref('')
|
||||||
@@ -113,6 +115,7 @@ async function initData () {
|
|||||||
form.server = settings.server
|
form.server = settings.server
|
||||||
form.logFileSizeLimit = enforceNumber(settings.logFileSizeLimit) || 10
|
form.logFileSizeLimit = enforceNumber(settings.logFileSizeLimit) || 10
|
||||||
form.showDockIcon = settings.showDockIcon === undefined ? true : settings.showDockIcon
|
form.showDockIcon = settings.showDockIcon === undefined ? true : settings.showDockIcon
|
||||||
|
form.startupMode = settings.startupMode || (isLinux ? IStartupMode.SHOW_MINI_WINDOW : IStartupMode.HIDE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="config-list-view">
|
<div
|
||||||
|
id="config-list-view"
|
||||||
|
class="h-[425px]"
|
||||||
|
>
|
||||||
<div class="view-title">
|
<div class="view-title">
|
||||||
{{ $T('SETTINGS') }}
|
{{ $T('SETTINGS') }}
|
||||||
</div>
|
</div>
|
||||||
@@ -239,9 +242,10 @@ export default {
|
|||||||
.selected
|
.selected
|
||||||
border 1px solid #409EFF
|
border 1px solid #409EFF
|
||||||
.set-default-container
|
.set-default-container
|
||||||
position absolute
|
position fixed
|
||||||
bottom 20px
|
bottom 20px
|
||||||
width 100%
|
width 100%
|
||||||
.set-default-btn
|
.set-default-btn
|
||||||
width 250px
|
width 250px
|
||||||
|
transform translateX(-50%)
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -6,6 +6,12 @@
|
|||||||
:placeholder="$T('SETTINGS_CHOOSE_LANGUAGE')"
|
:placeholder="$T('SETTINGS_CHOOSE_LANGUAGE')"
|
||||||
@change="handleLanguageChange"
|
@change="handleLanguageChange"
|
||||||
/>
|
/>
|
||||||
|
<SelectFormItem
|
||||||
|
v-model="form.startupMode"
|
||||||
|
:list="startupModeList"
|
||||||
|
:label="$T('SETTINGS_STARTUP_MODE')"
|
||||||
|
@change="handleChangeStartupMode"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { reactive } from 'vue'
|
import { reactive } from 'vue'
|
||||||
@@ -13,6 +19,8 @@ import { T as $T, i18nManager } from '@/i18n'
|
|||||||
import { saveConfig, sendToMain } from '@/utils/dataSender'
|
import { saveConfig, sendToMain } from '@/utils/dataSender'
|
||||||
import { GET_PICBEDS } from '~/universal/events/constants'
|
import { GET_PICBEDS } from '~/universal/events/constants'
|
||||||
import SelectFormItem from '@/components/settings/SelectFormItem.vue'
|
import SelectFormItem from '@/components/settings/SelectFormItem.vue'
|
||||||
|
import { IStartupMode } from '~/universal/types/enum'
|
||||||
|
import { isMacOS } from '~/universal/utils/common'
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
settings: ISettingForm
|
settings: ISettingForm
|
||||||
@@ -26,6 +34,22 @@ const languageList = i18nManager.languageList.map(item => ({
|
|||||||
value: item.value
|
value: item.value
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
const startupModeList = [
|
||||||
|
{
|
||||||
|
label: $T('SETTINGS_STARTUP_MODE_MAIN_WINDOW'),
|
||||||
|
value: IStartupMode.SHOW_MAIN_WINDOW
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: $T('SETTINGS_STARTUP_MODE_MINI_WINDOW'),
|
||||||
|
value: IStartupMode.SHOW_MINI_WINDOW,
|
||||||
|
hide: isMacOS
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: $T('SETTINGS_STARTUP_MODE_HIDE'),
|
||||||
|
value: IStartupMode.HIDE
|
||||||
|
}
|
||||||
|
].filter(item => !item.hide)
|
||||||
|
|
||||||
function handleLanguageChange (val: string) {
|
function handleLanguageChange (val: string) {
|
||||||
i18nManager.setCurrentLanguage(val)
|
i18nManager.setCurrentLanguage(val)
|
||||||
saveConfig({
|
saveConfig({
|
||||||
@@ -34,6 +58,12 @@ function handleLanguageChange (val: string) {
|
|||||||
sendToMain(GET_PICBEDS)
|
sendToMain(GET_PICBEDS)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleChangeStartupMode (val: IStartupMode) {
|
||||||
|
saveConfig({
|
||||||
|
'settings.startupMode': val
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@@ -43,16 +43,17 @@
|
|||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { IRPCActionType } from '~/universal/types/enum'
|
import { IRPCActionType } from '~/universal/types/enum'
|
||||||
import { ref, onBeforeUnmount, onBeforeMount } from 'vue'
|
import { ref, onBeforeMount } from 'vue'
|
||||||
import { T as $T } from '@/i18n/index'
|
import { T as $T } from '@/i18n/index'
|
||||||
import { sendToMain, triggerRPC } from '@/utils/dataSender'
|
import { sendToMain, triggerRPC } from '@/utils/dataSender'
|
||||||
import { useRoute, useRouter } from 'vue-router'
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
import ConfigForm from '@/components/ConfigForm.vue'
|
import ConfigForm from '@/components/ConfigForm.vue'
|
||||||
// import mixin from '@/utils/ConfirmButtonMixin'
|
// import mixin from '@/utils/ConfirmButtonMixin'
|
||||||
import {
|
import {
|
||||||
ipcRenderer,
|
|
||||||
IpcRendererEvent
|
IpcRendererEvent
|
||||||
} from 'electron'
|
} from 'electron'
|
||||||
|
import { GET_PICBED_CONFIG } from '~/universal/events/constants'
|
||||||
|
import { useIPCOn } from '@/hooks/useIPC'
|
||||||
const type = ref('')
|
const type = ref('')
|
||||||
const config = ref<IPicGoPluginConfig[]>([])
|
const config = ref<IPicGoPluginConfig[]>([])
|
||||||
const picBedName = ref('')
|
const picBedName = ref('')
|
||||||
@@ -61,9 +62,10 @@ const $router = useRouter()
|
|||||||
const $configForm = ref<InstanceType<typeof ConfigForm> | null>(null)
|
const $configForm = ref<InstanceType<typeof ConfigForm> | null>(null)
|
||||||
type.value = $route.params.type as string
|
type.value = $route.params.type as string
|
||||||
|
|
||||||
|
useIPCOn(GET_PICBED_CONFIG, getPicBeds)
|
||||||
|
|
||||||
onBeforeMount(() => {
|
onBeforeMount(() => {
|
||||||
sendToMain('getPicBedConfig', $route.params.type)
|
sendToMain(GET_PICBED_CONFIG, $route.params.type)
|
||||||
ipcRenderer.on('getPicBedConfig', getPicBeds)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const handleConfirm = async () => {
|
const handleConfirm = async () => {
|
||||||
@@ -85,10 +87,6 @@ function getPicBeds (event: IpcRendererEvent, _config: IPicGoPluginConfig[], nam
|
|||||||
picBedName.value = name
|
picBedName.value = name
|
||||||
}
|
}
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
|
||||||
ipcRenderer.removeListener('getPicBedConfig', getPicBeds)
|
|
||||||
})
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ export const FORCE_UPDATE = 'FORCE_UPDATE'
|
|||||||
export const OPEN_WINDOW = 'OPEN_WINDOW'
|
export const OPEN_WINDOW = 'OPEN_WINDOW'
|
||||||
export const GET_PICBEDS = 'GET_PICBEDS'
|
export const GET_PICBEDS = 'GET_PICBEDS'
|
||||||
export const RPC_ACTIONS = 'RPC_ACTIONS'
|
export const RPC_ACTIONS = 'RPC_ACTIONS'
|
||||||
|
export const GET_PICBED_CONFIG = 'GET_PICBED_CONFIG'
|
||||||
// i18n
|
// i18n
|
||||||
export const GET_CURRENT_LANGUAGE = 'GET_CURRENT_LANGUAGE'
|
export const GET_CURRENT_LANGUAGE = 'GET_CURRENT_LANGUAGE'
|
||||||
export const GET_LANGUAGE_LIST = 'GET_LANGUAGE_LIST'
|
export const GET_LANGUAGE_LIST = 'GET_LANGUAGE_LIST'
|
||||||
|
|||||||
@@ -92,3 +92,9 @@ export enum IToolboxItemCheckStatus {
|
|||||||
SUCCESS = 'success',
|
SUCCESS = 'success',
|
||||||
ERROR = 'error',
|
ERROR = 'error',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export enum IStartupMode {
|
||||||
|
SHOW_MAIN_WINDOW = 'SHOW_SETTING_WINDOW',
|
||||||
|
SHOW_MINI_WINDOW = 'SHOW_MINI_WINDOW',
|
||||||
|
HIDE = 'HIDE'
|
||||||
|
}
|
||||||
|
|||||||
Vendored
+4
@@ -116,6 +116,10 @@ interface ILocales {
|
|||||||
SELECTED_SETTING_HINT: string
|
SELECTED_SETTING_HINT: string
|
||||||
SETTINGS_ENCODE_OUTPUT_URL: string
|
SETTINGS_ENCODE_OUTPUT_URL: string
|
||||||
SETTINGS_SHOW_DOCK_ICON: string
|
SETTINGS_SHOW_DOCK_ICON: string
|
||||||
|
SETTINGS_STARTUP_MODE: string
|
||||||
|
SETTINGS_STARTUP_MODE_MAIN_WINDOW: string
|
||||||
|
SETTINGS_STARTUP_MODE_MINI_WINDOW: string
|
||||||
|
SETTINGS_STARTUP_MODE_HIDE: string
|
||||||
SHORTCUT_NAME: string
|
SHORTCUT_NAME: string
|
||||||
SHORTCUT_BIND: string
|
SHORTCUT_BIND: string
|
||||||
SHORTCUT_STATUS: string
|
SHORTCUT_STATUS: string
|
||||||
|
|||||||
Vendored
+1
@@ -22,6 +22,7 @@ interface ISettingForm {
|
|||||||
host: string
|
host: string
|
||||||
enable: boolean
|
enable: boolean
|
||||||
}
|
}
|
||||||
|
startupMode: import('#/types/enum').IStartupMode
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IShortKeyMap {
|
interface IShortKeyMap {
|
||||||
|
|||||||
@@ -51,3 +51,7 @@ export const trimValues = (obj: IStringKeyMap) => {
|
|||||||
})
|
})
|
||||||
return newObj
|
return newObj
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const isMacOS = process.platform === 'darwin'
|
||||||
|
export const isWindows = process.platform === 'win32'
|
||||||
|
export const isLinux = process.platform === 'linux'
|
||||||
|
|||||||
Reference in New Issue
Block a user