mirror of https://github.com/2dust/v2rayN
add move servers to group
parent
e58e0d6ac7
commit
dee5613f2f
|
@ -47,6 +47,7 @@
|
||||||
this.menuCopyServer = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuCopyServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuSetDefaultServer = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuSetDefaultServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.menuMoveToGroup = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuMoveTop = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuMoveTop = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuMoveUp = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuMoveUp = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuMoveDown = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuMoveDown = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
@ -64,9 +65,9 @@
|
||||||
this.menuExport2ServerConfig = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuExport2ServerConfig = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuExport2ShareUrl = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuExport2ShareUrl = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuExport2SubContent = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuExport2SubContent = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tsbServer = new System.Windows.Forms.ToolStripDropDownButton();
|
||||||
this.tabGroup = new System.Windows.Forms.TabControl();
|
this.tabGroup = new System.Windows.Forms.TabControl();
|
||||||
this.qrCodeControl = new v2rayN.Forms.QRCodeControl();
|
this.qrCodeControl = new v2rayN.Forms.QRCodeControl();
|
||||||
this.tsbServer = new System.Windows.Forms.ToolStripDropDownButton();
|
|
||||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
this.gbMsgTitle = new System.Windows.Forms.GroupBox();
|
this.gbMsgTitle = new System.Windows.Forms.GroupBox();
|
||||||
|
@ -208,6 +209,7 @@
|
||||||
this.menuCopyServer,
|
this.menuCopyServer,
|
||||||
this.menuSetDefaultServer,
|
this.menuSetDefaultServer,
|
||||||
this.toolStripSeparator3,
|
this.toolStripSeparator3,
|
||||||
|
this.menuMoveToGroup,
|
||||||
this.menuMoveTop,
|
this.menuMoveTop,
|
||||||
this.menuMoveUp,
|
this.menuMoveUp,
|
||||||
this.menuMoveDown,
|
this.menuMoveDown,
|
||||||
|
@ -226,6 +228,7 @@
|
||||||
this.menuExport2ShareUrl,
|
this.menuExport2ShareUrl,
|
||||||
this.menuExport2SubContent});
|
this.menuExport2SubContent});
|
||||||
this.cmsLv.Name = "cmsLv";
|
this.cmsLv.Name = "cmsLv";
|
||||||
|
this.cmsLv.OwnerItem = this.tsbServer;
|
||||||
resources.ApplyResources(this.cmsLv, "cmsLv");
|
resources.ApplyResources(this.cmsLv, "cmsLv");
|
||||||
//
|
//
|
||||||
// menuAddVmessServer
|
// menuAddVmessServer
|
||||||
|
@ -310,6 +313,12 @@
|
||||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
resources.ApplyResources(this.toolStripSeparator3, "toolStripSeparator3");
|
resources.ApplyResources(this.toolStripSeparator3, "toolStripSeparator3");
|
||||||
//
|
//
|
||||||
|
// menuMoveToGroup
|
||||||
|
//
|
||||||
|
this.menuMoveToGroup.Name = "menuMoveToGroup";
|
||||||
|
resources.ApplyResources(this.menuMoveToGroup, "menuMoveToGroup");
|
||||||
|
this.menuMoveToGroup.Click += new System.EventHandler(this.menuMoveToGroup_Click);
|
||||||
|
//
|
||||||
// menuMoveTop
|
// menuMoveTop
|
||||||
//
|
//
|
||||||
this.menuMoveTop.Name = "menuMoveTop";
|
this.menuMoveTop.Name = "menuMoveTop";
|
||||||
|
@ -410,6 +419,13 @@
|
||||||
resources.ApplyResources(this.menuExport2SubContent, "menuExport2SubContent");
|
resources.ApplyResources(this.menuExport2SubContent, "menuExport2SubContent");
|
||||||
this.menuExport2SubContent.Click += new System.EventHandler(this.menuExport2SubContent_Click);
|
this.menuExport2SubContent.Click += new System.EventHandler(this.menuExport2SubContent_Click);
|
||||||
//
|
//
|
||||||
|
// tsbServer
|
||||||
|
//
|
||||||
|
this.tsbServer.DropDown = this.cmsLv;
|
||||||
|
this.tsbServer.Image = global::v2rayN.Properties.Resources.server;
|
||||||
|
resources.ApplyResources(this.tsbServer, "tsbServer");
|
||||||
|
this.tsbServer.Name = "tsbServer";
|
||||||
|
//
|
||||||
// tabGroup
|
// tabGroup
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.tabGroup, "tabGroup");
|
resources.ApplyResources(this.tabGroup, "tabGroup");
|
||||||
|
@ -422,13 +438,6 @@
|
||||||
resources.ApplyResources(this.qrCodeControl, "qrCodeControl");
|
resources.ApplyResources(this.qrCodeControl, "qrCodeControl");
|
||||||
this.qrCodeControl.Name = "qrCodeControl";
|
this.qrCodeControl.Name = "qrCodeControl";
|
||||||
//
|
//
|
||||||
// tsbServer
|
|
||||||
//
|
|
||||||
this.tsbServer.DropDown = this.cmsLv;
|
|
||||||
this.tsbServer.Image = global::v2rayN.Properties.Resources.server;
|
|
||||||
resources.ApplyResources(this.tsbServer, "tsbServer");
|
|
||||||
this.tsbServer.Name = "tsbServer";
|
|
||||||
//
|
|
||||||
// splitContainer1
|
// splitContainer1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.splitContainer1, "splitContainer1");
|
resources.ApplyResources(this.splitContainer1, "splitContainer1");
|
||||||
|
@ -1076,6 +1085,7 @@
|
||||||
private System.Windows.Forms.ToolStripMenuItem tsbGlobalHotkeySetting;
|
private System.Windows.Forms.ToolStripMenuItem tsbGlobalHotkeySetting;
|
||||||
private System.Windows.Forms.TabControl tabGroup;
|
private System.Windows.Forms.TabControl tabGroup;
|
||||||
private System.Windows.Forms.ToolStripMenuItem tsbGroupSetting;
|
private System.Windows.Forms.ToolStripMenuItem tsbGroupSetting;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuMoveToGroup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -485,6 +485,23 @@ namespace v2rayN.Forms
|
||||||
}
|
}
|
||||||
|
|
||||||
tabGroup.SelectedIndex = 0;
|
tabGroup.SelectedIndex = 0;
|
||||||
|
|
||||||
|
//menuMoveToGroup
|
||||||
|
menuMoveToGroup.DropDownItems.Clear();
|
||||||
|
|
||||||
|
List<ToolStripMenuItem> lst = new List<ToolStripMenuItem>();
|
||||||
|
foreach (var item in config.groupItem)
|
||||||
|
{
|
||||||
|
string name = item.remarks;
|
||||||
|
|
||||||
|
ToolStripMenuItem ts = new ToolStripMenuItem(name)
|
||||||
|
{
|
||||||
|
Tag = item.id,
|
||||||
|
};
|
||||||
|
ts.Click += new EventHandler(ts_Group_Click);
|
||||||
|
lst.Add(ts);
|
||||||
|
}
|
||||||
|
menuMoveToGroup.DropDownItems.AddRange(lst.ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void tabGroup_SelectedIndexChanged(object sender, EventArgs e)
|
private void tabGroup_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
@ -501,6 +518,29 @@ namespace v2rayN.Forms
|
||||||
|
|
||||||
lvServers.Focus();
|
lvServers.Focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ts_Group_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ToolStripItem ts = (ToolStripItem)sender;
|
||||||
|
var groupIdSelected = Utils.ToString(ts.Tag);
|
||||||
|
|
||||||
|
int index = GetLvSelectedIndex();
|
||||||
|
if (index < 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ConfigHandler.MoveServerToGroup(config, lstSelecteds, groupIdSelected) == 0)
|
||||||
|
{
|
||||||
|
RefreshServers();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region v2ray 操作
|
#region v2ray 操作
|
||||||
|
@ -720,11 +760,11 @@ namespace v2rayN.Forms
|
||||||
|
|
||||||
private void menuPingServer_Click(object sender, EventArgs e)
|
private void menuPingServer_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Speedtest("ping");
|
Speedtest(ESpeedActionType.Ping);
|
||||||
}
|
}
|
||||||
private void menuTcpingServer_Click(object sender, EventArgs e)
|
private void menuTcpingServer_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Speedtest("tcping");
|
Speedtest(ESpeedActionType.Tcping);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void menuRealPingServer_Click(object sender, EventArgs e)
|
private void menuRealPingServer_Click(object sender, EventArgs e)
|
||||||
|
@ -737,7 +777,7 @@ namespace v2rayN.Forms
|
||||||
|
|
||||||
//UI.Show(UIRes.I18N("SpeedServerTips"));
|
//UI.Show(UIRes.I18N("SpeedServerTips"));
|
||||||
|
|
||||||
Speedtest("realping");
|
Speedtest(ESpeedActionType.Realping);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void menuSpeedServer_Click(object sender, EventArgs e)
|
private void menuSpeedServer_Click(object sender, EventArgs e)
|
||||||
|
@ -750,13 +790,13 @@ namespace v2rayN.Forms
|
||||||
|
|
||||||
//UI.Show(UIRes.I18N("SpeedServerTips"));
|
//UI.Show(UIRes.I18N("SpeedServerTips"));
|
||||||
|
|
||||||
Speedtest("speedtest");
|
Speedtest(ESpeedActionType.Speedtest);
|
||||||
}
|
}
|
||||||
private void Speedtest(string actionType)
|
private void Speedtest(ESpeedActionType actionType)
|
||||||
{
|
{
|
||||||
if (GetLvSelectedIndex() < 0) return;
|
if (GetLvSelectedIndex() < 0) return;
|
||||||
ClearTestResult();
|
ClearTestResult();
|
||||||
SpeedtestHandler statistics = new SpeedtestHandler(ref config, ref v2rayHandler, lstSelecteds, actionType, UpdateSpeedtestHandler);
|
SpeedtestHandler statistics = new SpeedtestHandler(ref config, v2rayHandler, lstSelecteds, actionType, UpdateSpeedtestHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void tsbTestMe_Click(object sender, EventArgs e)
|
private void tsbTestMe_Click(object sender, EventArgs e)
|
||||||
|
@ -1280,7 +1320,9 @@ namespace v2rayN.Forms
|
||||||
item.Selected = true;
|
item.Selected = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void menuMoveToGroup_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 系统代理相关
|
#region 系统代理相关
|
||||||
|
|
|
@ -206,6 +206,12 @@
|
||||||
<data name="toolStripSeparator3.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>352, 6</value>
|
<value>352, 6</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="menuMoveToGroup.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>355, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveToGroup.Text" xml:space="preserve">
|
||||||
|
<value>Move to Group</value>
|
||||||
|
</data>
|
||||||
<data name="menuMoveTop.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuMoveTop.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>355, 22</value>
|
<value>355, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -302,8 +308,20 @@
|
||||||
<data name="menuExport2SubContent.Text" xml:space="preserve">
|
<data name="menuExport2SubContent.Text" xml:space="preserve">
|
||||||
<value>Export subscription (base64) share to clipboard</value>
|
<value>Export subscription (base64) share to clipboard</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tsbServer.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||||
|
<value>Magenta</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>64, 53</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbServer.Text" xml:space="preserve">
|
||||||
|
<value>Servers</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbServer.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
|
||||||
|
<value>ImageAboveText</value>
|
||||||
|
</data>
|
||||||
<data name="cmsLv.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmsLv.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>356, 622</value>
|
<value>356, 666</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>cmsLv.Name" xml:space="preserve">
|
<data name=">>cmsLv.Name" xml:space="preserve">
|
||||||
<value>cmsLv</value>
|
<value>cmsLv</value>
|
||||||
|
@ -452,18 +470,6 @@
|
||||||
<data name=">>scMain.ZOrder" xml:space="preserve">
|
<data name=">>scMain.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbServer.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
|
||||||
<value>Magenta</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbServer.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>64, 53</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbServer.Text" xml:space="preserve">
|
|
||||||
<value>Servers</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbServer.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
|
|
||||||
<value>ImageAboveText</value>
|
|
||||||
</data>
|
|
||||||
<data name="splitContainer1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="splitContainer1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Fill</value>
|
<value>Fill</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -549,7 +555,7 @@
|
||||||
<value>Set message filters</value>
|
<value>Set message filters</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmsMsgBox.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmsMsgBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>228, 158</value>
|
<value>228, 136</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>cmsMsgBox.Name" xml:space="preserve">
|
<data name=">>cmsMsgBox.Name" xml:space="preserve">
|
||||||
<value>cmsMsgBox</value>
|
<value>cmsMsgBox</value>
|
||||||
|
@ -1205,6 +1211,12 @@
|
||||||
<data name=">>toolStripSeparator3.Type" xml:space="preserve">
|
<data name=">>toolStripSeparator3.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>menuMoveToGroup.Name" xml:space="preserve">
|
||||||
|
<value>menuMoveToGroup</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuMoveToGroup.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
<data name=">>menuMoveTop.Name" xml:space="preserve">
|
<data name=">>menuMoveTop.Name" xml:space="preserve">
|
||||||
<value>menuMoveTop</value>
|
<value>menuMoveTop</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -573,4 +573,7 @@
|
||||||
<data name="tsbClose.Text" xml:space="preserve">
|
<data name="tsbClose.Text" xml:space="preserve">
|
||||||
<value> 关闭窗口 </value>
|
<value> 关闭窗口 </value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="menuMoveToGroup.Text" xml:space="preserve">
|
||||||
|
<value>移至分组</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -1115,7 +1115,17 @@ namespace v2rayN.Handler
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int MoveServerToGroup(Config config, List<VmessItem> indexs, string groupId)
|
||||||
|
{
|
||||||
|
foreach (var item in indexs)
|
||||||
|
{
|
||||||
|
item.groupId = groupId;
|
||||||
|
}
|
||||||
|
|
||||||
|
ToJsonFile(config);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region UI
|
#region UI
|
||||||
|
|
Loading…
Reference in New Issue