From d4fcefc9df6a2d65c1360db3b77ba3656c617ea2 Mon Sep 17 00:00:00 2001 From: MysticBoy Date: Fri, 20 Mar 2020 01:37:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E9=87=8D=E5=A4=8D=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E8=8F=9C=E5=8D=95=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shadowsocks-csharp/View/MenuViewController.cs | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/shadowsocks-csharp/View/MenuViewController.cs b/shadowsocks-csharp/View/MenuViewController.cs index 6780b292..e31fa67b 100644 --- a/shadowsocks-csharp/View/MenuViewController.cs +++ b/shadowsocks-csharp/View/MenuViewController.cs @@ -461,27 +461,35 @@ namespace Shadowsocks.View int strategyCount = 0; foreach (var strategy in controller.GetStrategies()) { - ToolStripMenuItem item = new ToolStripMenuItem(strategy.Name); - item.Tag = strategy.ID; - item.Click += AStrategyItem_Click; - items.Add( item); - strategyCount++; + if (!items.OfType().Any(ts=>ts.Text==strategy.Name)) + { + ToolStripMenuItem item = new ToolStripMenuItem(strategy.Name); + item.Tag = strategy.ID; + item.Click += AStrategyItem_Click; + items.Add(item); + strategyCount++; + } + } + if (!items.OfType().Any(ts => ts.Tag?.ToString() == "-server-")) + { + // user wants a seperator item between strategy and servers menugroup + items.Add(new ToolStripSeparator() { Tag = "-server-" }); } - - // user wants a seperator item between strategy and servers menugroup - items .Add(new ToolStripSeparator()); - int serverCount = 0; Configuration configuration = controller.GetConfigurationCopy(); foreach (var server in configuration.configs) { if (Configuration.ChecksServer(server)) { - ToolStripMenuItem item = new ToolStripMenuItem(server.FriendlyName()); - item.Tag = configuration.configs.FindIndex(s => s == server); - item.Click += AServerItem_Click; - items.Add( item); - serverCount++; + var name = server.FriendlyName(); + if (!items.OfType().Any(ts => ts.Text == name)) + { + ToolStripMenuItem item = new ToolStripMenuItem(name); + item.Tag = configuration.configs.FindIndex(s => s == server); + item.Click += AServerItem_Click; + items.Add(item); + serverCount++; + } } }