add group sort

This commit is contained in:
2dust 2022-04-12 13:37:41 +08:00
parent 024040163a
commit fde1c98ddd
6 changed files with 193 additions and 97 deletions

View file

@ -33,15 +33,20 @@
this.btnRemove = new System.Windows.Forms.Button(); this.btnRemove = new System.Windows.Forms.Button();
this.txtRemarks = new System.Windows.Forms.TextBox(); this.txtRemarks = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label();
this.numSort = new System.Windows.Forms.NumericUpDown();
this.label1 = new System.Windows.Forms.Label();
this.grbMain.SuspendLayout(); this.grbMain.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numSort)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// grbMain // grbMain
// //
resources.ApplyResources(this.grbMain, "grbMain"); this.grbMain.Controls.Add(this.label1);
this.grbMain.Controls.Add(this.numSort);
this.grbMain.Controls.Add(this.btnRemove); this.grbMain.Controls.Add(this.btnRemove);
this.grbMain.Controls.Add(this.txtRemarks); this.grbMain.Controls.Add(this.txtRemarks);
this.grbMain.Controls.Add(this.label2); this.grbMain.Controls.Add(this.label2);
resources.ApplyResources(this.grbMain, "grbMain");
this.grbMain.Name = "grbMain"; this.grbMain.Name = "grbMain";
this.grbMain.TabStop = false; this.grbMain.TabStop = false;
// //
@ -63,6 +68,17 @@
resources.ApplyResources(this.label2, "label2"); resources.ApplyResources(this.label2, "label2");
this.label2.Name = "label2"; this.label2.Name = "label2";
// //
// numSort
//
resources.ApplyResources(this.numSort, "numSort");
this.numSort.Name = "numSort";
this.numSort.Leave += new System.EventHandler(this.txtRemarks_Leave);
//
// label1
//
resources.ApplyResources(this.label1, "label1");
this.label1.Name = "label1";
//
// GroupSettingControl // GroupSettingControl
// //
resources.ApplyResources(this, "$this"); resources.ApplyResources(this, "$this");
@ -72,6 +88,7 @@
this.Load += new System.EventHandler(this.GroupSettingControl_Load); this.Load += new System.EventHandler(this.GroupSettingControl_Load);
this.grbMain.ResumeLayout(false); this.grbMain.ResumeLayout(false);
this.grbMain.PerformLayout(); this.grbMain.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numSort)).EndInit();
this.ResumeLayout(false); this.ResumeLayout(false);
} }
@ -82,5 +99,7 @@
private System.Windows.Forms.TextBox txtRemarks; private System.Windows.Forms.TextBox txtRemarks;
private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button btnRemove; private System.Windows.Forms.Button btnRemove;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.NumericUpDown numSort;
} }
} }

View file

@ -32,6 +32,7 @@ namespace v2rayN.Forms
if (groupItem != null) if (groupItem != null)
{ {
txtRemarks.Text = groupItem.remarks.ToString(); txtRemarks.Text = groupItem.remarks.ToString();
numSort.Value = groupItem.sort;
} }
} }
private void EndBindingSub() private void EndBindingSub()
@ -39,6 +40,7 @@ namespace v2rayN.Forms
if (groupItem != null) if (groupItem != null)
{ {
groupItem.remarks = txtRemarks.Text.TrimEx(); groupItem.remarks = txtRemarks.Text.TrimEx();
groupItem.sort = Convert.ToInt32(numSort.Value);
} }
} }
private void txtRemarks_Leave(object sender, EventArgs e) private void txtRemarks_Leave(object sender, EventArgs e)

View file

