diff --git a/public/i18n/en.yml b/public/i18n/en.yml
index 2d50bf9..5d47401 100644
--- a/public/i18n/en.yml
+++ b/public/i18n/en.yml
@@ -164,6 +164,8 @@ SETTINGS_CHECK_UPDATE: Check Update
SETTINGS_OPEN_UPDATE_HELPER: Open Update Helper
SETTINGS_OPEN: Open
SETTINGS_CLOSE: Close
+SETTINGS_CLOSE_MINI_WINDOW_SYNC: Close Mini Window When open Main Window
+SETTINGS_CLOSE_MAIN_WINDOW_SYNC: Close Main Window When open Mini Window
SETTINGS_ACCEPT_BETA_UPDATE: Accept Beta Update
SETTINGS_LAUNCH_ON_BOOT: Launch On Boot
SETTINGS_RENAME_BEFORE_UPLOAD: Rename Before Upload
diff --git a/public/i18n/zh-CN.yml b/public/i18n/zh-CN.yml
index 535255e..995b71e 100644
--- a/public/i18n/zh-CN.yml
+++ b/public/i18n/zh-CN.yml
@@ -166,6 +166,8 @@ SETTINGS_CHECK_UPDATE: 检查更新
SETTINGS_OPEN_UPDATE_HELPER: 打开更新助手
SETTINGS_OPEN: 开
SETTINGS_CLOSE: 关
+SETTINGS_CLOSE_MINI_WINDOW_SYNC: 打开主窗口时关闭mini窗口
+SETTINGS_CLOSE_MAIN_WINDOW_SYNC: 打开mini窗口时关闭主窗口
SETTINGS_ACCEPT_BETA_UPDATE: 接受Beta版本更新
SETTINGS_LAUNCH_ON_BOOT: 开机自启
SETTINGS_RENAME_BEFORE_UPLOAD: 上传前重命名
diff --git a/public/i18n/zh-TW.yml b/public/i18n/zh-TW.yml
index b259bab..d2bc904 100644
--- a/public/i18n/zh-TW.yml
+++ b/public/i18n/zh-TW.yml
@@ -164,6 +164,8 @@ SETTINGS_CHECK_UPDATE: 檢查更新
SETTINGS_OPEN_UPDATE_HELPER: 打開更新助手
SETTINGS_OPEN: 開
SETTINGS_CLOSE: 關
+SETTINGS_CLOSE_MINI_WINDOW_SYNC: 開主窗口同步關閉mini窗口
+SETTINGS_CLOSE_MAIN_WINDOW_SYNC: 關mini窗口同步關閉主窗口
SETTINGS_ACCEPT_BETA_UPDATE: 接受Beta版本更新
SETTINGS_LAUNCH_ON_BOOT: 開機時啟動
SETTINGS_RENAME_BEFORE_UPLOAD: 上傳前重新命名
diff --git a/src/main/apis/app/system/index.ts b/src/main/apis/app/system/index.ts
index a44e38c..65d1156 100644
--- a/src/main/apis/app/system/index.ts
+++ b/src/main/apis/app/system/index.ts
@@ -28,6 +28,7 @@ let tray: Tray | null
export function setDockMenu () {
const isListeningClipboard = db.get('settings.isListeningClipboard') || false
+ const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
const dockMenu = Menu.buildFromTemplate([
{
label: T('OPEN_MAIN_WINDOW'),
@@ -35,6 +36,9 @@ export function setDockMenu () {
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
settingWindow!.show()
settingWindow!.focus()
+ if (windowManager.has(IWindowList.MINI_WINDOW) && autoCloseMiniWindow) {
+ windowManager.get(IWindowList.MINI_WINDOW)!.hide()
+ }
}
},
{
@@ -74,8 +78,12 @@ export function createMenu () {
label: T('OPEN_MAIN_WINDOW'),
click () {
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
+ const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
settingWindow!.show()
settingWindow!.focus()
+ if (windowManager.has(IWindowList.MINI_WINDOW) && autoCloseMiniWindow) {
+ windowManager.get(IWindowList.MINI_WINDOW)!.hide()
+ }
}
},
{
@@ -135,8 +143,12 @@ export function createContextMenu () {
label: T('OPEN_MAIN_WINDOW'),
click () {
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
+ const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
settingWindow!.show()
settingWindow!.focus()
+ if (windowManager.has(IWindowList.MINI_WINDOW) && autoCloseMiniWindow) {
+ windowManager.get(IWindowList.MINI_WINDOW)!.hide()
+ }
}
},
{
@@ -206,6 +218,10 @@ export function createContextMenu () {
miniWindow.on('move', setPositionFunc)
miniWindow.show()
miniWindow.focus()
+ const autoCloseMainWindow = db.get('settings.autoCloseMainWindow') || false
+ if (windowManager.has(IWindowList.SETTING_WINDOW) && autoCloseMainWindow) {
+ windowManager.get(IWindowList.SETTING_WINDOW)!.hide()
+ }
}
}
)
@@ -224,8 +240,12 @@ export function createContextMenu () {
label: T('OPEN_MAIN_WINDOW'),
click () {
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
+ const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
settingWindow!.show()
settingWindow!.focus()
+ if (windowManager.has(IWindowList.MINI_WINDOW) && autoCloseMiniWindow) {
+ windowManager.get(IWindowList.MINI_WINDOW)!.hide()
+ }
}
},
{
@@ -251,6 +271,10 @@ export function createContextMenu () {
miniWindow.on('move', setPositionFunc)
miniWindow.show()
miniWindow.focus()
+ const autoCloseMainWindow = db.get('settings.autoCloseMainWindow') || false
+ if (windowManager.has(IWindowList.SETTING_WINDOW) && autoCloseMainWindow) {
+ windowManager.get(IWindowList.SETTING_WINDOW)!.hide()
+ }
}
},
{
@@ -358,8 +382,12 @@ export function createTray () {
windowManager.get(IWindowList.TRAY_WINDOW)!.hide()
}
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
+ const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
settingWindow!.show()
settingWindow!.focus()
+ if (windowManager.has(IWindowList.MINI_WINDOW) && autoCloseMiniWindow) {
+ windowManager.get(IWindowList.MINI_WINDOW)!.hide()
+ }
}
})
diff --git a/src/main/events/ipcList.ts b/src/main/events/ipcList.ts
index 590b790..32000f7 100644
--- a/src/main/events/ipcList.ts
+++ b/src/main/events/ipcList.ts
@@ -214,6 +214,12 @@ export default {
ipcMain.on('openSettingWindow', () => {
windowManager.get(IWindowList.SETTING_WINDOW)!.show()
+ const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
+ if (autoCloseMiniWindow) {
+ if (windowManager.has(IWindowList.MINI_WINDOW)) {
+ windowManager.get(IWindowList.MINI_WINDOW)!.hide()
+ }
+ }
})
ipcMain.on('openMiniWindow', () => {
diff --git a/src/main/events/remotes/menu.ts b/src/main/events/remotes/menu.ts
index 93fb16e..52da2b4 100644
--- a/src/main/events/remotes/menu.ts
+++ b/src/main/events/remotes/menu.ts
@@ -30,6 +30,12 @@ const buildMiniPageMenu = () => {
label: T('OPEN_MAIN_WINDOW'),
click () {
windowManager.get(IWindowList.SETTING_WINDOW)!.show()
+ const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
+ if (autoCloseMiniWindow) {
+ if (windowManager.has(IWindowList.MINI_WINDOW)) {
+ windowManager.get(IWindowList.MINI_WINDOW)!.hide()
+ }
+ }
}
},
{
diff --git a/src/renderer/pages/PicGoSetting.vue b/src/renderer/pages/PicGoSetting.vue
index b4a0079..30ed00f 100644
--- a/src/renderer/pages/PicGoSetting.vue
+++ b/src/renderer/pages/PicGoSetting.vue
@@ -110,6 +110,28 @@
{{ $T('SETTINGS_CLICK_TO_SET') }}
+
+
+
+
+
+
({
uploadNotification: false,
uploadResultNotification: true,
miniWindowOntop: false,
+ autoCloseMiniWindow: false,
+ autoCloseMainWindow: false,
logLevel: ['all'],
autoCopyUrl: true,
checkBetaUpdate: true,
@@ -1693,6 +1717,8 @@ async function initData () {
form.uploadNotification = settings.uploadNotification || false
form.uploadResultNotification = settings.uploadResultNotification === undefined ? true : settings.uploadResultNotification
form.miniWindowOntop = settings.miniWindowOntop || false
+ form.autoCloseMiniWindow = settings.autoCloseMiniWindow || false
+ form.autoCloseMainWindow = settings.autoCloseMainWindow || false
form.logLevel = initLogLevel(settings.logLevel || [])
form.autoCopyUrl = settings.autoCopy === undefined ? true : settings.autoCopy
form.checkBetaUpdate = settings.checkBetaUpdate === undefined ? true : settings.checkBetaUpdate
@@ -1993,6 +2019,14 @@ async function confirmWindowSize () {
}
}
+function handleAutoCloseMainWindowChange (val: ICheckBoxValueType) {
+ saveConfig('settings.autoCloseMainWindow', val)
+}
+
+function handleAutoCloseMiniWindowChange (val: ICheckBoxValueType) {
+ saveConfig('settings.autoCloseMiniWindow', val)
+}
+
function handleMiniWindowOntop (val: ICheckBoxValueType) {
saveConfig('settings.miniWindowOntop', val)
$message.info($T('TIPS_NEED_RELOAD'))
diff --git a/src/universal/types/i18n.d.ts b/src/universal/types/i18n.d.ts
index 2ec48b9..a33d9a2 100644
--- a/src/universal/types/i18n.d.ts
+++ b/src/universal/types/i18n.d.ts
@@ -159,6 +159,8 @@ interface ILocales {
SETTINGS_OPEN_UPDATE_HELPER: string
SETTINGS_OPEN: string
SETTINGS_CLOSE: string
+ SETTINGS_CLOSE_MINI_WINDOW_SYNC: string
+ SETTINGS_CLOSE_MAIN_WINDOW_SYNC: string
SETTINGS_ACCEPT_BETA_UPDATE: string
SETTINGS_LAUNCH_ON_BOOT: string
SETTINGS_RENAME_BEFORE_UPLOAD: string
diff --git a/src/universal/types/view.d.ts b/src/universal/types/view.d.ts
index ffe2515..70c690b 100644
--- a/src/universal/types/view.d.ts
+++ b/src/universal/types/view.d.ts
@@ -7,6 +7,8 @@ interface ISettingForm {
uploadNotification: boolean
uploadResultNotification: boolean
miniWindowOntop: boolean
+ autoCloseMiniWindow: boolean
+ autoCloseMainWindow: boolean
logLevel: string[]
autoCopyUrl: boolean
checkBetaUpdate: boolean