treat index in menuRemoveDuplicateServer

pull/695/head
YFdyh000 2020-04-19 06:22:51 +08:00
parent 9549d17b03
commit 56559e6509
2 changed files with 14 additions and 0 deletions

View File

@ -627,12 +627,22 @@ namespace v2rayN.Forms
private void menuRemoveDuplicateServer_Click(object sender, EventArgs e)
{
VmessItem activeVm = null;
if (config.index >= 0) {
activeVm = config.vmess[config.index];
}
Utils.DedupServerList(config.vmess, out List<VmessItem> servers, config.keepOlderDedupl);
int oldCount = config.vmess.Count;
int newCount = servers.Count;
if (servers != null)
{
config.vmess = servers;
if (activeVm != null)
{
int index = Utils.ServerVmIndexof(config.vmess, activeVm);
if (index >= 0) config.index = index; // restore to the correct value
}
}
//刷新
RefreshServers();

View File

@ -318,6 +318,10 @@ namespace v2rayN
return $"{string.Format("{0:f1}", result)} {unit}";
}
public static int ServerVmIndexof(List<Mode.VmessItem> source, Mode.VmessItem findIt)
{
return source.IndexOf(findIt);
}
public static void DedupServerList(List<Mode.VmessItem> source, out List<Mode.VmessItem> result, bool keepOlder)
{
List<Mode.VmessItem> list = new List<Mode.VmessItem>();