@ -118,126 +118,177 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="grbMain.TabIndex" type="System.Int32, mscorlib"> <data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>10</value> <value>True</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data> </data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing"> <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 12</value> <value>12, 61</value>
</data> </data>
<data name="&gt;&gt;grbMain.ZOrder" xml:space="preserve"> <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>71, 12</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>26</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>Sort number</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>grbMain</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing"> <data name="numSort.Location" type="System.Drawing.Point, System.Drawing">
<value>292, 21</value> <value>127, 57</value>
</data>
<data name="numSort.Size" type="System.Drawing.Size, System.Drawing">
<value>120, 21</value>
</data>
<data name="numSort.TabIndex" type="System.Int32, mscorlib">
<value>25</value>
</data>
<data name="&gt;&gt;numSort.Name" xml:space="preserve">
<value>numSort</value>
</data>
<data name="&gt;&gt;numSort.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;numSort.Parent" xml:space="preserve">
<value>grbMain</value>
</data>
<data name="&gt;&gt;numSort.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnRemove.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data> </data>
<data name="btnRemove.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnRemove.Location" type="System.Drawing.Point, System.Drawing">
<value>525, 21</value> <value>525, 21</value>
</data> </data>
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnRemove.Size" type="System.Drawing.Size, System.Drawing">
<value>127, 21</value> <value>75, 23</value>
</data>
<data name="&gt;&gt;btnRemove.Parent" xml:space="preserve">
<value>grbMain</value>
</data>
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 25</value>
</data> </data>
<data name="btnRemove.TabIndex" type="System.Int32, mscorlib"> <data name="btnRemove.TabIndex" type="System.Int32, mscorlib">
<value>24</value> <value>24</value>
</data> </data>
<data name="&gt;&gt;$this.Type" xml:space="preserve"> <data name="btnRemove.Text" xml:space="preserve">
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>Remove</value>
</data> </data>
<data name="&gt;&gt;$this.Name" xml:space="preserve"> <data name="&gt;&gt;btnRemove.Name" xml:space="preserve">
<value>GroupSettingControl</value> <value>btnRemove</value>
</data>
<data name="&gt;&gt;label2.Parent" xml:space="preserve">
<value>grbMain</value>
</data> </data>
<data name="&gt;&gt;btnRemove.Type" xml:space="preserve"> <data name="&gt;&gt;btnRemove.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;grbMain.Name" xml:space="preserve"> <data name="&gt;&gt;btnRemove.Parent" xml:space="preserve">
<value>grbMain</value> <value>grbMain</value>
</data> </data>
<data name="&gt;&gt;label2.Type" xml:space="preserve"> <data name="&gt;&gt;btnRemove.ZOrder" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
<value>2</value> <value>2</value>
</data> </data>
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
<value>127, 21</value>
</data>
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
<value>292, 21</value>
</data>
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;txtRemarks.Name" xml:space="preserve">
<value>txtRemarks</value>
</data>
<data name="&gt;&gt;txtRemarks.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtRemarks.Parent" xml:space="preserve">
<value>grbMain</value>
</data>
<data name="&gt;&gt;txtRemarks.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 25</value>
</data>
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
<value>47, 12</value>
</data>
<data name="label2.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="label2.Text" xml:space="preserve">
<value>Remarks</value>
</data>
<data name="&gt;&gt;label2.Name" xml:space="preserve"> <data name="&gt;&gt;label2.Name" xml:space="preserve">
<value>label2</value> <value>label2</value>
</data> </data>
<data name="btnRemove.Size" type="System.Drawing.Size, System.Drawing"> <data name="&gt;&gt;label2.Type" xml:space="preserve">
<value>75, 23</value> <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label2.Parent" xml:space="preserve">
<value>grbMain</value>
</data>
<data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="grbMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data> </data>
<data name="grbMain.Location" type="System.Drawing.Point, System.Drawing"> <data name="grbMain.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="grbMain.Size" type="System.Drawing.Size, System.Drawing"> <data name="grbMain.Size" type="System.Drawing.Size, System.Drawing">
<value>619, 61</value> <value>619, 91</value>
</data> </data>
<data name="label2.Text" xml:space="preserve"> <data name="grbMain.TabIndex" type="System.Int32, mscorlib">
<value>Remarks</value> <value>10</value>
</data>
<data name="&gt;&gt;txtRemarks.Parent" xml:space="preserve">
<value>grbMain</value>
</data> </data>
<data name="grbMain.Text" xml:space="preserve"> <data name="grbMain.Text" xml:space="preserve">
<value>Group details</value> <value>Group details</value>
</data> </data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <data name="&gt;&gt;grbMain.Name" xml:space="preserve">
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> <value>grbMain</value>
<value>NoControl</value>
</data>
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;txtRemarks.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
<value>47, 12</value>
</data>
<data name="&gt;&gt;txtRemarks.Name" xml:space="preserve">
<value>txtRemarks</value>
</data>
<data name="&gt;&gt;btnRemove.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;btnRemove.Name" xml:space="preserve">
<value>btnRemove</value>
</data>
<data name="grbMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="label2.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="btnRemove.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data> </data>
<data name="&gt;&gt;grbMain.Type" xml:space="preserve"> <data name="&gt;&gt;grbMain.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;txtRemarks.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;grbMain.Parent" xml:space="preserve"> <data name="&gt;&gt;grbMain.Parent" xml:space="preserve">
<value>$this</value> <value>$this</value>
</data> </data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing"> <data name="&gt;&gt;grbMain.ZOrder" xml:space="preserve">
<value>619, 61</value> <value>0</value>
</data>
<data name="btnRemove.Text" xml:space="preserve">
<value>Remove</value>
</data> </data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 12</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>619, 91</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>GroupSettingControl</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root> </root>

View file

