diff --git a/CHANGES b/CHANGES index fdae0471..bb165554 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,15 @@ +4.1.9.3 2020-03-31 +- Set default method to chacha20-ietf-poly1305 +- Using hash in PAC URL (#2759) +- Rename and translate title of statistics form (#2768) +- Russian translation (#2767) +- Refine Updated Notification logic +- Using NLog (#2783) +- Bug fix: wrong server in tray menu (#2782) +- Deprecate unsafe encryption method (#2757, #2801) +- Bug fix: server config is overwritten by others when moving up/down (#2830) +- Other minor bug fixes and improvements + 4.1.9.2 2019-12-25 - Fix i18n issues (#2740, #2741) diff --git a/shadowsocks-csharp/Controller/Service/UpdateChecker.cs b/shadowsocks-csharp/Controller/Service/UpdateChecker.cs index fb1aa331..bfbc460e 100644 --- a/shadowsocks-csharp/Controller/Service/UpdateChecker.cs +++ b/shadowsocks-csharp/Controller/Service/UpdateChecker.cs @@ -26,7 +26,7 @@ namespace Shadowsocks.Controller public string LatestVersionLocalName; public event EventHandler CheckUpdateCompleted; - public const string Version = "4.1.9.2"; + public const string Version = "4.1.9.3"; private class CheckUpdateTimer : System.Timers.Timer { diff --git a/shadowsocks-csharp/Data/i18n.csv b/shadowsocks-csharp/Data/i18n.csv index f2bf8a29..3b50567f 100644 --- a/shadowsocks-csharp/Data/i18n.csv +++ b/shadowsocks-csharp/Data/i18n.csv @@ -76,6 +76,7 @@ New server,Новый сервер,未配置的服务器,新伺服器,新規サ Move &Up,Выше,上移(&U),上移 (&U),上に移動 (&U) Move D&own,Ниже,下移(&O),下移 (&O),下に移動 (&O) deprecated,Устаревшее,不推荐,不推薦,非推奨 +"Encryption method {0} not exist, will replace with {1}",,"加密方法{0}不存在,将使用{1}代替",, ,,,, #Statistics Config,,,, ,,,, diff --git a/shadowsocks-csharp/View/ConfigForm.cs b/shadowsocks-csharp/View/ConfigForm.cs index caab2f6d..aa337e6e 100755 --- a/shadowsocks-csharp/View/ConfigForm.cs +++ b/shadowsocks-csharp/View/ConfigForm.cs @@ -79,7 +79,14 @@ namespace Shadowsocks.View public static EncryptionMethod GetMethod(string name) { if (!init) Init(); - return methodByName[name]; + bool success = methodByName.TryGetValue(name, out EncryptionMethod method); + if (!success) + { + string defaultMethod = Server.DefaultMethod; + MessageBox.Show(I18N.GetString("Encryption method {0} not exist, will replace with {1}", name, defaultMethod), I18N.GetString("Shadowsocks")); + return methodByName[defaultMethod]; + } + return method; } private EncryptionMethod(string name, bool deprecated) @@ -568,21 +575,18 @@ namespace Shadowsocks.View private void MoveConfigItem(int step) { - int index = ServersListBox.SelectedIndex; - Server server = _modifiedConfiguration.configs[index]; - object item = ServersListBox.Items[index]; + var server = _modifiedConfiguration.configs[_lastSelectedIndex]; + var newIndex = _lastSelectedIndex + step; - _modifiedConfiguration.configs.Remove(server); - _modifiedConfiguration.configs.Insert(index + step, server); - _modifiedConfiguration.index += step; + _modifiedConfiguration.configs.RemoveAt(_lastSelectedIndex); + _modifiedConfiguration.configs.Insert(newIndex, server); ServersListBox.BeginUpdate(); - ServersListBox.Enabled = false; - _lastSelectedIndex = index + step; - ServersListBox.Items.Remove(item); - ServersListBox.Items.Insert(index + step, item); - ServersListBox.Enabled = true; - ServersListBox.SelectedIndex = index + step; + + LoadServerNameListToUI(_modifiedConfiguration); + + _lastSelectedIndex = newIndex; + ServersListBox.SelectedIndex = newIndex; ServersListBox.EndUpdate(); UpdateButtons();