增加设置项“关闭时最小化到系统托盘”

This commit is contained in:
Lasy 2020-04-01 17:22:04 +08:00
parent 81db068971
commit 4d7fbcc6cf
7 changed files with 24 additions and 11 deletions

View File

@ -1,7 +1,6 @@
// const { app } = require('electron') // const { app } = require('electron')
const { mainOn } = require('../../common/ipc') const { mainOn } = require('../../common/ipc')
mainOn('min', event => { mainOn('min', event => {
if (global.mainWindow) { if (global.mainWindow) {
global.mainWindow.minimize() global.mainWindow.minimize()
@ -12,10 +11,15 @@ mainOn('max', event => {
global.mainWindow.maximize() global.mainWindow.maximize()
} }
}) })
mainOn('close', event => { mainOn('close', (event, arg) => {
if (global.mainWindow) { if (global.mainWindow) {
console.log('close', arg)
if (arg && arg.min) {
global.mainWindow.hide()
global.mainWindow.setSkipTaskbar(true)
return
}
// global.mainWindowdow.destroy() // global.mainWindowdow.destroy()
// console.log('close')
// app.quit() // app.quit()
global.mainWindow.close() global.mainWindow.close()
} }

View File

@ -85,13 +85,6 @@ function createWindow() {
: mainWindow.setSkipTaskbar(true) : mainWindow.setSkipTaskbar(true)
}) })
// 关闭事件处理
mainWindow.on('close', e => {
e.preventDefault()
mainWindow.hide()
mainWindow.setSkipTaskbar(true)
})
mainWindow.loadURL(winURL) mainWindow.loadURL(winURL)
winEvent(mainWindow) winEvent(mainWindow)

View File

@ -119,7 +119,9 @@ export default {
rendererSend('max') rendererSend('max')
}, },
close() { close() {
rendererSend('close') rendererSend('close', {
min: this.setting.minClose,
})
}, },
}, },
} }

View File

@ -18,6 +18,8 @@
"basic_window_size_medium": "中", "basic_window_size_medium": "中",
"basic_window_size_big": "大", "basic_window_size_big": "大",
"basic_window_size_larger": "较大", "basic_window_size_larger": "较大",
"basic_min_title": "关闭时最小化到系统托盘",
"basic_min": "关闭时最小化到系统托盘",
"basic_lang_title": "软件显示的语言", "basic_lang_title": "软件显示的语言",
"basic_lang": "语言", "basic_lang": "语言",

View File

@ -20,6 +20,7 @@ sync(store, router)
// } // }
Vue.config.devTools = process.env.NODE_ENV !== 'production'
Vue.config.productionTip = false Vue.config.productionTip = false
new Vue({ new Vue({

View File

@ -240,6 +240,7 @@ export const updateSetting = (setting, version) => {
}, },
windowSizeId: 2, windowSizeId: 2,
themeId: 0, themeId: 0,
minClose: false,
langId: 'cns', langId: 'cns',
sourceId: 'kw', sourceId: 'kw',
apiSource: 'temp', apiSource: 'temp',
@ -264,6 +265,10 @@ export const updateSetting = (setting, version) => {
setting = defaultSetting setting = defaultSetting
} }
if (setting.apiSource != 'temp') setting.apiSource = 'test' // 强制设置回 test 接口源 if (setting.apiSource != 'temp') setting.apiSource = 'test' // 强制设置回 test 接口源
// 存储中没有这个设置项时,设置为 false
if (typeof setting.minClose === 'undefined') {
setting.minClose = false
}
return { setting, version: defaultVersion } return { setting, version: defaultVersion }
} }

View File

@ -28,6 +28,11 @@ div.scroll(:class="$style.setting")
material-checkbox(v-for="(item, index) in windowSizeList" :id="`setting_window_size_${item.id}`" name="setting_window_size" @change="handleWindowSizeChange" :class="$style.gapLeft" material-checkbox(v-for="(item, index) in windowSizeList" :id="`setting_window_size_${item.id}`" name="setting_window_size" @change="handleWindowSizeChange" :class="$style.gapLeft"
need v-model="current_setting.windowSizeId" :value="item.id" :label="$t('view.setting.basic_window_size_' + item.name)" :key="item.id") need v-model="current_setting.windowSizeId" :value="item.id" :label="$t('view.setting.basic_window_size_' + item.name)" :key="item.id")
dd(:title="$t('view.setting.basic_min_title')")
h3 {{$t('view.setting.basic_min')}}
div
material-checkbox(id="setting_min" v-model="current_setting.minClose" :label="$t('view.setting.is_enable')")
dd(:title="$t('view.setting.basic_lang_title')") dd(:title="$t('view.setting.basic_lang_title')")
h3 {{$t('view.setting.basic_lang')}} h3 {{$t('view.setting.basic_lang')}}
div div
@ -361,6 +366,7 @@ export default {
themeId: 0, themeId: 0,
sourceId: 0, sourceId: 0,
randomAnimate: true, randomAnimate: true,
minClose: true,
apiSource: 'messoer', apiSource: 'messoer',
}, },
languageList, languageList,