Browse Source

Fix a problem that forward proxy settings are saved twice

Fix #926
tags/3.4.0
noisyfox 8 years ago
parent
commit
264b91d6b0
2 changed files with 9 additions and 38 deletions
  1. +2
    -11
      shadowsocks-csharp/Controller/ShadowsocksController.cs
  2. +7
    -27
      shadowsocks-csharp/View/ProxyForm.cs

+ 2
- 11
shadowsocks-csharp/Controller/ShadowsocksController.cs View File

@@ -220,12 +220,13 @@ namespace Shadowsocks.Controller
SaveConfig(_config); SaveConfig(_config);
} }
public void EnableProxy(int type, string proxy, int port)
public void EnableProxy(int type, string proxy, int port, int timeout)
{ {
_config.proxy.useProxy = true; _config.proxy.useProxy = true;
_config.proxy.proxyType = type; _config.proxy.proxyType = type;
_config.proxy.proxyServer = proxy; _config.proxy.proxyServer = proxy;
_config.proxy.proxyPort = port; _config.proxy.proxyPort = port;
_config.proxy.proxyTimeout = timeout;
SaveConfig(_config); SaveConfig(_config);
} }
@@ -388,16 +389,6 @@ namespace Shadowsocks.Controller
} }
} }
public void SaveProxyConfig(ProxyConfig newConfig)
{
_config.proxy = newConfig;
Configuration.Save(_config);
if (ConfigChanged != null)
{
ConfigChanged(this, new EventArgs());
}
}
public void SaveHotkeyConfig(HotkeyConfig newConfig) public void SaveHotkeyConfig(HotkeyConfig newConfig)
{ {
_config.hotkey = newConfig; _config.hotkey = newConfig;


+ 7
- 27
shadowsocks-csharp/View/ProxyForm.cs View File

@@ -58,35 +58,25 @@ namespace Shadowsocks.View
private void OKButton_Click(object sender, EventArgs e) private void OKButton_Click(object sender, EventArgs e)
{ {
var type = ProxyTypeComboBox.SelectedIndex;
var proxy = ProxyServerTextBox.Text;
var port = 0;
var timeout = 3;
if (UseProxyCheckBox.Checked) if (UseProxyCheckBox.Checked)
{ {
try
{
port = int.Parse(ProxyPortTextBox.Text);
}
catch (FormatException)
int port;
int timeout;
if (!int.TryParse(ProxyPortTextBox.Text, out port))
{ {
MessageBox.Show(I18N.GetString("Illegal port number format")); MessageBox.Show(I18N.GetString("Illegal port number format"));
ProxyPortTextBox.Clear();
return; return;
} }
try
{
timeout = int.Parse(ProxyTimeoutTextBox.Text);
}
catch (FormatException)
if (!int.TryParse(ProxyTimeoutTextBox.Text, out timeout))
{ {
MessageBox.Show(I18N.GetString("Illegal timeout format")); MessageBox.Show(I18N.GetString("Illegal timeout format"));
ProxyTimeoutTextBox.Clear();
return; return;
} }
var type = ProxyTypeComboBox.SelectedIndex;
var proxy = ProxyServerTextBox.Text;
try try
{ {
Configuration.CheckServer(proxy); Configuration.CheckServer(proxy);
@@ -99,20 +89,13 @@ namespace Shadowsocks.View
return; return;
} }
controller.EnableProxy(type, proxy, port);
controller.EnableProxy(type, proxy, port, timeout);
} }
else else
{ {
controller.DisableProxy(); controller.DisableProxy();
} }
_modifiedConfiguration.useProxy = UseProxyCheckBox.Checked;
_modifiedConfiguration.proxyType = type;
_modifiedConfiguration.proxyServer = proxy;
_modifiedConfiguration.proxyPort = port;
_modifiedConfiguration.proxyTimeout = timeout;
controller.SaveProxyConfig(_modifiedConfiguration);
this.Close(); this.Close();
} }
@@ -142,9 +125,6 @@ namespace Shadowsocks.View
} }
else else
{ {
ProxyServerTextBox.Clear();
ProxyPortTextBox.Clear();
ProxyTimeoutTextBox.Clear();
ProxyServerTextBox.Enabled = false; ProxyServerTextBox.Enabled = false;
ProxyPortTextBox.Enabled = false; ProxyPortTextBox.Enabled = false;
ProxyTimeoutTextBox.Enabled = false; ProxyTimeoutTextBox.Enabled = false;


Loading…
Cancel
Save