Showing routingMode on status bar

This commit is contained in:
YFdyh000 2020-04-17 12:54:56 +08:00
parent 2708ff7c1a
commit c837ba5482
15 changed files with 2935 additions and 1284 deletions

View file

@ -61,8 +61,8 @@
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.qrCodeControl = new v2rayN.Forms.QRCodeControl();
this.tsbServer = new System.Windows.Forms.ToolStripDropDownButton(); this.tsbServer = new System.Windows.Forms.ToolStripDropDownButton();
this.qrCodeControl = new v2rayN.Forms.QRCodeControl();
this.notifyMain = new System.Windows.Forms.NotifyIcon(this.components); this.notifyMain = new System.Windows.Forms.NotifyIcon(this.components);
this.cmsMain = new System.Windows.Forms.ContextMenuStrip(this.components); this.cmsMain = new System.Windows.Forms.ContextMenuStrip(this.components);
this.menuSysAgentMode = new System.Windows.Forms.ToolStripMenuItem(); this.menuSysAgentMode = new System.Windows.Forms.ToolStripMenuItem();
@ -94,6 +94,7 @@
this.toolSslPacPortLab = new System.Windows.Forms.ToolStripStatusLabel(); this.toolSslPacPortLab = new System.Windows.Forms.ToolStripStatusLabel();
this.toolSslPacPort = new System.Windows.Forms.ToolStripStatusLabel(); this.toolSslPacPort = new System.Windows.Forms.ToolStripStatusLabel();
this.toolSslBlank3 = new System.Windows.Forms.ToolStripStatusLabel(); this.toolSslBlank3 = new System.Windows.Forms.ToolStripStatusLabel();
this.toolSslRouting = new System.Windows.Forms.ToolStripStatusLabel();
this.toolSslServerLatency = new System.Windows.Forms.ToolStripStatusLabel(); this.toolSslServerLatency = new System.Windows.Forms.ToolStripStatusLabel();
this.toolSslServerSpeed = new System.Windows.Forms.ToolStripStatusLabel(); this.toolSslServerSpeed = new System.Windows.Forms.ToolStripStatusLabel();
this.toolSslBlank4 = new System.Windows.Forms.ToolStripStatusLabel(); this.toolSslBlank4 = new System.Windows.Forms.ToolStripStatusLabel();
@ -371,11 +372,6 @@
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);
// //
// qrCodeControl
//
resources.ApplyResources(this.qrCodeControl, "qrCodeControl");
this.qrCodeControl.Name = "qrCodeControl";
//
// tsbServer // tsbServer
// //
this.tsbServer.DropDown = this.cmsLv; this.tsbServer.DropDown = this.cmsLv;
@ -383,6 +379,11 @@
resources.ApplyResources(this.tsbServer, "tsbServer"); resources.ApplyResources(this.tsbServer, "tsbServer");
this.tsbServer.Name = "tsbServer"; this.tsbServer.Name = "tsbServer";
// //
// qrCodeControl
//
resources.ApplyResources(this.qrCodeControl, "qrCodeControl");
this.qrCodeControl.Name = "qrCodeControl";
//
// notifyMain // notifyMain
// //
this.notifyMain.ContextMenuStrip = this.cmsMain; this.notifyMain.ContextMenuStrip = this.cmsMain;
@ -544,6 +545,7 @@
this.toolSslPacPortLab, this.toolSslPacPortLab,
this.toolSslPacPort, this.toolSslPacPort,
this.toolSslBlank3, this.toolSslBlank3,
this.toolSslRouting,
this.toolSslServerLatency, this.toolSslServerLatency,
this.toolSslServerSpeed, this.toolSslServerSpeed,
this.toolSslBlank4}); this.toolSslBlank4});
@ -563,6 +565,7 @@
// //
// toolSslBlank1 // toolSslBlank1
// //
this.toolSslBlank1.AutoToolTip = true;
resources.ApplyResources(this.toolSslBlank1, "toolSslBlank1"); resources.ApplyResources(this.toolSslBlank1, "toolSslBlank1");
this.toolSslBlank1.Name = "toolSslBlank1"; this.toolSslBlank1.Name = "toolSslBlank1";
this.toolSslBlank1.Spring = true; this.toolSslBlank1.Spring = true;
@ -579,6 +582,7 @@
// //
// toolSslBlank2 // toolSslBlank2
// //
this.toolSslBlank2.AutoToolTip = true;
resources.ApplyResources(this.toolSslBlank2, "toolSslBlank2"); resources.ApplyResources(this.toolSslBlank2, "toolSslBlank2");
this.toolSslBlank2.Name = "toolSslBlank2"; this.toolSslBlank2.Name = "toolSslBlank2";
this.toolSslBlank2.Spring = true; this.toolSslBlank2.Spring = true;
@ -595,21 +599,37 @@
// //
// toolSslBlank3 // toolSslBlank3
// //
this.toolSslBlank3.AutoToolTip = true;
resources.ApplyResources(this.toolSslBlank3, "toolSslBlank3"); resources.ApplyResources(this.toolSslBlank3, "toolSslBlank3");
this.toolSslBlank3.Name = "toolSslBlank3"; this.toolSslBlank3.Name = "toolSslBlank3";
this.toolSslBlank3.Spring = true; this.toolSslBlank3.Spring = true;
// //
// toolSslRouting
//
resources.ApplyResources(this.toolSslRouting, "toolSslRouting");
this.toolSslRouting.AutoToolTip = true;
this.toolSslRouting.IsLink = true;
this.toolSslRouting.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline;
this.toolSslRouting.LinkColor = System.Drawing.SystemColors.ControlText;
this.toolSslRouting.Margin = new System.Windows.Forms.Padding(0, 3, 8, 2);
this.toolSslRouting.Name = "toolSslRouting";
this.toolSslRouting.Spring = true;
this.toolSslRouting.Click += new System.EventHandler(this.toolSslRouting_Click);
//
// toolSslServerLatency // toolSslServerLatency
// //
resources.ApplyResources(this.toolSslServerLatency, "toolSslServerLatency"); resources.ApplyResources(this.toolSslServerLatency, "toolSslServerLatency");
this.toolSslServerLatency.IsLink = true;
this.toolSslServerLatency.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline;
this.toolSslServerLatency.LinkColor = System.Drawing.SystemColors.ControlText;
this.toolSslServerLatency.Name = "toolSslServerLatency"; this.toolSslServerLatency.Name = "toolSslServerLatency";
this.toolSslServerLatency.Spring = true; this.toolSslServerLatency.Spring = true;
this.toolSslServerLatency.Click += new System.EventHandler(this.toolSslServerLatency_Click); this.toolSslServerLatency.Click += new System.EventHandler(this.toolSslServerLatency_Click);
// //
// toolSslServerSpeed // toolSslServerSpeed
// //
resources.ApplyResources(this.toolSslServerSpeed, "toolSslServerSpeed");
this.toolSslServerSpeed.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; this.toolSslServerSpeed.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
resources.ApplyResources(this.toolSslServerSpeed, "toolSslServerSpeed");
this.toolSslServerSpeed.Name = "toolSslServerSpeed"; this.toolSslServerSpeed.Name = "toolSslServerSpeed";
this.toolSslServerSpeed.Click += new System.EventHandler(this.toolSslServerSpeed_Click); this.toolSslServerSpeed.Click += new System.EventHandler(this.toolSslServerSpeed_Click);
// //
@ -946,6 +966,7 @@
private System.Windows.Forms.ToolStripButton tsbReload; private System.Windows.Forms.ToolStripButton tsbReload;
private System.Windows.Forms.ToolStripButton tsbQRCodeSwitch; private System.Windows.Forms.ToolStripButton tsbQRCodeSwitch;
private System.Windows.Forms.ToolStripStatusLabel toolSslServerLatency; private System.Windows.Forms.ToolStripStatusLabel toolSslServerLatency;
private System.Windows.Forms.ToolStripStatusLabel toolSslRouting;
} }
} }