@ -130,4 +130,7 @@
<data name="grbMain.Text" xml:space="preserve"> <data name="grbMain.Text" xml:space="preserve">
<value>分组详情</value> <value>分组详情</value>
</data> </data>
<data name="label1.Text" xml:space="preserve">
<value>排序编号</value>
</data>
</root> </root>

View file

@ -83,12 +83,12 @@ namespace v2rayN.Forms
RefreshRoutingsMenu(); RefreshRoutingsMenu();
RestoreUI(); RestoreUI();
_ = LoadV2ray();
HideForm(); HideForm();
MainFormHandler.Instance.UpdateTask(config, UpdateTaskHandler); MainFormHandler.Instance.UpdateTask(config, UpdateTaskHandler);
MainFormHandler.Instance.RegisterGlobalHotkey(config, OnHotkeyHandler, UpdateTaskHandler); MainFormHandler.Instance.RegisterGlobalHotkey(config, OnHotkeyHandler, UpdateTaskHandler);
_ = LoadV2ray();
} }
private void MainForm_FormClosing(object sender, FormClosingEventArgs e) private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
@ -472,7 +472,7 @@ namespace v2rayN.Forms
tabPage.Name = ""; tabPage.Name = "";
tabGroup.TabPages.Add(tabPage); tabGroup.TabPages.Add(tabPage);
foreach (var item in config.groupItem) foreach (var item in config.groupItem.OrderBy(t => t.sort))
{ {
var tabPage2 = new TabPage($" {item.remarks} "); var tabPage2 = new TabPage($" {item.remarks} ");
tabPage2.Name = item.id; tabPage2.Name = item.id;
@ -539,13 +539,15 @@ namespace v2rayN.Forms
#endregion #endregion
#region v2ray #region v2ray
/// <summary> /// <summary>
/// 载入V2ray /// 载入V2ray
/// </summary> /// </summary>
async Task LoadV2ray() async Task LoadV2ray()
{ {
tsbReload.Enabled = false; this.BeginInvoke(new Action(() =>
{
tsbReload.Enabled = false;
}));
if (Global.reloadV2ray) if (Global.reloadV2ray)
{ {
@ -562,7 +564,10 @@ namespace v2rayN.Forms
ChangePACButtonStatus(config.sysProxyType); ChangePACButtonStatus(config.sysProxyType);
tsbReload.Enabled = true; this.BeginInvoke(new Action(() =>
{
tsbReload.Enabled = true;
}));
} }
/// <summary> /// <summary>
@ -881,9 +886,9 @@ namespace v2rayN.Forms
var fm = new GlobalHotkeySettingForm(); var fm = new GlobalHotkeySettingForm();
if (fm.ShowDialog() == DialogResult.OK) if (fm.ShowDialog() == DialogResult.OK)
{ {
RefreshRoutingsMenu(); //RefreshRoutingsMenu();
RefreshServers(); //RefreshServers();
_ = LoadV2ray(); //_ = LoadV2ray();
} }
} }
@ -1259,13 +1264,13 @@ namespace v2rayN.Forms
} }
} }
private void UpdateTaskHandler(bool success, string msg) private async void UpdateTaskHandler(bool success, string msg)
{ {
AppendText(false, msg); AppendText(false, msg);
if (success) if (success)
{ {
Global.reloadV2ray = true; Global.reloadV2ray = true;
_ = LoadV2ray(); await LoadV2ray();
} }
} }
#endregion #endregion

View file

@ -341,19 +341,31 @@ namespace v2rayN.Mode
{ {
return subRemarks; return subRemarks;
} }
foreach (SubItem sub in config.subItem)
{
if (sub.id.EndsWith(subid))
{
return sub.remarks;
}
}
if (subid.Length <= 4) if (subid.Length <= 4)
{ {
return subid; return subid;
} }
var sub = config.subItem.FirstOrDefault(t => t.id == subid);
if (sub != null)
{
return sub.remarks;
}
return subid.Substring(0, 4); return subid.Substring(0, 4);
} }
public string GetGroupRemarks(Config config)
{
string subRemarks = string.Empty;
if (Utils.IsNullOrEmpty(groupId))
{
return subRemarks;
}
var group = config.groupItem.FirstOrDefault(t => t.id == groupId);
if (group != null)
{
return group.remarks;
}
return groupId.Substring(0, 4);
}
public List<string> GetAlpn() public List<string> GetAlpn()
{ {
@ -578,9 +590,9 @@ namespace v2rayN.Mode
public bool sniffingEnabled { get; set; } = true; public bool sniffingEnabled { get; set; } = true;
public bool allowLANConn { get; set; } public bool allowLANConn { get; set; }
public string user { get; set; } public string user { get; set; }
public string pass { get; set; } public string pass { get; set; }
} }
@ -763,6 +775,10 @@ namespace v2rayN.Mode
{ {
get; set; get; set;
} }
public int sort
{
get; set;
}
} }