mirror of
https://github.com/bolucat/Archive.git
synced 2026-04-23 00:17:16 +08:00
Update On Wed Jan 1 19:33:26 CET 2025
This commit is contained in:
@@ -670,18 +670,43 @@ namespace Shadowsocks.View
|
||||
// user wants a seperator item between strategy and servers menugroup
|
||||
items.Add(strategyCount++, new MenuItem("-"));
|
||||
|
||||
int maxCount = 20;
|
||||
int serverCount = 0;
|
||||
bool overflow = false;
|
||||
bool needAdd = true;
|
||||
|
||||
Configuration configuration = controller.GetCurrentConfiguration();
|
||||
foreach (var server in configuration.configs)
|
||||
for (int i = 0; i < configuration.configs.Count; i++)
|
||||
{
|
||||
try
|
||||
{
|
||||
Configuration.CheckServer(server);
|
||||
MenuItem item = new MenuItem(server.ToString());
|
||||
item.Tag = configuration.configs.FindIndex(s => s == server);
|
||||
item.Click += AServerItem_Click;
|
||||
items.Add(strategyCount + serverCount, item);
|
||||
serverCount++;
|
||||
if (overflow)
|
||||
{
|
||||
needAdd = configuration.index >= i;
|
||||
if (needAdd)
|
||||
{
|
||||
i = configuration.index;
|
||||
}
|
||||
}
|
||||
|
||||
if (needAdd)
|
||||
{
|
||||
var server = configuration.configs[i];
|
||||
Configuration.CheckServer(server);
|
||||
var item = new MenuItem(server.ToString());
|
||||
item.Tag = i;
|
||||
item.Click += AServerItem_Click;
|
||||
items.Add(strategyCount + serverCount, item);
|
||||
serverCount++;
|
||||
}
|
||||
|
||||
if (overflow)
|
||||
{
|
||||
items.Add(strategyCount + serverCount, new MenuItem($"... more than {maxCount} (total {configuration.configs.Count})", Config_Click));
|
||||
break;
|
||||
}
|
||||
|
||||
overflow = serverCount > maxCount;
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user