From 46c887537e891c925de9d0739a7eac8f6f55adcc Mon Sep 17 00:00:00 2001 From: YFdyh000 <yfdyh000@gmail.com> Date: Sat, 18 Apr 2020 20:43:25 +0800 Subject: [PATCH] remember columns order --- v2rayN/v2rayN/Forms/MainForm.Designer.cs | 1 + v2rayN/v2rayN/Forms/MainForm.cs | 20 ++++++++++++++++++++ v2rayN/v2rayN/Forms/MainForm.resx | 6 +++--- v2rayN/v2rayN/Mode/Config.cs | 3 +-- 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/v2rayN/v2rayN/Forms/MainForm.Designer.cs b/v2rayN/v2rayN/Forms/MainForm.Designer.cs index 72592c43..aff2d35f 100644 --- a/v2rayN/v2rayN/Forms/MainForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/MainForm.Designer.cs @@ -167,6 +167,7 @@ this.lvServers.UseCompatibleStateImageBehavior = false; this.lvServers.View = System.Windows.Forms.View.Details; this.lvServers.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.lvServers_ColumnClick); + this.lvServers.ColumnReordered += new System.Windows.Forms.ColumnReorderedEventHandler(this.lvServers_ColumnReordered); this.lvServers.ColumnWidthChanged += new System.Windows.Forms.ColumnWidthChangedEventHandler(this.lvServers_ColumnWidthChanged); this.lvServers.SelectedIndexChanged += new System.EventHandler(this.lvServers_SelectedIndexChanged); this.lvServers.DoubleClick += new System.EventHandler(this.lvServers_DoubleClick); diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index d6331f58..e8344603 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -12,6 +12,7 @@ using System.Diagnostics; using System.Drawing; using System.Net; using System.Threading.Tasks; +using System.Linq; namespace v2rayN.Forms { @@ -196,6 +197,13 @@ namespace v2rayN.Forms lvServers.Columns[EServerColName.totalDown.ToString()].Tag = Global.sortMode.Numeric.ToString(); lvServers.Columns[EServerColName.totalUp.ToString()].Tag = Global.sortMode.Numeric.ToString(); } + + foreach (ColumnHeader c in lvServers.Columns) + { + if (config.uiItem.mainLvColLayout == null) break; + int i = config.uiItem.mainLvColLayout.IndexOf(c.Name); + if (i >= 0) c.DisplayIndex = i; + } lvServers.EndUpdate(); } @@ -1681,11 +1689,23 @@ namespace v2rayN.Forms { ColumnHeader c = lvServers.Columns[e.ColumnIndex]; ConfigHandler.AddformMainLvColWidth(ref config, c.Name, c.Width); + Task.Run(() => ConfigHandler.SaveConfig(ref config)); } private void MainForm_ResizeEnd(object sender, EventArgs e) { config.uiItem.mainSize = new Size(this.Width, this.Height); + Task.Run(() => ConfigHandler.SaveConfig(ref config)); + } + + private async void lvServers_ColumnReordered(object sender, ColumnReorderedEventArgs e) + { + await Task.Delay(500); + var names = (from col in lvServers.Columns.Cast<ColumnHeader>() + orderby col.DisplayIndex + select col.Name).ToList(); + config.uiItem.mainLvColLayout = names; + _ = Task.Run(() => ConfigHandler.SaveConfig(ref config)); } } } diff --git a/v2rayN/v2rayN/Forms/MainForm.resx b/v2rayN/v2rayN/Forms/MainForm.resx index 43d513f5..2fa0a97a 100644 --- a/v2rayN/v2rayN/Forms/MainForm.resx +++ b/v2rayN/v2rayN/Forms/MainForm.resx @@ -882,7 +882,7 @@ <value>toolSslBlank1</value> </data> <data name="toolSslBlank1.Size" type="System.Drawing.Size, System.Drawing"> - <value>160, 21</value> + <value>170, 21</value> </data> <data name=">>toolSslBlank1.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> @@ -891,7 +891,7 @@ <value>toolSslBlank2</value> </data> <data name="toolSslBlank2.Size" type="System.Drawing.Size, System.Drawing"> - <value>160, 21</value> + <value>170, 21</value> </data> <data name=">>toolSslBlank2.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> @@ -900,7 +900,7 @@ <value>toolSslBlank3</value> </data> <data name="toolSslBlank3.Size" type="System.Drawing.Size, System.Drawing"> - <value>160, 21</value> + <value>170, 21</value> </data> <data name=">>toolSslBlank3.Type" xml:space="preserve"> <value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> diff --git a/v2rayN/v2rayN/Mode/Config.cs b/v2rayN/v2rayN/Mode/Config.cs index 65f74893..d473462f 100644 --- a/v2rayN/v2rayN/Mode/Config.cs +++ b/v2rayN/v2rayN/Mode/Config.cs @@ -544,9 +544,8 @@ namespace v2rayN.Mode [Serializable] public class UIItem { - - public System.Drawing.Size mainSize { get; set; } public Dictionary<string, int> mainLvColWidth { get; set; } + public List<string> mainLvColLayout { get; set; } } }