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) 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); Utils.DedupServerList(config.vmess, out List<VmessItem> servers, config.keepOlderDedupl);
int oldCount = config.vmess.Count; int oldCount = config.vmess.Count;
int newCount = servers.Count; int newCount = servers.Count;
if (servers != null) if (servers != null)
{ {
config.vmess = servers; 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(); RefreshServers();

View File

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