View file

@ -368,6 +368,24 @@ namespace v2rayN.Forms
} }
} }
string routingStatus = "";
switch (config.routingMode)
{
case 0:
routingStatus = UIRes.I18N("RoutingModeGlobal");
break;
case 1:
routingStatus = UIRes.I18N("RoutingModeBypassLAN");
break;
case 2:
routingStatus = UIRes.I18N("RoutingModeBypassCN");
break;
case 3:
routingStatus = UIRes.I18N("RoutingModeBypassLANCN");
break;
}
toolSslRouting.Text = routingStatus;
notifyMain.Icon = MainFormHandler.Instance.GetNotifyIcon(config, this.Icon); notifyMain.Icon = MainFormHandler.Instance.GetNotifyIcon(config, this.Icon);
} }
private void ssMain_ItemClicked(object sender, ToolStripItemClickedEventArgs e) private void ssMain_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
@ -762,7 +780,9 @@ namespace v2rayN.Forms
private void tsbOptionSetting_Click(object sender, EventArgs e) private void tsbOptionSetting_Click(object sender, EventArgs e)
{ {
OptionSettingForm fm = new OptionSettingForm(); string tab = "";
if (sender == toolSslRouting) tab = "tabPreDefinedRules";
OptionSettingForm fm = new OptionSettingForm(tab);
if (fm.ShowDialog() == DialogResult.OK) if (fm.ShowDialog() == DialogResult.OK)
{ {
//刷新 //刷新
@ -1588,13 +1608,13 @@ namespace v2rayN.Forms
private async void toolSslServerLatencyRefresh() private async void toolSslServerLatencyRefresh()
{ {
toolSslServerLatencySet("Measuring..."); toolSslServerLatencySet(UIRes.I18N("ServerLatencyChecking"));
string result = await httpProxyTest() + "ms"; string result = await httpProxyTest() + "ms";
toolSslServerLatencySet(result); toolSslServerLatencySet(result);
} }
private void toolSslServerLatencySet(string text = "") private void toolSslServerLatencySet(string text = "")
{ {
toolSslServerLatency.Text = "Latency: " + text; toolSslServerLatency.Text = string.Format(UIRes.I18N("toolSslServerLatency"), text);
} }
private void toolSslServerLatency_Click(object sender, EventArgs e) private void toolSslServerLatency_Click(object sender, EventArgs e)
{ {
@ -1605,5 +1625,10 @@ namespace v2rayN.Forms
{ {
//toolSslServerLatencyRefresh(); //toolSslServerLatencyRefresh();
} }
private void toolSslRouting_Click(object sender, EventArgs e)
{
tsbOptionSetting_Click(toolSslRouting, null);
}
} }
} }

File diff suppressed because it is too large Load diff

View file

@ -363,12 +363,24 @@
<data name="menuTcpingServer.Text" xml:space="preserve"> <data name="menuTcpingServer.Text" xml:space="preserve">
<value>测试服务器延迟Tcping(多选) (Ctrl+O)</value> <value>测试服务器延迟Tcping(多选) (Ctrl+O)</value>
</data> </data>
<data name="menuTestMe.Text" xml:space="preserve">
<value>测试当前服务节点状态</value>
</data>
<data name="menuUpdateSubscriptions.Size" type="System.Drawing.Size, System.Drawing"> <data name="menuUpdateSubscriptions.Size" type="System.Drawing.Size, System.Drawing">
<value>195, 22</value> <value>195, 22</value>
</data> </data>
<data name="menuUpdateSubscriptions.Text" xml:space="preserve"> <data name="menuUpdateSubscriptions.Text" xml:space="preserve">
<value>更新订阅</value> <value>更新订阅</value>
</data> </data>
<data name="toolSslRouting.Text" xml:space="preserve">
<value>路由模式</value>
</data>
<data name="toolSslServerLatency.Text" xml:space="preserve">
<value>延迟:</value>
</data>
<data name="toolSslServerLatency.ToolTipText" xml:space="preserve">
<value>当前 HTTP 代理的访问延迟。</value>
</data>
<data name="toolSslServerSpeed.Text" xml:space="preserve"> <data name="toolSslServerSpeed.Text" xml:space="preserve">
<value>网速显示未启用</value> <value>网速显示未启用</value>
</data> </data>

View file

@ -31,7 +31,7 @@
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionSettingForm)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionSettingForm));
this.btnClose = new System.Windows.Forms.Button(); this.btnClose = new System.Windows.Forms.Button();
this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage(); this.tabBasic = new System.Windows.Forms.TabPage();
this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox1 = new System.Windows.Forms.GroupBox();
this.label16 = new System.Windows.Forms.Label(); this.label16 = new System.Windows.Forms.Label();
this.cmblistenerType = new System.Windows.Forms.ComboBox(); this.cmblistenerType = new System.Windows.Forms.ComboBox();
@ -53,7 +53,7 @@
this.label5 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label();
this.txtlocalPort = new System.Windows.Forms.TextBox(); this.txtlocalPort = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label();
this.tabPage2 = new System.Windows.Forms.TabPage(); this.tabRouting = new System.Windows.Forms.TabPage();
this.groupBox2 = new System.Windows.Forms.GroupBox(); this.groupBox2 = new System.Windows.Forms.GroupBox();
this.tabControl2 = new System.Windows.Forms.TabControl(); this.tabControl2 = new System.Windows.Forms.TabControl();
this.tabPage3 = new System.Windows.Forms.TabPage(); this.tabPage3 = new System.Windows.Forms.TabPage();
@ -62,14 +62,14 @@
this.txtUserdirect = new System.Windows.Forms.TextBox(); this.txtUserdirect = new System.Windows.Forms.TextBox();
this.tabPage5 = new System.Windows.Forms.TabPage(); this.tabPage5 = new System.Windows.Forms.TabPage();
this.txtUserblock = new System.Windows.Forms.TextBox(); this.txtUserblock = new System.Windows.Forms.TextBox();
this.tabPage8 = new System.Windows.Forms.TabPage(); this.tabPreDefinedRules = new System.Windows.Forms.TabPage();
this.cmbroutingMode = new System.Windows.Forms.ComboBox(); this.cmbroutingMode = new System.Windows.Forms.ComboBox();
this.panel3 = new System.Windows.Forms.Panel(); this.panel3 = new System.Windows.Forms.Panel();
this.linkLabelRoutingDoc = new System.Windows.Forms.LinkLabel(); this.linkLabelRoutingDoc = new System.Windows.Forms.LinkLabel();
this.btnSetDefRountingRule = new System.Windows.Forms.Button(); this.btnSetDefRountingRule = new System.Windows.Forms.Button();
this.labRoutingTips = new System.Windows.Forms.Label(); this.labRoutingTips = new System.Windows.Forms.Label();
this.cmbdomainStrategy = new System.Windows.Forms.ComboBox(); this.cmbdomainStrategy = new System.Windows.Forms.ComboBox();
this.tabPage6 = new System.Windows.Forms.TabPage(); this.tabKCP = new System.Windows.Forms.TabPage();
this.chkKcpcongestion = new System.Windows.Forms.CheckBox(); this.chkKcpcongestion = new System.Windows.Forms.CheckBox();
this.txtKcpwriteBufferSize = new System.Windows.Forms.TextBox(); this.txtKcpwriteBufferSize = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label(); this.label10 = new System.Windows.Forms.Label();
@ -83,7 +83,7 @@
this.label7 = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label();
this.txtKcpmtu = new System.Windows.Forms.TextBox(); this.txtKcpmtu = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label();
this.tabPage7 = new System.Windows.Forms.TabPage(); this.tabGUI = new System.Windows.Forms.TabPage();
this.chkKeepOlderDedupl = new System.Windows.Forms.CheckBox(); this.chkKeepOlderDedupl = new System.Windows.Forms.CheckBox();
this.cbFreshrate = new System.Windows.Forms.ComboBox(); this.cbFreshrate = new System.Windows.Forms.ComboBox();
this.lbFreshrate = new System.Windows.Forms.Label(); this.lbFreshrate = new System.Windows.Forms.Label();
@ -92,7 +92,7 @@
this.txturlGFWList = new System.Windows.Forms.TextBox(); this.txturlGFWList = new System.Windows.Forms.TextBox();
this.label13 = new System.Windows.Forms.Label(); this.label13 = new System.Windows.Forms.Label();
this.chkAutoRun = new System.Windows.Forms.CheckBox(); this.chkAutoRun = new System.Windows.Forms.CheckBox();
this.tabPage9 = new System.Windows.Forms.TabPage(); this.tabUserPAC = new System.Windows.Forms.TabPage();
this.txtuserPacRule = new System.Windows.Forms.TextBox(); this.txtuserPacRule = new System.Windows.Forms.TextBox();
this.panel4 = new System.Windows.Forms.Panel(); this.panel4 = new System.Windows.Forms.Panel();
this.label4 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label();
@ -100,19 +100,19 @@
this.btnOK = new System.Windows.Forms.Button(); this.btnOK = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel(); this.panel1 = new System.Windows.Forms.Panel();
this.tabControl1.SuspendLayout(); this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout(); this.tabBasic.SuspendLayout();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
this.tabPage2.SuspendLayout(); this.tabRouting.SuspendLayout();
this.groupBox2.SuspendLayout(); this.groupBox2.SuspendLayout();
this.tabControl2.SuspendLayout(); this.tabControl2.SuspendLayout();
this.tabPage3.SuspendLayout(); this.tabPage3.SuspendLayout();
this.tabPage4.SuspendLayout(); this.tabPage4.SuspendLayout();
this.tabPage5.SuspendLayout(); this.tabPage5.SuspendLayout();
this.tabPage8.SuspendLayout(); this.tabPreDefinedRules.SuspendLayout();
this.panel3.SuspendLayout(); this.panel3.SuspendLayout();
this.tabPage6.SuspendLayout(); this.tabKCP.SuspendLayout();
this.tabPage7.SuspendLayout(); this.tabGUI.SuspendLayout();
this.tabPage9.SuspendLayout(); this.tabUserPAC.SuspendLayout();
this.panel4.SuspendLayout(); this.panel4.SuspendLayout();
this.panel2.SuspendLayout(); this.panel2.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
@ -127,21 +127,21 @@
// //
// tabControl1 // tabControl1
// //
this.tabControl1.Controls.Add(this.tabPage1); this.tabControl1.Controls.Add(this.tabBasic);
this.tabControl1.Controls.Add(this.tabPage2); this.tabControl1.Controls.Add(this.tabRouting);
this.tabControl1.Controls.Add(this.tabPage6); this.tabControl1.Controls.Add(this.tabKCP);
this.tabControl1.Controls.Add(this.tabPage7); this.tabControl1.Controls.Add(this.tabGUI);
this.tabControl1.Controls.Add(this.tabPage9); this.tabControl1.Controls.Add(this.tabUserPAC);
resources.ApplyResources(this.tabControl1, "tabControl1"); resources.ApplyResources(this.tabControl1, "tabControl1");
this.tabControl1.Name = "tabControl1"; this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0; this.tabControl1.SelectedIndex = 0;
// //
// tabPage1 // tabBasic
// //
this.tabPage1.Controls.Add(this.groupBox1); this.tabBasic.Controls.Add(this.groupBox1);
resources.ApplyResources(this.tabPage1, "tabPage1"); resources.ApplyResources(this.tabBasic, "tabBasic");
this.tabPage1.Name = "tabPage1"; this.tabBasic.Name = "tabBasic";
this.tabPage1.UseVisualStyleBackColor = true; this.tabBasic.UseVisualStyleBackColor = true;
// //
// groupBox1 // groupBox1
// //
@ -305,12 +305,12 @@
resources.ApplyResources(this.label2, "label2"); resources.ApplyResources(this.label2, "label2");
this.label2.Name = "label2"; this.label2.Name = "label2";
// //
// tabPage2 // tabRouting
// //
this.tabPage2.Controls.Add(this.groupBox2); this.tabRouting.Controls.Add(this.groupBox2);
resources.ApplyResources(this.tabPage2, "tabPage2"); resources.ApplyResources(this.tabRouting, "tabRouting");
this.tabPage2.Name = "tabPage2"; this.tabRouting.Name = "tabRouting";
this.tabPage2.UseVisualStyleBackColor = true; this.tabRouting.UseVisualStyleBackColor = true;
// //
// groupBox2 // groupBox2
// //
@ -325,7 +325,7 @@
this.tabControl2.Controls.Add(this.tabPage3); this.tabControl2.Controls.Add(this.tabPage3);
this.tabControl2.Controls.Add(this.tabPage4); this.tabControl2.Controls.Add(this.tabPage4);
this.tabControl2.Controls.Add(this.tabPage5); this.tabControl2.Controls.Add(this.tabPage5);
this.tabControl2.Controls.Add(this.tabPage8); this.tabControl2.Controls.Add(this.tabPreDefinedRules);
resources.ApplyResources(this.tabControl2, "tabControl2"); resources.ApplyResources(this.tabControl2, "tabControl2");
this.tabControl2.Name = "tabControl2"; this.tabControl2.Name = "tabControl2";
this.tabControl2.SelectedIndex = 0; this.tabControl2.SelectedIndex = 0;
@ -366,12 +366,12 @@
resources.ApplyResources(this.txtUserblock, "txtUserblock"); resources.ApplyResources(this.txtUserblock, "txtUserblock");
this.txtUserblock.Name = "txtUserblock"; this.txtUserblock.Name = "txtUserblock";
// //
// tabPage8 // tabPreDefinedRules
// //
this.tabPage8.Controls.Add(this.cmbroutingMode); this.tabPreDefinedRules.Controls.Add(this.cmbroutingMode);
resources.ApplyResources(this.tabPage8, "tabPage8"); resources.ApplyResources(this.tabPreDefinedRules, "tabPreDefinedRules");
this.tabPage8.Name = "tabPage8"; this.tabPreDefinedRules.Name = "tabPreDefinedRules";
this.tabPage8.UseVisualStyleBackColor = true; this.tabPreDefinedRules.UseVisualStyleBackColor = true;
// //
// cmbroutingMode // cmbroutingMode
// //
@ -425,24 +425,24 @@
resources.ApplyResources(this.cmbdomainStrategy, "cmbdomainStrategy"); resources.ApplyResources(this.cmbdomainStrategy, "cmbdomainStrategy");
this.cmbdomainStrategy.Name = "cmbdomainStrategy"; this.cmbdomainStrategy.Name = "cmbdomainStrategy";
// //
// tabPage6 // tabKCP
// //
this.tabPage6.Controls.Add(this.chkKcpcongestion); this.tabKCP.Controls.Add(this.chkKcpcongestion);
this.tabPage6.Controls.Add(this.txtKcpwriteBufferSize); this.tabKCP.Controls.Add(this.txtKcpwriteBufferSize);
this.tabPage6.Controls.Add(this.label10); this.tabKCP.Controls.Add(this.label10);
this.tabPage6.Controls.Add(this.txtKcpreadBufferSize); this.tabKCP.Controls.Add(this.txtKcpreadBufferSize);
this.tabPage6.Controls.Add(this.label11); this.tabKCP.Controls.Add(this.label11);
this.tabPage6.Controls.Add(this.txtKcpdownlinkCapacity); this.tabKCP.Controls.Add(this.txtKcpdownlinkCapacity);
this.tabPage6.Controls.Add(this.label8); this.tabKCP.Controls.Add(this.label8);
this.tabPage6.Controls.Add(this.txtKcpuplinkCapacity); this.tabKCP.Controls.Add(this.txtKcpuplinkCapacity);
this.tabPage6.Controls.Add(this.label9); this.tabKCP.Controls.Add(this.label9);
this.tabPage6.Controls.Add(this.txtKcptti); this.tabKCP.Controls.Add(this.txtKcptti);
this.tabPage6.Controls.Add(this.label7); this.tabKCP.Controls.Add(this.label7);
this.tabPage6.Controls.Add(this.txtKcpmtu); this.tabKCP.Controls.Add(this.txtKcpmtu);
this.tabPage6.Controls.Add(this.label6); this.tabKCP.Controls.Add(this.label6);
resources.ApplyResources(this.tabPage6, "tabPage6"); resources.ApplyResources(this.tabKCP, "tabKCP");
this.tabPage6.Name = "tabPage6"; this.tabKCP.Name = "tabKCP";
this.tabPage6.UseVisualStyleBackColor = true; this.tabKCP.UseVisualStyleBackColor = true;
// //
// chkKcpcongestion // chkKcpcongestion
// //
@ -510,19 +510,19 @@
resources.ApplyResources(this.label6, "label6"); resources.ApplyResources(this.label6, "label6");
this.label6.Name = "label6"; this.label6.Name = "label6";
// //
// tabPage7 // tabGUI
// //
this.tabPage7.Controls.Add(this.chkKeepOlderDedupl); this.tabGUI.Controls.Add(this.chkKeepOlderDedupl);
this.tabPage7.Controls.Add(this.cbFreshrate); this.tabGUI.Controls.Add(this.cbFreshrate);
this.tabPage7.Controls.Add(this.lbFreshrate); this.tabGUI.Controls.Add(this.lbFreshrate);
this.tabPage7.Controls.Add(this.chkEnableStatistics); this.tabGUI.Controls.Add(this.chkEnableStatistics);
this.tabPage7.Controls.Add(this.chkAllowLANConn); this.tabGUI.Controls.Add(this.chkAllowLANConn);
this.tabPage7.Controls.Add(this.txturlGFWList); this.tabGUI.Controls.Add(this.txturlGFWList);
this.tabPage7.Controls.Add(this.label13); this.tabGUI.Controls.Add(this.label13);
this.tabPage7.Controls.Add(this.chkAutoRun); this.tabGUI.Controls.Add(this.chkAutoRun);
resources.ApplyResources(this.tabPage7, "tabPage7"); resources.ApplyResources(this.tabGUI, "tabGUI");
this.tabPage7.Name = "tabPage7"; this.tabGUI.Name = "tabGUI";
this.tabPage7.UseVisualStyleBackColor = true; this.tabGUI.UseVisualStyleBackColor = true;
// //
// chkKeepOlderDedupl // chkKeepOlderDedupl
// //
@ -570,13 +570,13 @@
this.chkAutoRun.Name = "chkAutoRun"; this.chkAutoRun.Name = "chkAutoRun";
this.chkAutoRun.UseVisualStyleBackColor = true; this.chkAutoRun.UseVisualStyleBackColor = true;
// //
// tabPage9 // tabUserPAC
// //
this.tabPage9.Controls.Add(this.txtuserPacRule); this.tabUserPAC.Controls.Add(this.txtuserPacRule);
this.tabPage9.Controls.Add(this.panel4); this.tabUserPAC.Controls.Add(this.panel4);
resources.ApplyResources(this.tabPage9, "tabPage9"); resources.ApplyResources(this.tabUserPAC, "tabUserPAC");
this.tabPage9.Name = "tabPage9"; this.tabUserPAC.Name = "tabUserPAC";
this.tabPage9.UseVisualStyleBackColor = true; this.tabUserPAC.UseVisualStyleBackColor = true;
// //
// txtuserPacRule // txtuserPacRule
// //
@ -626,10 +626,10 @@
this.Name = "OptionSettingForm"; this.Name = "OptionSettingForm";
this.Load += new System.EventHandler(this.OptionSettingForm_Load); this.Load += new System.EventHandler(this.OptionSettingForm_Load);
this.tabControl1.ResumeLayout(false); this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false); this.tabBasic.ResumeLayout(false);
this.groupBox1.ResumeLayout(false); this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout(); this.groupBox1.PerformLayout();
this.tabPage2.ResumeLayout(false); this.tabRouting.ResumeLayout(false);
this.groupBox2.ResumeLayout(false); this.groupBox2.ResumeLayout(false);
this.tabControl2.ResumeLayout(false); this.tabControl2.ResumeLayout(false);
this.tabPage3.ResumeLayout(false); this.tabPage3.ResumeLayout(false);
@ -638,15 +638,15 @@
this.tabPage4.PerformLayout(); this.tabPage4.PerformLayout();
this.tabPage5.ResumeLayout(false); this.tabPage5.ResumeLayout(false);
this.tabPage5.PerformLayout(); this.tabPage5.PerformLayout();
this.tabPage8.ResumeLayout(false); this.tabPreDefinedRules.ResumeLayout(false);
this.panel3.ResumeLayout(false); this.panel3.ResumeLayout(false);
this.panel3.PerformLayout(); this.panel3.PerformLayout();
this.tabPage6.ResumeLayout(false); this.tabKCP.ResumeLayout(false);
this.tabPage6.PerformLayout(); this.tabKCP.PerformLayout();
this.tabPage7.ResumeLayout(false); this.tabGUI.ResumeLayout(false);
this.tabPage7.PerformLayout(); this.tabGUI.PerformLayout();
this.tabPage9.ResumeLayout(false); this.tabUserPAC.ResumeLayout(false);
this.tabPage9.PerformLayout(); this.tabUserPAC.PerformLayout();
this.panel4.ResumeLayout(false); this.panel4.ResumeLayout(false);
this.panel2.ResumeLayout(false); this.panel2.ResumeLayout(false);
this.ResumeLayout(false); this.ResumeLayout(false);
@ -666,8 +666,8 @@
private System.Windows.Forms.CheckBox chkudpEnabled; private System.Windows.Forms.CheckBox chkudpEnabled;
private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.TabControl tabControl1; private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage1; private System.Windows.Forms.TabPage tabBasic;
private System.Windows.Forms.TabPage tabPage2; private System.Windows.Forms.TabPage tabRouting;
private System.Windows.Forms.Panel panel2; private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.ComboBox cmbprotocol; private System.Windows.Forms.ComboBox cmbprotocol;
@ -686,7 +686,7 @@
private System.Windows.Forms.TabPage tabPage5; private System.Windows.Forms.TabPage tabPage5;
private System.Windows.Forms.TextBox txtUserdirect; private System.Windows.Forms.TextBox txtUserdirect;
private System.Windows.Forms.TextBox txtUserblock; private System.Windows.Forms.TextBox txtUserblock;
private System.Windows.Forms.TabPage tabPage6; private System.Windows.Forms.TabPage tabKCP;
private System.Windows.Forms.TextBox txtKcpmtu; private System.Windows.Forms.TextBox txtKcpmtu;
private System.Windows.Forms.Label label6; private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txtKcptti; private System.Windows.Forms.TextBox txtKcptti;
@ -700,7 +700,7 @@
private System.Windows.Forms.TextBox txtKcpuplinkCapacity; private System.Windows.Forms.TextBox txtKcpuplinkCapacity;
private System.Windows.Forms.Label label9; private System.Windows.Forms.Label label9;
private System.Windows.Forms.CheckBox chkKcpcongestion; private System.Windows.Forms.CheckBox chkKcpcongestion;
private System.Windows.Forms.TabPage tabPage7; private System.Windows.Forms.TabPage tabGUI;
private System.Windows.Forms.CheckBox chkAutoRun; private System.Windows.Forms.CheckBox chkAutoRun;
private System.Windows.Forms.Label label13; private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox txturlGFWList; private System.Windows.Forms.TextBox txturlGFWList;
@ -718,8 +718,8 @@
private System.Windows.Forms.Label lbFreshrate; private System.Windows.Forms.Label lbFreshrate;
private System.Windows.Forms.Label label16; private System.Windows.Forms.Label label16;
private System.Windows.Forms.ComboBox cmblistenerType; private System.Windows.Forms.ComboBox cmblistenerType;
private System.Windows.Forms.TabPage tabPage8; private System.Windows.Forms.TabPage tabPreDefinedRules;
private System.Windows.Forms.TabPage tabPage9; private System.Windows.Forms.TabPage tabUserPAC;
private System.Windows.Forms.TextBox txtuserPacRule; private System.Windows.Forms.TextBox txtuserPacRule;
private System.Windows.Forms.Panel panel4; private System.Windows.Forms.Panel panel4;
private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label4;

