diff --git a/electron/BrowserOption.vue b/electron/BrowserOption.vue new file mode 100644 index 0000000..5ff127a --- /dev/null +++ b/electron/BrowserOption.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/electron/browser_option.html b/electron/browser_option.html new file mode 100644 index 0000000..a34ba1c --- /dev/null +++ b/electron/browser_option.html @@ -0,0 +1,14 @@ + + + + + + F-Chat + + + +
+ + + + diff --git a/electron/browser_option.ts b/electron/browser_option.ts new file mode 100644 index 0000000..451e173 --- /dev/null +++ b/electron/browser_option.ts @@ -0,0 +1,26 @@ +import * as qs from 'querystring'; +import log from 'electron-log'; //tslint:disable-line:match-default-export-name + +import {GeneralSettings} from './common'; +import BrowserOption from './BrowserOption.vue'; + +log.info('init.browser_option'); + +const params = <{[key: string]: string | undefined}>qs.parse(window.location.search.substr(1)); +const settings = JSON.parse(params['settings']!); + +const logLevel = (process.env.NODE_ENV === 'production') ? 'info' : 'silly'; + +log.transports.file.level = settings.risingSystemLogLevel || logLevel; +log.transports.console.level = settings.risingSystemLogLevel || logLevel; +log.transports.file.maxSize = 5 * 1024 * 1024; + +log.info('init.browser_option.vue'); + +//tslint:disable-next-line:no-unused-expression +export default new BrowserOption({ + el: '#browser-option', + data: {settings} +}); + +log.debug('init.browser_option.vue.done'); diff --git a/electron/common.ts b/electron/common.ts index 0425a81..198fd03 100644 --- a/electron/common.ts +++ b/electron/common.ts @@ -31,6 +31,7 @@ export class GeneralSettings { risingCacheExpiryDays = 30; risingSystemLogLevel: log.LevelOption = 'info'; risingDisableWindowsHighContrast = false; + browserCommand = ''; } // //tslint:disable diff --git a/electron/main.ts b/electron/main.ts index ee53899..bade67d 100644 --- a/electron/main.ts +++ b/electron/main.ts @@ -284,6 +284,25 @@ function showPatchNotes(): void { electron.shell.openExternal('https://github.com/hearmeneigh/fchat-rising/blob/master/CHANGELOG.md'); } +function openBrowserSettings(): void { + const windowProperties: electron.BrowserWindowConstructorOptions = { + center: true, + show: false, + icon: process.platform === 'win32' ? winIcon : pngIcon, + webPreferences: { + webviewTag: true, nodeIntegration: true, nodeIntegrationInWorker: true, spellcheck: true, + enableRemoteModule: true, contextIsolation: false, partition: 'persist:fchat' + } as any + }; + + const browserWindow = new electron.BrowserWindow(windowProperties); + browserWindow.removeMenu(); + browserWindow.loadFile(path.join(__dirname, 'browser_option.html')).then(r => { + console.log(r); + browserWindow.show(); + }); +} + let zoomLevel = 0; @@ -529,6 +548,12 @@ function onReady(): void { settings.risingDisableWindowsHighContrast = item.checked; setGeneralSettings(settings); } + }, + { + label: 'Set command for opening clicked links', + click: () => { + openBrowserSettings(); + } } ] }, diff --git a/electron/webpack.config.js b/electron/webpack.config.js index f7893e5..924c549 100644 --- a/electron/webpack.config.js +++ b/electron/webpack.config.js @@ -47,7 +47,8 @@ const mainConfig = { }, rendererConfig = { entry: { chat: [path.join(__dirname, 'chat.ts'), path.join(__dirname, 'index.html')], - window: [path.join(__dirname, 'window.ts'), path.join(__dirname, 'window.html'), path.join(__dirname, 'build', 'tray@2x.png')] + window: [path.join(__dirname, 'window.ts'), path.join(__dirname, 'window.html'), path.join(__dirname, 'build', 'tray@2x.png')], + browser_option: [path.join(__dirname, 'browser_option.ts'), path.join(__dirname, 'browser_option.html'), path.join(__dirname, 'build', 'tray@2x.png')] }, output: { path: __dirname + '/app',