From a2af321c5e8edff765d067e765e4c0f1c283cd7c Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sun, 3 Nov 2019 09:53:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E7=A6=BB=E4=B8=BB=E8=BF=9B=E7=A8=8B?= =?UTF-8?q?=E4=B8=8E=E6=B8=B2=E6=9F=93=E8=BF=9B=E7=A8=8B=E7=9A=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E7=A6=81=E7=94=A8remote=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/icp.js | 19 ----------- src/common/ipc.js | 32 +++++++++++++++++++ src/main/events/appName.js | 2 +- src/main/events/clearCache.js | 8 +++++ src/main/events/getCacheSize.js | 7 ++++ src/main/events/index.js | 5 +++ src/main/events/musicMeta.js | 2 +- src/main/events/progressBar.js | 2 +- src/main/events/request.js | 2 +- src/main/events/restartWindow.js | 2 +- src/main/events/selectDir.js | 8 +++++ src/main/events/selectPath.js | 11 ------- src/main/events/setWindowSize.js | 7 ++++ src/main/events/showSaveDialog.js | 8 +++++ src/main/events/trafficLight.js | 12 +++---- src/main/index.js | 1 + src/main/utils/autoUpdate.js | 16 ++++++---- src/renderer/App.vue | 19 +++++++---- src/renderer/components/core/Player.vue | 2 +- src/renderer/components/core/Toolbar.vue | 2 +- .../components/material/VersionModal.vue | 2 +- src/renderer/store/mutations.js | 7 ++-- src/renderer/store/state.js | 1 + src/renderer/utils/index.js | 16 ++++------ src/renderer/views/Setting.vue | 12 +++---- 25 files changed, 130 insertions(+), 75 deletions(-) delete mode 100644 src/common/icp.js create mode 100644 src/common/ipc.js create mode 100644 src/main/events/clearCache.js create mode 100644 src/main/events/getCacheSize.js create mode 100644 src/main/events/selectDir.js delete mode 100644 src/main/events/selectPath.js create mode 100644 src/main/events/setWindowSize.js create mode 100644 src/main/events/showSaveDialog.js diff --git a/src/common/icp.js b/src/common/icp.js deleted file mode 100644 index a5d18e2d..00000000 --- a/src/common/icp.js +++ /dev/null @@ -1,19 +0,0 @@ -const { ipcMain, ipcRenderer } = require('electron') - - -export const mainSend = (name, params) => { - ipcMain.send(name, params) -} - -export const mainOn = (name, callback) => { - ipcMain.on(name, callback) -} - - -export const rendererSend = (name, params) => { - ipcRenderer.send(name, params) -} - -export const rendererOn = (name, callback) => { - ipcRenderer.on(name, callback) -} diff --git a/src/common/ipc.js b/src/common/ipc.js new file mode 100644 index 00000000..fd7d8a40 --- /dev/null +++ b/src/common/ipc.js @@ -0,0 +1,32 @@ +const { ipcMain, ipcRenderer } = require('electron') + + +export const mainOn = (event, callback) => { + ipcMain.on(event, callback) +} +export const mainOnce = (event, callback) => { + ipcMain.once(event, callback) +} + +export const mainHandle = (name, callback) => { + console.log(name, callback) + ipcMain.handle(name, callback) +} +export const mainHandleOnce = (name, callback) => { + ipcMain.handleOnce(name, callback) +} + + +export const rendererSend = (name, params) => { + ipcRenderer.send(name, params) +} +export const rendererSendSync = (name, params) => ipcRenderer.sendSync(name, params) + +export const rendererInvoke = (name, params) => ipcRenderer.invoke(name, params) + +export const rendererOn = (name, callback) => { + ipcRenderer.on(name, callback) +} +export const rendererOnce = (name, callback) => { + ipcRenderer.once(name, callback) +} diff --git a/src/main/events/appName.js b/src/main/events/appName.js index 270b177b..470cb62c 100644 --- a/src/main/events/appName.js +++ b/src/main/events/appName.js @@ -1,4 +1,4 @@ -const { mainOn } = require('../../common/icp') +const { mainOn } = require('../../common/ipc') const { app } = require('electron') const { name: defaultName } = require('../../../package.json') diff --git a/src/main/events/clearCache.js b/src/main/events/clearCache.js new file mode 100644 index 00000000..e600b240 --- /dev/null +++ b/src/main/events/clearCache.js @@ -0,0 +1,8 @@ +const { mainHandle } = require('../../common/ipc') + +mainHandle('clearCache', async(event, options) => { + if (!global.mainWindow) throw new Error('mainwindow is undefined') + return global.mainWindow.webContents.session.clearCache() +}) + + diff --git a/src/main/events/getCacheSize.js b/src/main/events/getCacheSize.js new file mode 100644 index 00000000..ab0cafdb --- /dev/null +++ b/src/main/events/getCacheSize.js @@ -0,0 +1,7 @@ +const { mainHandle } = require('../../common/ipc') + +mainHandle('getCacheSize', async(event, options) => { + if (!global.mainWindow) throw new Error('mainwindow is undefined') + return global.mainWindow.webContents.session.getCacheSize() +}) + diff --git a/src/main/events/index.js b/src/main/events/index.js index 1cda1810..beda2f22 100644 --- a/src/main/events/index.js +++ b/src/main/events/index.js @@ -4,3 +4,8 @@ require('./request') require('./progressBar') require('./trafficLight') require('./musicMeta') +require('./selectDir') +require('./setWindowSize') +require('./showSaveDialog') +require('./clearCache') +require('./getCacheSize') diff --git a/src/main/events/musicMeta.js b/src/main/events/musicMeta.js index 795d06b9..016bf692 100644 --- a/src/main/events/musicMeta.js +++ b/src/main/events/musicMeta.js @@ -1,4 +1,4 @@ -const { mainOn } = require('../../common/icp') +const { mainOn } = require('../../common/ipc') const { setMeta } = require('../utils/musicMeta') mainOn('setMusicMeta', (event, { filePath, meta }) => { diff --git a/src/main/events/progressBar.js b/src/main/events/progressBar.js index ed3098c6..a44b6ffa 100644 --- a/src/main/events/progressBar.js +++ b/src/main/events/progressBar.js @@ -1,4 +1,4 @@ -const { mainOn } = require('../../common/icp') +const { mainOn } = require('../../common/ipc') mainOn('progress', (event, params) => { diff --git a/src/main/events/request.js b/src/main/events/request.js index 52f2a5ec..948e9ea3 100644 --- a/src/main/events/request.js +++ b/src/main/events/request.js @@ -1,6 +1,6 @@ const request = require('request') -const { mainOn } = require('../../common/icp') +const { mainOn } = require('../../common/ipc') const tasks = [] diff --git a/src/main/events/restartWindow.js b/src/main/events/restartWindow.js index 3d64be2d..0687454c 100644 --- a/src/main/events/restartWindow.js +++ b/src/main/events/restartWindow.js @@ -1,4 +1,4 @@ -const { mainOn } = require('../../common/icp') +const { mainOn } = require('../../common/ipc') mainOn('restartWindow', (event, name) => { diff --git a/src/main/events/selectDir.js b/src/main/events/selectDir.js new file mode 100644 index 00000000..4149405c --- /dev/null +++ b/src/main/events/selectDir.js @@ -0,0 +1,8 @@ +const { mainHandle } = require('../../common/ipc') +const { dialog } = require('electron') + +mainHandle('selectDir', async(event, options) => { + if (!global.mainWindow) throw new Error('mainwindow is undefined') + return dialog.showOpenDialog(global.mainWindow, options) +}) + diff --git a/src/main/events/selectPath.js b/src/main/events/selectPath.js deleted file mode 100644 index dcaec63d..00000000 --- a/src/main/events/selectPath.js +++ /dev/null @@ -1,11 +0,0 @@ -const { mainOn } = require('../../common/icp') -const { dialog } = require('electron') - -module.exports = win => { - mainOn('selectPath', (event, params) => { - let path = dialog.showOpenDialog(win, params.options) - if (path === undefined) return - event.sender.send(params.eventName, path) - }) -} - diff --git a/src/main/events/setWindowSize.js b/src/main/events/setWindowSize.js new file mode 100644 index 00000000..3a358353 --- /dev/null +++ b/src/main/events/setWindowSize.js @@ -0,0 +1,7 @@ +const { mainOn } = require('../../common/ipc') + +mainOn('setWindowSize', (event, options) => { + if (!global.mainWindow) return + global.mainWindow.setBounds(options) +}) + diff --git a/src/main/events/showSaveDialog.js b/src/main/events/showSaveDialog.js new file mode 100644 index 00000000..6a72d31d --- /dev/null +++ b/src/main/events/showSaveDialog.js @@ -0,0 +1,8 @@ +const { mainHandle } = require('../../common/ipc') +const { dialog } = require('electron') + +mainHandle('showSaveDialog', async(event, options) => { + if (!global.mainWindow) throw new Error('mainwindow is undefined') + return dialog.showSaveDialog(global.mainWindow, options) +}) + diff --git a/src/main/events/trafficLight.js b/src/main/events/trafficLight.js index 94b96919..2be309f5 100644 --- a/src/main/events/trafficLight.js +++ b/src/main/events/trafficLight.js @@ -1,5 +1,5 @@ // const { app } = require('electron') -const { mainOn } = require('../../common/icp') +const { mainOn } = require('../../common/ipc') mainOn('min', event => { @@ -7,11 +7,11 @@ mainOn('min', event => { global.mainWindow.minimize() } }) -// mainOn('max', event => { -// if (global.mainWindow) { -// global.mainWindow.maximize() -// } -// }) +mainOn('max', event => { + if (global.mainWindow) { + global.mainWindow.maximize() + } +}) mainOn('close', event => { if (global.mainWindow) { // global.mainWindowdow.destroy() diff --git a/src/main/index.js b/src/main/index.js index 7e33b713..c6320a2d 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -50,6 +50,7 @@ function createWindow() { width: windowSizeInfo.width, frame: false, transparent: !isLinux, + enableRemoteModule: false, // icon: path.join(global.__static, isWin ? 'icons/256x256.ico' : 'icons/512x512.png'), resizable: false, maximizable: false, diff --git a/src/main/utils/autoUpdate.js b/src/main/utils/autoUpdate.js index f0a3dd65..4aa145a9 100644 --- a/src/main/utils/autoUpdate.js +++ b/src/main/utils/autoUpdate.js @@ -1,6 +1,6 @@ const { log } = require('../../common/utils') const { autoUpdater } = require('electron-updater') -const { mainOn } = require('../../common/icp') +const { mainOn } = require('../../common/ipc') autoUpdater.logger = log // autoUpdater.autoDownload = false @@ -21,7 +21,7 @@ log.info('App starting...') function sendStatusToWindow(text) { log.info(text) - // global.mainWindow.webContents.send('message', text) + // ipcMain.send('message', text) } @@ -90,16 +90,20 @@ module.exports = isFirstCheckedUpdate => { sendStatusToWindow('Update not available.') handleSendEvent({ type: 'update-not-available' }) }) - autoUpdater.on('error', () => { + autoUpdater.on('error', err => { sendStatusToWindow('Error in auto-updater.') - handleSendEvent({ type: 'update-error' }) + handleSendEvent({ type: 'update-error', info: err }) }) autoUpdater.on('download-progress', progressObj => { - sendStatusToWindow('Download progress...') + let log_message = 'Download speed: ' + progressObj.bytesPerSecond + log_message = log_message + ' - Downloaded ' + progressObj.percent + '%' + log_message = log_message + ' (' + progressObj.transferred + '/' + progressObj.total + ')' + sendStatusToWindow(log_message) + handleSendEvent({ type: 'download-progress', info: progressObj }) }) autoUpdater.on('update-downloaded', info => { sendStatusToWindow('Update downloaded.') - handleSendEvent({ type: 'update-downloaded' }) + handleSendEvent({ type: 'update-downloaded', info }) }) mainOn('quit-update', () => { setTimeout(() => { diff --git a/src/renderer/App.vue b/src/renderer/App.vue index fdc57e2a..4e3a72fa 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -20,7 +20,7 @@