View file

@ -9,8 +9,10 @@ namespace v2rayN.Forms
{ {
public partial class OptionSettingForm : BaseForm public partial class OptionSettingForm : BaseForm
{ {
public OptionSettingForm() private string _tabOpened;
public OptionSettingForm(string tabOpened = "")
{ {
_tabOpened = tabOpened;
InitializeComponent(); InitializeComponent();
} }
@ -25,6 +27,18 @@ namespace v2rayN.Forms
InitGUI(); InitGUI();
InitUserPAC(); InitUserPAC();
var tab = tabControl1.TabPages[_tabOpened];
var tab2 = tabControl2.TabPages[_tabOpened];
if (tab != null)
{
tabControl1.SelectedTab = tab;
}
if (tab2 != null)
{
tabControl1.SelectedTab = tabRouting;
tabControl2.SelectedTab = tab2;
}
} }
/// <summary> /// <summary>
@ -78,8 +92,7 @@ namespace v2rayN.Forms
{ {
//路由 //路由
cmbdomainStrategy.Text = config.domainStrategy; cmbdomainStrategy.Text = config.domainStrategy;
int.TryParse(config.routingMode, out int routingMode); cmbroutingMode.SelectedIndex = config.routingMode;
cmbroutingMode.SelectedIndex = routingMode;
txtUseragent.Text = Utils.List2String(config.useragent, true); txtUseragent.Text = Utils.List2String(config.useragent, true);
txtUserdirect.Text = Utils.List2String(config.userdirect, true); txtUserdirect.Text = Utils.List2String(config.userdirect, true);
@ -276,7 +289,7 @@ namespace v2rayN.Forms
{ {
//路由 //路由
string domainStrategy = cmbdomainStrategy.Text; string domainStrategy = cmbdomainStrategy.Text;
string routingMode = cmbroutingMode.SelectedIndex.ToString(); int routingMode = cmbroutingMode.SelectedIndex;
string useragent = txtUseragent.Text.TrimEx(); string useragent = txtUseragent.Text.TrimEx();
string userdirect = txtUserdirect.Text.TrimEx(); string userdirect = txtUserdirect.Text.TrimEx();

File diff suppressed because it is too large Load diff

View file

@ -312,17 +312,20 @@
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing"> <data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
<value>642, 72</value> <value>642, 72</value>
</data> </data>
<data name="tabBasic.Text" xml:space="preserve">
<value> Core:基础设置 </value>
</data>
<data name="tabControl2.Location" type="System.Drawing.Point, System.Drawing"> <data name="tabControl2.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 89</value> <value>3, 89</value>
</data> </data>
<data name="tabControl2.Size" type="System.Drawing.Size, System.Drawing"> <data name="tabControl2.Size" type="System.Drawing.Size, System.Drawing">
<value>642, 481</value> <value>642, 481</value>
</data> </data>
<data name="tabPage1.Text" xml:space="preserve"> <data name="tabGUI.Text" xml:space="preserve">
<value> Core:基础设置 </value> <value> v2rayN设置 </value>
</data> </data>
<data name="tabPage2.Text" xml:space="preserve"> <data name="tabKCP.Text" xml:space="preserve">
<value> Core:路由设置 </value> <value> Core:KCP设置 </value>
</data> </data>
<data name="tabPage3.Size" type="System.Drawing.Size, System.Drawing"> <data name="tabPage3.Size" type="System.Drawing.Size, System.Drawing">
<value>634, 455</value> <value>634, 455</value>
@ -342,19 +345,16 @@
<data name="tabPage5.Text" xml:space="preserve"> <data name="tabPage5.Text" xml:space="preserve">
<value> 3.阻止的Domain或IP </value> <value> 3.阻止的Domain或IP </value>
</data> </data>
<data name="tabPage6.Text" xml:space="preserve">
<value> Core:KCP设置 </value>
</data>
<data name="tabPage7.Text" xml:space="preserve">
<value> v2rayN设置 </value>
</data>
<data name="tabPage8.Size" type="System.Drawing.Size, System.Drawing"> <data name="tabPage8.Size" type="System.Drawing.Size, System.Drawing">
<value>634, 455</value> <value>634, 455</value>
</data> </data>
<data name="tabPage8.Text" xml:space="preserve"> <data name="tabPreDefinedRules.Text" xml:space="preserve">
<value> 4.预定义规则 </value> <value> 4.预定义规则 </value>
</data> </data>
<data name="tabPage9.Text" xml:space="preserve"> <data name="tabRouting.Text" xml:space="preserve">
<value> Core:路由设置 </value>
</data>
<data name="tabUserPAC.Text" xml:space="preserve">
<value> 用户PAC设置 </value> <value> 用户PAC设置 </value>
</data> </data>
<data name="txtUseragent.Size" type="System.Drawing.Size, System.Drawing"> <data name="txtUseragent.Size" type="System.Drawing.Size, System.Drawing">

View file

@ -85,10 +85,6 @@ namespace v2rayN.Handler
{ {
config.domainStrategy = "IPIfNonMatch"; config.domainStrategy = "IPIfNonMatch";
} }
if (Utils.IsNullOrEmpty(config.routingMode))
{
config.routingMode = "0";
}
if (config.useragent == null) if (config.useragent == null)
{ {
config.useragent = new List<string>(); config.useragent = new List<string>();

View file

@ -145,7 +145,7 @@ namespace v2rayN.Handler
} }
} }
public async Task<int> RunAvailabilityCheck() // alias: isLive public int RunAvailabilityCheck() // alias: isLive
{ {
try try
{ {

View file

@ -195,15 +195,15 @@ namespace v2rayN.Handler
switch (config.routingMode) switch (config.routingMode)
{ {
case "0": case 0:
break; break;
case "1": case 1:
routingGeo("ip", "private", Global.directTag, ref v2rayConfig); routingGeo("ip", "private", Global.directTag, ref v2rayConfig);
break; break;
case "2": case 2:
routingGeo("", "cn", Global.directTag, ref v2rayConfig); routingGeo("", "cn", Global.directTag, ref v2rayConfig);
break; break;
case "3": case 3:
routingGeo("ip", "private", Global.directTag, ref v2rayConfig); routingGeo("ip", "private", Global.directTag, ref v2rayConfig);
routingGeo("", "cn", Global.directTag, ref v2rayConfig); routingGeo("", "cn", Global.directTag, ref v2rayConfig);
break; break;

View file

@ -71,7 +71,7 @@ namespace v2rayN.Mode
/// <summary> /// <summary>
/// 路由模式 /// 路由模式
/// </summary> /// </summary>
public string routingMode public int routingMode
{ {
get; set; get; set;
} }

View file

@ -690,6 +690,42 @@ namespace v2rayN.Resx {
} }
} }
/// <summary>
/// 查找类似 Bypass CN 的本地化字符串。
/// </summary>
internal static string RoutingModeBypassCN {
get {
return ResourceManager.GetString("RoutingModeBypassCN", resourceCulture);
}
}
/// <summary>
/// 查找类似 Bypass LAN 的本地化字符串。
/// </summary>
internal static string RoutingModeBypassLAN {
get {
return ResourceManager.GetString("RoutingModeBypassLAN", resourceCulture);
}
}
/// <summary>
/// 查找类似 Bypass LAN+CN 的本地化字符串。
/// </summary>
internal static string RoutingModeBypassLANCN {
get {
return ResourceManager.GetString("RoutingModeBypassLANCN", resourceCulture);
}
}
/// <summary>
/// 查找类似 Global 的本地化字符串。
/// </summary>
internal static string RoutingModeGlobal {
get {
return ResourceManager.GetString("RoutingModeGlobal", resourceCulture);
}
}
/// <summary> /// <summary>
/// 查找类似 The client configuration file is saved at: {0} 的本地化字符串。 /// 查找类似 The client configuration file is saved at: {0} 的本地化字符串。
/// </summary> /// </summary>
@ -708,6 +744,15 @@ namespace v2rayN.Resx {
} }
} }
/// <summary>
/// 查找类似 ... 的本地化字符串。
/// </summary>
internal static string ServerLatencyChecking {
get {
return ResourceManager.GetString("ServerLatencyChecking", resourceCulture);
}
}
/// <summary> /// <summary>
/// 查找类似 SlowFresh 的本地化字符串。 /// 查找类似 SlowFresh 的本地化字符串。
/// </summary> /// </summary>
@ -789,5 +834,14 @@ namespace v2rayN.Resx {
return ResourceManager.GetString("TestMeOutput", resourceCulture); return ResourceManager.GetString("TestMeOutput", resourceCulture);
} }
} }
/// <summary>
/// 查找类似 Latency: {0} 的本地化字符串。
/// </summary>
internal static string toolSslServerLatency {
get {
return ResourceManager.GetString("toolSslServerLatency", resourceCulture);
}
}
} }
} }

