From 0801c3db645adcc7406f2df9f83c130a8a17d08e Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Fri, 1 Apr 2022 18:09:58 +0800 Subject: [PATCH] Refactor stat update --- v2rayN/v2rayN/Forms/MainForm.cs | 30 +++++++++++++++++++++++++- v2rayN/v2rayN/Handler/ConfigHandler.cs | 2 ++ v2rayN/v2rayN/Mode/Config.cs | 6 ++++-- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index c5797a95..0bcd9fea 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -150,12 +150,17 @@ namespace v2rayN.Forms { scMain.Panel2Collapsed = true; + if (!config.uiItem.mainLocation.IsEmpty) + { + this.Location = config.uiItem.mainLocation; + } if (!config.uiItem.mainSize.IsEmpty) { this.Width = config.uiItem.mainSize.Width; this.Height = config.uiItem.mainSize.Height; } + for (int k = 0; k < lvServers.Columns.Count; k++) { var width = ConfigHandler.GetformMainLvColWidth(ref config, ((EServerColName)k).ToString(), lvServers.Columns[k].Width); @@ -165,6 +170,8 @@ namespace v2rayN.Forms private void StorageUI() { + config.uiItem.mainLocation = this.Location; + config.uiItem.mainSize = new Size(this.Width, this.Height); for (int k = 0; k < lvServers.Columns.Count; k++) @@ -1253,7 +1260,28 @@ namespace v2rayN.Forms down /= (ulong)(config.statisticsFreshRate / 1000f); toolSslServerSpeed.Text = string.Format("{0}/s↑ | {1}/s↓", Utils.HumanFy(up), Utils.HumanFy(down)); - List datas = new List(); + foreach (var it in statistics) + { + int index = lstVmess.FindIndex(item => item.indexId == it.itemId); + if (index < 0) + { + continue; + } + lvServers.Invoke((MethodInvoker)delegate + { + lvServers.BeginUpdate(); + + lvServers.Items[index].SubItems["todayDown"].Text = Utils.HumanFy(it.todayDown); + lvServers.Items[index].SubItems["todayUp"].Text = Utils.HumanFy(it.todayUp); + lvServers.Items[index].SubItems["totalDown"].Text = Utils.HumanFy(it.totalDown); + lvServers.Items[index].SubItems["totalUp"].Text = Utils.HumanFy(it.totalUp); + + lvServers.EndUpdate(); + }); + } + + + for (int i = 0; i < lstVmess.Count; i++) { int index = statistics.FindIndex(item_ => item_.itemId == lstVmess[i].indexId); diff --git a/v2rayN/v2rayN/Handler/ConfigHandler.cs b/v2rayN/v2rayN/Handler/ConfigHandler.cs index b47a4359..f484daec 100644 --- a/v2rayN/v2rayN/Handler/ConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/ConfigHandler.cs @@ -1159,6 +1159,8 @@ namespace v2rayN.Handler { config.uiItem.mainLvColWidth.Add(name, width); } + + ToJsonFile(config); return 0; } public static int GetformMainLvColWidth(ref Config config, string name, int width) diff --git a/v2rayN/v2rayN/Mode/Config.cs b/v2rayN/v2rayN/Mode/Config.cs index f7b00755..596f96b9 100644 --- a/v2rayN/v2rayN/Mode/Config.cs +++ b/v2rayN/v2rayN/Mode/Config.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Windows.Forms; using v2rayN.Base; using System.Linq; - +using System.Drawing; namespace v2rayN.Mode { @@ -692,7 +692,9 @@ namespace v2rayN.Mode get; set; } - public System.Drawing.Size mainSize + public Point mainLocation { get; set; } + + public Size mainSize { get; set; }