Feature: add two new config items to control mini window and main window

This commit is contained in:
萌萌哒赫萝 2023-07-19 22:57:07 -07:00
parent 1e0bb25d73
commit 2eff77221e
9 changed files with 84 additions and 0 deletions

View File

@ -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

View File

@ -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: 上传前重命名

View File

@ -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: 上傳前重新命名

View File

@ -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()
}
}
})

View File

@ -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', () => {

View File

@ -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()
}
}
}
},
{

View File

@ -110,6 +110,28 @@
{{ $T('SETTINGS_CLICK_TO_SET') }}
</el-button>
</el-form-item>
<el-form-item
v-if="os !== 'darwin'"
:label="$T('SETTINGS_CLOSE_MINI_WINDOW_SYNC')"
>
<el-switch
v-model="form.autoCloseMiniWindow"
:active-text="$T('SETTINGS_OPEN')"
:inactive-text="$T('SETTINGS_CLOSE')"
@change="handleAutoCloseMiniWindowChange"
/>
</el-form-item>
<el-form-item
v-if="os !== 'darwin'"
:label="$T('SETTINGS_CLOSE_MAIN_WINDOW_SYNC')"
>
<el-switch
v-model="form.autoCloseMainWindow"
:active-text="$T('SETTINGS_OPEN')"
:inactive-text="$T('SETTINGS_CLOSE')"
@change="handleAutoCloseMainWindowChange"
/>
</el-form-item>
<el-form-item
v-if="os !== 'darwin'"
:label="$T('SETTINGS_MINI_WINDOW_ON_TOP')"
@ -1539,6 +1561,8 @@ const form = reactive<ISettingForm>({
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'))

View File

@ -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

View File

@ -7,6 +7,8 @@ interface ISettingForm {
uploadNotification: boolean
uploadResultNotification: boolean
miniWindowOntop: boolean
autoCloseMiniWindow: boolean
autoCloseMainWindow: boolean
logLevel: string[]
autoCopyUrl: boolean
checkBetaUpdate: boolean