View file

@ -327,12 +327,27 @@
<data name="RemoveServer" xml:space="preserve"> <data name="RemoveServer" xml:space="preserve">
<value>Are you sure to remove the server?</value> <value>Are you sure to remove the server?</value>
</data> </data>
<data name="RoutingModeBypassCN" xml:space="preserve">
<value>Bypass CN</value>
</data>
<data name="RoutingModeBypassLAN" xml:space="preserve">
<value>Bypass LAN</value>
</data>
<data name="RoutingModeBypassLANCN" xml:space="preserve">
<value>Bypass LAN+CN</value>
</data>
<data name="RoutingModeGlobal" xml:space="preserve">
<value>Global</value>
</data>
<data name="SaveClientConfigurationIn" xml:space="preserve"> <data name="SaveClientConfigurationIn" xml:space="preserve">
<value>The client configuration file is saved at: {0}</value> <value>The client configuration file is saved at: {0}</value>
</data> </data>
<data name="SaveServerConfigurationIn" xml:space="preserve"> <data name="SaveServerConfigurationIn" xml:space="preserve">
<value>The server configuration file is saved at: {0}</value> <value>The server configuration file is saved at: {0}</value>
</data> </data>
<data name="ServerLatencyChecking" xml:space="preserve">
<value>...</value>
</data>
<data name="SlowFresh" xml:space="preserve"> <data name="SlowFresh" xml:space="preserve">
<value>SlowFresh</value> <value>SlowFresh</value>
</data> </data>
@ -361,4 +376,7 @@
<data name="TestMeOutput" xml:space="preserve"> <data name="TestMeOutput" xml:space="preserve">
<value>The ping of current service: {0}</value> <value>The ping of current service: {0}</value>
</data> </data>
<data name="toolSslServerLatency" xml:space="preserve">
<value>Latency: {0}</value>
</data>
</root> </root>

