From 84031b24abec5579145cd54cf6a11fbcacb1d8a7 Mon Sep 17 00:00:00 2001 From: Ramiro Saenz Date: Thu, 1 Sep 2016 21:51:47 -0300 Subject: [PATCH] Proxy Support Fixes #203 --- app/view/preferences/Preferences.js | 29 +++++++++++++++++++ app/view/preferences/PreferencesController.js | 7 ++++- electron/main.js | 6 ++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/view/preferences/Preferences.js b/app/view/preferences/Preferences.js index 1786c402..280c5eb6 100644 --- a/app/view/preferences/Preferences.js +++ b/app/view/preferences/Preferences.js @@ -83,6 +83,35 @@ Ext.define('Rambox.view.preferences.Preferences',{ ,boxLabel: 'Start automatically on system startup' ,value: config.auto_launch } + ,{ + xtype: 'fieldset' + ,title: 'Proxy (needs to relaunch) - Free IP:PORT Proxy List' + ,collapsed: !config.proxy + ,checkboxToggle: true + ,checkboxName: 'proxy' + ,margin: '10 0 0 0' + ,padding: 10 + ,layout: 'hbox' + ,defaults: { labelAlign: 'top' } + ,items: [ + { + xtype: 'textfield' + ,vtype: 'url' + ,fieldLabel: 'Host' + ,name: 'proxyHost' + ,value: config.proxyHost + ,flex: 1 + } + ,{ + xtype: 'numberfield' + ,fieldLabel: 'Port' + ,name: 'proxyPort' + ,width: 100 + ,value: config.proxyPort + ,margin: '0 0 0 10' + } + ] + } ] } ]; diff --git a/app/view/preferences/PreferencesController.js b/app/view/preferences/PreferencesController.js index aae878b3..a1f13295 100644 --- a/app/view/preferences/PreferencesController.js +++ b/app/view/preferences/PreferencesController.js @@ -11,7 +11,12 @@ Ext.define('Rambox.view.preferences.PreferencesController', { ,save: function( btn ) { var me = this; - ipc.send('setConfig', me.getView().down('form').getForm().getFieldValues()); + var values = me.getView().down('form').getForm().getFieldValues(); + + // Proxy + if ( values.proxy && (Ext.isEmpty(values.proxyHost) || Ext.isEmpty(values.proxyPort)) ) return; + + ipc.send('setConfig', values); me.getView().close(); } }); diff --git a/electron/main.js b/electron/main.js index 73dc0903..e9a4e2f2 100644 --- a/electron/main.js +++ b/electron/main.js @@ -23,6 +23,9 @@ const config = new Config({ ,auto_launch: !isDev ,keep_in_taskbar_on_close: true ,start_minimized: false + ,proxy: false + ,proxyHost: '' + ,proxyPort: '' ,x: undefined ,y: undefined @@ -321,6 +324,9 @@ ipcMain.on('image:download', function(event, url, partition) { tmpWindow.webContents.downloadURL(url); }); +// Proxy +if ( config.get('proxy') ) app.commandLine.appendSwitch('proxy-server', config.get('proxyHost')+':'+config.get('proxyPort')); + // This method will be called when Electron has finished // initialization and is ready to create browser windows. app.on('ready', createWindow);