View file

@ -327,12 +327,27 @@
<data name="RemoveServer" xml:space="preserve"> <data name="RemoveServer" xml:space="preserve">
<value>是否确定移除服务器?</value> <value>是否确定移除服务器?</value>
</data> </data>
<data name="RoutingModeBypassCN" xml:space="preserve">
<value>绕过大陆</value>
</data>
<data name="RoutingModeBypassLAN" xml:space="preserve">
<value>绕过局域网</value>
</data>
<data name="RoutingModeBypassLANCN" xml:space="preserve">
<value>绕过局域网和大陆</value>
</data>
<data name="RoutingModeGlobal" xml:space="preserve">
<value>路由: 全局</value>
</data>
<data name="SaveClientConfigurationIn" xml:space="preserve"> <data name="SaveClientConfigurationIn" xml:space="preserve">
<value>客户端配置文件保存在:{0}</value> <value>客户端配置文件保存在:{0}</value>
</data> </data>
<data name="SaveServerConfigurationIn" xml:space="preserve"> <data name="SaveServerConfigurationIn" xml:space="preserve">
<value>服务端配置文件保存在:{0}</value> <value>服务端配置文件保存在:{0}</value>
</data> </data>
<data name="ServerLatencyChecking" xml:space="preserve">
<value>...</value>
</data>
<data name="SlowFresh" xml:space="preserve"> <data name="SlowFresh" xml:space="preserve">
<value>慢</value> <value>慢</value>
</data> </data>
@ -361,4 +376,7 @@
<data name="TestMeOutput" xml:space="preserve"> <data name="TestMeOutput" xml:space="preserve">
<value>当前服务的真连接延迟: {0}</value> <value>当前服务的真连接延迟: {0}</value>
</data> </data>
<data name="toolSslServerLatency" xml:space="preserve">
<value>延迟: {0}</value>
</data>
</root> </root>