support router working mode

This commit is contained in:
2dust
2022-06-05 19:56:39 +08:00
parent f348f8eaf7
commit 3145938380
10 changed files with 390 additions and 217 deletions

View File

@@ -38,10 +38,10 @@
this.menuScanScreen = new System.Windows.Forms.ToolStripMenuItem();
this.menuExport2Clipboard = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.tsbSubUpdateSelected = new System.Windows.Forms.ToolStripMenuItem();
this.tsbSubUpdate = new System.Windows.Forms.ToolStripMenuItem();
this.tsbSubUpdateViaProxySelected = new System.Windows.Forms.ToolStripMenuItem();
this.tsbSubUpdateSelected = new System.Windows.Forms.ToolStripMenuItem();
this.tsbSubUpdateViaProxy = new System.Windows.Forms.ToolStripMenuItem();
this.tsbSubUpdateViaProxySelected = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.menuRemoveProfile = new System.Windows.Forms.ToolStripMenuItem();
this.menuCopyProfile = new System.Windows.Forms.ToolStripMenuItem();
@@ -54,8 +54,8 @@
this.menuSelectAll = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
this.menuClearProfileStatistics = new System.Windows.Forms.ToolStripMenuItem();
this.qrCodeControl = new clashN.Forms.QRCodeControl();
this.tsbProfile = new System.Windows.Forms.ToolStripDropDownButton();
this.qrCodeControl = new clashN.Forms.QRCodeControl();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.mainMsgControl = new clashN.Forms.MainMsgControl();
@@ -65,7 +65,11 @@
this.menuKeepClear = new System.Windows.Forms.ToolStripMenuItem();
this.menuGlobal = new System.Windows.Forms.ToolStripMenuItem();
this.menuKeepNothing = new System.Windows.Forms.ToolStripMenuItem();
this.menuRoutings = new System.Windows.Forms.ToolStripMenuItem();
this.menuRuleMode = new System.Windows.Forms.ToolStripMenuItem();
this.menuModeRule = new System.Windows.Forms.ToolStripMenuItem();
this.menuModeGlobal = new System.Windows.Forms.ToolStripMenuItem();
this.menuModeDirect = new System.Windows.Forms.ToolStripMenuItem();
this.menuModeKeep = new System.Windows.Forms.ToolStripMenuItem();
this.menuProfiles = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator();
this.menuScanScreen2 = new System.Windows.Forms.ToolStripMenuItem();
@@ -208,23 +212,17 @@
this.toolStripSeparator4.Name = "toolStripSeparator4";
resources.ApplyResources(this.toolStripSeparator4, "toolStripSeparator4");
//
// tsbSubUpdateSelected
//
this.tsbSubUpdateSelected.Name = "tsbSubUpdateSelected";
resources.ApplyResources(this.tsbSubUpdateSelected, "tsbSubUpdateSelected");
this.tsbSubUpdateSelected.Click += new System.EventHandler(this.tsbSubUpdateSelected_Click);
//
// tsbSubUpdate
//
this.tsbSubUpdate.Name = "tsbSubUpdate";
resources.ApplyResources(this.tsbSubUpdate, "tsbSubUpdate");
this.tsbSubUpdate.Click += new System.EventHandler(this.tsbSubUpdate_Click);
//
// tsbSubUpdateViaProxySelected
// tsbSubUpdateSelected
//
this.tsbSubUpdateViaProxySelected.Name = "tsbSubUpdateViaProxySelected";
resources.ApplyResources(this.tsbSubUpdateViaProxySelected, "tsbSubUpdateViaProxySelected");
this.tsbSubUpdateViaProxySelected.Click += new System.EventHandler(this.tsbSubUpdateViaProxySelected_Click);
this.tsbSubUpdateSelected.Name = "tsbSubUpdateSelected";
resources.ApplyResources(this.tsbSubUpdateSelected, "tsbSubUpdateSelected");
this.tsbSubUpdateSelected.Click += new System.EventHandler(this.tsbSubUpdateSelected_Click);
//
// tsbSubUpdateViaProxy
//
@@ -232,6 +230,12 @@
resources.ApplyResources(this.tsbSubUpdateViaProxy, "tsbSubUpdateViaProxy");
this.tsbSubUpdateViaProxy.Click += new System.EventHandler(this.tsbSubUpdateViaProxy_Click);
//
// tsbSubUpdateViaProxySelected
//
this.tsbSubUpdateViaProxySelected.Name = "tsbSubUpdateViaProxySelected";
resources.ApplyResources(this.tsbSubUpdateViaProxySelected, "tsbSubUpdateViaProxySelected");
this.tsbSubUpdateViaProxySelected.Click += new System.EventHandler(this.tsbSubUpdateViaProxySelected_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
@@ -301,11 +305,6 @@
resources.ApplyResources(this.menuClearProfileStatistics, "menuClearProfileStatistics");
this.menuClearProfileStatistics.Click += new System.EventHandler(this.menuClearStatistic_Click);
//
// qrCodeControl
//
resources.ApplyResources(this.qrCodeControl, "qrCodeControl");
this.qrCodeControl.Name = "qrCodeControl";
//
// tsbProfile
//
this.tsbProfile.DropDown = this.cmsLv;
@@ -313,6 +312,11 @@
resources.ApplyResources(this.tsbProfile, "tsbProfile");
this.tsbProfile.Name = "tsbProfile";
//
// qrCodeControl
//
resources.ApplyResources(this.qrCodeControl, "qrCodeControl");
this.qrCodeControl.Name = "qrCodeControl";
//
// splitContainer1
//
resources.ApplyResources(this.splitContainer1, "splitContainer1");
@@ -350,7 +354,7 @@
resources.ApplyResources(this.cmsMain, "cmsMain");
this.cmsMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuSysAgentMode,
this.menuRoutings,
this.menuRuleMode,
this.menuProfiles,
this.toolStripSeparator13,
this.menuScanScreen2,
@@ -390,10 +394,39 @@
resources.ApplyResources(this.menuKeepNothing, "menuKeepNothing");
this.menuKeepNothing.Click += new System.EventHandler(this.menuKeepNothing_Click);
//
// menuRoutings
// menuRuleMode
//
this.menuRoutings.Name = "menuRoutings";
resources.ApplyResources(this.menuRoutings, "menuRoutings");
this.menuRuleMode.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuModeRule,
this.menuModeGlobal,
this.menuModeDirect,
this.menuModeKeep});
this.menuRuleMode.Name = "menuRuleMode";
resources.ApplyResources(this.menuRuleMode, "menuRuleMode");
//
// menuModeRule
//
this.menuModeRule.Name = "menuModeRule";
resources.ApplyResources(this.menuModeRule, "menuModeRule");
this.menuModeRule.Click += new System.EventHandler(this.menuModeRule_Click);
//
// menuModeGlobal
//
this.menuModeGlobal.Name = "menuModeGlobal";
resources.ApplyResources(this.menuModeGlobal, "menuModeGlobal");
this.menuModeGlobal.Click += new System.EventHandler(this.menuModeGlobal_Click);
//
// menuModeDirect
//
this.menuModeDirect.Name = "menuModeDirect";
resources.ApplyResources(this.menuModeDirect, "menuModeDirect");
this.menuModeDirect.Click += new System.EventHandler(this.menuModeDirect_Click);
//
// menuModeKeep
//
this.menuModeKeep.Name = "menuModeKeep";
resources.ApplyResources(this.menuModeKeep, "menuModeKeep");
this.menuModeKeep.Click += new System.EventHandler(this.menuModeKeep_Click);
//
// menuProfiles
//
@@ -730,7 +763,7 @@
private System.Windows.Forms.ToolStripMenuItem tsbOptionSetting;
private System.Windows.Forms.ToolStripMenuItem tsbCheckUpdateMetaCore;
private System.Windows.Forms.ToolStripMenuItem menuClearProfileStatistics;
private System.Windows.Forms.ToolStripMenuItem menuRoutings;
private System.Windows.Forms.ToolStripMenuItem menuRuleMode;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator13;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator14;
private System.Windows.Forms.ToolStripMenuItem tsbBackupGuiNConfig;
@@ -746,6 +779,10 @@
private MainMsgControl mainMsgControl;
private System.Windows.Forms.ToolStripMenuItem tsbSubUpdateSelected;
private System.Windows.Forms.ToolStripMenuItem tsbSubUpdateViaProxySelected;
private System.Windows.Forms.ToolStripMenuItem menuModeKeep;
private System.Windows.Forms.ToolStripMenuItem menuModeRule;
private System.Windows.Forms.ToolStripMenuItem menuModeGlobal;
private System.Windows.Forms.ToolStripMenuItem menuModeDirect;
}
}

View File

@@ -451,6 +451,7 @@ namespace clashN.Forms
statistics?.SaveToFile();
ChangePACButtonStatus(config.sysProxyType);
SetRuleMode(config.ruleMode);
this.BeginInvoke(new Action(() =>
{
@@ -1166,5 +1167,48 @@ namespace clashN.Forms
#endregion
#region Rule mode
private void menuModeRule_Click(object sender, EventArgs e)
{
SetRuleMode(ERuleMode.Rule);
}
private void menuModeGlobal_Click(object sender, EventArgs e)
{
SetRuleMode(ERuleMode.Global);
}
private void menuModeDirect_Click(object sender, EventArgs e)
{
SetRuleMode(ERuleMode.Direct);
}
private void menuModeKeep_Click(object sender, EventArgs e)
{
SetRuleMode(ERuleMode.Unchanged);
}
private void SetRuleMode(ERuleMode mode)
{
for (int k = 0; k < menuRuleMode.DropDownItems.Count; k++)
{
ToolStripMenuItem item = ((ToolStripMenuItem)menuRuleMode.DropDownItems[k]);
item.Checked = ((int)mode == k);
}
mainMsgControl.SetToolSslInfo("routing", mode.ToString());
if (config.ruleMode == mode)
{
return;
}
config.ruleMode = mode;
Global.reloadCore = true;
_ = LoadCore();
ConfigHandler.SaveConfig(ref config, false);
}
#endregion
}
}

View File

@@ -195,7 +195,7 @@
<value>ImageAboveText</value>
</data>
<data name="cmsLv.Size" type="System.Drawing.Size, System.Drawing">
<value>344, 424</value>
<value>344, 402</value>
</data>
<data name="&gt;&gt;cmsLv.Name" xml:space="preserve">
<value>cmsLv</value>
@@ -438,38 +438,41 @@
<data name="cmsMain.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="menuKeepClear.Size" type="System.Drawing.Size, System.Drawing">
<value>243, 22</value>
</data>
<data name="menuKeepClear.Text" xml:space="preserve">
<value>Clear system proxy</value>
</data>
<data name="menuGlobal.Size" type="System.Drawing.Size, System.Drawing">
<value>243, 22</value>
</data>
<data name="menuGlobal.Text" xml:space="preserve">
<value>Set system proxy</value>
</data>
<data name="menuKeepNothing.Size" type="System.Drawing.Size, System.Drawing">
<value>243, 22</value>
</data>
<data name="menuKeepNothing.Text" xml:space="preserve">
<value>Do not change system proxy</value>
</data>
<data name="menuSysAgentMode.Size" type="System.Drawing.Size, System.Drawing">
<value>277, 22</value>
</data>
<data name="menuSysAgentMode.Text" xml:space="preserve">
<value>System proxy</value>
</data>
<data name="menuRoutings.Size" type="System.Drawing.Size, System.Drawing">
<data name="menuModeRule.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 22</value>
</data>
<data name="menuModeRule.Text" xml:space="preserve">
<value>Rule</value>
</data>
<data name="menuModeGlobal.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 22</value>
</data>
<data name="menuModeGlobal.Text" xml:space="preserve">
<value>Global</value>
</data>
<data name="menuModeDirect.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 22</value>
</data>
<data name="menuModeDirect.Text" xml:space="preserve">
<value>Direct</value>
</data>
<data name="menuModeKeep.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 22</value>
</data>
<data name="menuModeKeep.Text" xml:space="preserve">
<value>Do not change</value>
</data>
<data name="menuRuleMode.Size" type="System.Drawing.Size, System.Drawing">
<value>277, 22</value>
</data>
<data name="menuRoutings.Text" xml:space="preserve">
<value>Routing</value>
</data>
<data name="menuRoutings.Visible" type="System.Boolean, mscorlib">
<value>False</value>
<data name="menuRuleMode.Text" xml:space="preserve">
<value>Rule mode</value>
</data>
<data name="menuProfiles.Size" type="System.Drawing.Size, System.Drawing">
<value>277, 22</value>
@@ -508,7 +511,7 @@
<value>Exit</value>
</data>
<data name="cmsMain.Size" type="System.Drawing.Size, System.Drawing">
<value>278, 170</value>
<value>278, 192</value>
</data>
<data name="&gt;&gt;cmsMain.Name" xml:space="preserve">
<value>cmsMain</value>
@@ -522,6 +525,24 @@
<data name="notifyMain.Visible" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="menuKeepClear.Size" type="System.Drawing.Size, System.Drawing">
<value>243, 22</value>
</data>
<data name="menuKeepClear.Text" xml:space="preserve">
<value>Clear system proxy</value>
</data>
<data name="menuGlobal.Size" type="System.Drawing.Size, System.Drawing">
<value>243, 22</value>
</data>
<data name="menuGlobal.Text" xml:space="preserve">
<value>Set system proxy</value>
</data>
<data name="menuKeepNothing.Size" type="System.Drawing.Size, System.Drawing">
<value>243, 22</value>
</data>
<data name="menuKeepNothing.Text" xml:space="preserve">
<value>Do not change system proxy</value>
</data>
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
</data>
@@ -549,6 +570,27 @@
<metadata name="tsMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>339, 20</value>
</metadata>
<data name="tsMain.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tsMain.Size" type="System.Drawing.Size, System.Drawing">
<value>784, 56</value>
</data>
<data name="tsMain.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;tsMain.Name" xml:space="preserve">
<value>tsMain</value>
</data>
<data name="&gt;&gt;tsMain.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStrip, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsMain.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tsMain.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="tsbCurrentProxies.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
@@ -582,6 +624,18 @@
<data name="toolStripSeparator8.Size" type="System.Drawing.Size, System.Drawing">
<value>6, 56</value>
</data>
<data name="tsbSetting.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsbSetting.Size" type="System.Drawing.Size, System.Drawing">
<value>67, 53</value>
</data>
<data name="tsbSetting.Text" xml:space="preserve">
<value>Settings</value>
</data>
<data name="tsbSetting.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageAboveText</value>
</data>
<data name="tsbOptionSetting.Size" type="System.Drawing.Size, System.Drawing">
<value>195, 22</value>
</data>
@@ -603,18 +657,6 @@
<data name="tsbBackupGuiNConfig.Text" xml:space="preserve">
<value>BackupGuiConfig</value>
</data>
<data name="tsbSetting.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsbSetting.Size" type="System.Drawing.Size, System.Drawing">
<value>67, 53</value>
</data>
<data name="tsbSetting.Text" xml:space="preserve">
<value>Settings</value>
</data>
<data name="tsbSetting.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageAboveText</value>
</data>
<data name="toolStripSeparator5.Size" type="System.Drawing.Size, System.Drawing">
<value>6, 56</value>
</data>
@@ -636,6 +678,18 @@
<data name="toolStripSeparator7.Size" type="System.Drawing.Size, System.Drawing">
<value>6, 56</value>
</data>
<data name="tsbCheckUpdate.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsbCheckUpdate.Size" type="System.Drawing.Size, System.Drawing">
<value>128, 53</value>
</data>
<data name="tsbCheckUpdate.Text" xml:space="preserve">
<value>Check for updates</value>
</data>
<data name="tsbCheckUpdate.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageAboveText</value>
</data>
<data name="tsbCheckUpdateN.Size" type="System.Drawing.Size, System.Drawing">
<value>248, 22</value>
</data>
@@ -663,21 +717,21 @@
<data name="tsbCheckUpdateGeo.Text" xml:space="preserve">
<value>Update Geo files</value>
</data>
<data name="tsbCheckUpdate.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsbCheckUpdate.Size" type="System.Drawing.Size, System.Drawing">
<value>128, 53</value>
</data>
<data name="tsbCheckUpdate.Text" xml:space="preserve">
<value>Check for updates</value>
</data>
<data name="tsbCheckUpdate.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageAboveText</value>
</data>
<data name="toolStripSeparator10.Size" type="System.Drawing.Size, System.Drawing">
<value>6, 56</value>
</data>
<data name="tsbHelp.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsbHelp.Size" type="System.Drawing.Size, System.Drawing">
<value>48, 53</value>
</data>
<data name="tsbHelp.Text" xml:space="preserve">
<value>Help</value>
</data>
<data name="tsbHelp.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageAboveText</value>
</data>
<data name="tsbAbout.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
@@ -699,18 +753,6 @@
<data name="tsbLanguageZhHans.Text" xml:space="preserve">
<value>语言-[中文简体]</value>
</data>
<data name="tsbHelp.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsbHelp.Size" type="System.Drawing.Size, System.Drawing">
<value>48, 53</value>
</data>
<data name="tsbHelp.Text" xml:space="preserve">
<value>Help</value>
</data>
<data name="tsbHelp.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageAboveText</value>
</data>
<data name="tsbPromotion.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
@@ -738,27 +780,6 @@
<data name="tsbClose.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageAboveText</value>
</data>
<data name="tsMain.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tsMain.Size" type="System.Drawing.Size, System.Drawing">
<value>784, 56</value>
</data>
<data name="tsMain.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;tsMain.Name" xml:space="preserve">
<value>tsMain</value>
</data>
<data name="&gt;&gt;tsMain.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStrip, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsMain.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tsMain.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -807,22 +828,16 @@
<data name="&gt;&gt;toolStripSeparator4.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsbSubUpdateSelected.Name" xml:space="preserve">
<value>tsbSubUpdateSelected</value>
</data>
<data name="&gt;&gt;tsbSubUpdateSelected.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsbSubUpdate.Name" xml:space="preserve">
<value>tsbSubUpdate</value>
</data>
<data name="&gt;&gt;tsbSubUpdate.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsbSubUpdateViaProxySelected.Name" xml:space="preserve">
<value>tsbSubUpdateViaProxySelected</value>
<data name="&gt;&gt;tsbSubUpdateSelected.Name" xml:space="preserve">
<value>tsbSubUpdateSelected</value>
</data>
<data name="&gt;&gt;tsbSubUpdateViaProxySelected.Type" xml:space="preserve">
<data name="&gt;&gt;tsbSubUpdateSelected.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsbSubUpdateViaProxy.Name" xml:space="preserve">
@@ -831,6 +846,12 @@
<data name="&gt;&gt;tsbSubUpdateViaProxy.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsbSubUpdateViaProxySelected.Name" xml:space="preserve">
<value>tsbSubUpdateViaProxySelected</value>
</data>
<data name="&gt;&gt;tsbSubUpdateViaProxySelected.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;toolStripSeparator1.Name" xml:space="preserve">
<value>toolStripSeparator1</value>
</data>
@@ -939,10 +960,34 @@
<data name="&gt;&gt;menuKeepNothing.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;menuRoutings.Name" xml:space="preserve">
<value>menuRoutings</value>
<data name="&gt;&gt;menuRuleMode.Name" xml:space="preserve">
<value>menuRuleMode</value>
</data>
<data name="&gt;&gt;menuRoutings.Type" xml:space="preserve">
<data name="&gt;&gt;menuRuleMode.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;menuModeRule.Name" xml:space="preserve">
<value>menuModeRule</value>
</data>
<data name="&gt;&gt;menuModeRule.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;menuModeGlobal.Name" xml:space="preserve">
<value>menuModeGlobal</value>
</data>
<data name="&gt;&gt;menuModeGlobal.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;menuModeDirect.Name" xml:space="preserve">
<value>menuModeDirect</value>
</data>
<data name="&gt;&gt;menuModeDirect.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;menuModeKeep.Name" xml:space="preserve">
<value>menuModeKeep</value>
</data>
<data name="&gt;&gt;menuModeKeep.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;menuProfiles.Name" xml:space="preserve">

View File

@@ -324,8 +324,8 @@
<data name="menuRoutings.Size" type="System.Drawing.Size, System.Drawing">
<value>260, 22</value>
</data>
<data name="menuRoutings.Text" xml:space="preserve">
<value>路由</value>
<data name="menuRuleMode.Text" xml:space="preserve">
<value>规则模式</value>
</data>
<data name="menuProfiles.Size" type="System.Drawing.Size, System.Drawing">
<value>260, 22</value>
@@ -477,4 +477,16 @@
<data name="tsbSubUpdateViaProxySelected.Text" xml:space="preserve">
<value>多选更新订阅(通过代理)</value>
</data>
<data name="menuModeDirect.Text" xml:space="preserve">
<value>直连</value>
</data>
<data name="menuModeGlobal.Text" xml:space="preserve">
<value>全局</value>
</data>
<data name="menuModeKeep.Text" xml:space="preserve">
<value>不变(随原配置)</value>
</data>
<data name="menuModeRule.Text" xml:space="preserve">
<value>规则</value>
</data>
</root>

View File

@@ -42,7 +42,7 @@ namespace clashN.Forms
this.ssMain = new System.Windows.Forms.StatusStrip();
this.toolSslInboundInfo = new System.Windows.Forms.ToolStripStatusLabel();
this.toolSslBlank1 = new System.Windows.Forms.ToolStripStatusLabel();
this.toolSslRoutingRule = new System.Windows.Forms.ToolStripStatusLabel();
this.toolSslRuleMode = new System.Windows.Forms.ToolStripStatusLabel();
this.toolSslBlank2 = new System.Windows.Forms.ToolStripStatusLabel();
this.toolSslServerSpeed = new System.Windows.Forms.ToolStripStatusLabel();
this.toolSslBlank4 = new System.Windows.Forms.ToolStripStatusLabel();
@@ -117,7 +117,7 @@ namespace clashN.Forms
this.ssMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolSslInboundInfo,
this.toolSslBlank1,
this.toolSslRoutingRule,
this.toolSslRuleMode,
this.toolSslBlank2,
this.toolSslServerSpeed,
this.toolSslBlank4});
@@ -136,10 +136,10 @@ namespace clashN.Forms
this.toolSslBlank1.Name = "toolSslBlank1";
this.toolSslBlank1.Spring = true;
//
// toolSslRoutingRule
// toolSslRuleMode
//
this.toolSslRoutingRule.Name = "toolSslRoutingRule";
resources.ApplyResources(this.toolSslRoutingRule, "toolSslRoutingRule");
this.toolSslRuleMode.Name = "toolSslRuleMode";
resources.ApplyResources(this.toolSslRuleMode, "toolSslRuleMode");
//
// toolSslBlank2
//
@@ -187,7 +187,7 @@ namespace clashN.Forms
private System.Windows.Forms.StatusStrip ssMain;
private System.Windows.Forms.ToolStripStatusLabel toolSslInboundInfo;
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank1;
private System.Windows.Forms.ToolStripStatusLabel toolSslRoutingRule;
private System.Windows.Forms.ToolStripStatusLabel toolSslRuleMode;
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank2;
private System.Windows.Forms.ToolStripStatusLabel toolSslServerSpeed;
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank4;

View File

@@ -97,7 +97,7 @@ namespace clashN.Forms
toolSslInboundInfo.Text = value;
break;
case "routing":
toolSslRoutingRule.Text = value;
toolSslRuleMode.Text = value;
break;
}

View File

@@ -61,38 +61,8 @@
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="menuMsgBoxSelectAll.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 22</value>
</data>
<data name="menuMsgBoxSelectAll.Text" xml:space="preserve">
<value>Select All (Ctrl+A)</value>
</data>
<data name="menuMsgBoxCopy.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 22</value>
</data>
<data name="menuMsgBoxCopy.Text" xml:space="preserve">
<value>Copy (Ctrl+C)</value>
</data>
<data name="menuMsgBoxCopyAll.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 22</value>
</data>
<data name="menuMsgBoxCopyAll.Text" xml:space="preserve">
<value>Copy All</value>
</data>
<data name="menuMsgBoxClear.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 22</value>
</data>
<data name="menuMsgBoxClear.Text" xml:space="preserve">
<value>Clear All</value>
</data>
<data name="menuMsgBoxFilter.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 22</value>
</data>
<data name="menuMsgBoxFilter.Text" xml:space="preserve">
<value>Set message filters</value>
</data>
<data name="cmsMsgBox.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 136</value>
<value>187, 114</value>
</data>
<data name="&gt;&gt;cmsMsgBox.Name" xml:space="preserve">
<value>cmsMsgBox</value>
@@ -139,63 +109,39 @@
<data name="&gt;&gt;txtMsgBox.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="menuMsgBoxSelectAll.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 22</value>
</data>
<data name="menuMsgBoxSelectAll.Text" xml:space="preserve">
<value>Select All (Ctrl+A)</value>
</data>
<data name="menuMsgBoxCopy.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 22</value>
</data>
<data name="menuMsgBoxCopy.Text" xml:space="preserve">
<value>Copy (Ctrl+C)</value>
</data>
<data name="menuMsgBoxCopyAll.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 22</value>
</data>
<data name="menuMsgBoxCopyAll.Text" xml:space="preserve">
<value>Copy All</value>
</data>
<data name="menuMsgBoxClear.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 22</value>
</data>
<data name="menuMsgBoxClear.Text" xml:space="preserve">
<value>Clear All</value>
</data>
<data name="menuMsgBoxFilter.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 22</value>
</data>
<data name="menuMsgBoxFilter.Text" xml:space="preserve">
<value>Set message filters</value>
</data>
<metadata name="ssMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>131, 18</value>
</metadata>
<data name="toolSslInboundInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 17</value>
</data>
<data name="toolSslInboundInfo.Text" xml:space="preserve">
<value>InboundInfo</value>
</data>
<data name="toolSslBlank1.Font" type="System.Drawing.Font, System.Drawing">
<value>微软雅黑, 8pt</value>
</data>
<data name="toolSslBlank1.Size" type="System.Drawing.Size, System.Drawing">
<value>227, 17</value>
</data>
<data name="toolSslRoutingRule.Size" type="System.Drawing.Size, System.Drawing">
<value>0, 17</value>
</data>
<data name="toolSslBlank2.Size" type="System.Drawing.Size, System.Drawing">
<value>227, 17</value>
</data>
<data name="toolSslServerSpeed.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="toolSslServerSpeed.Font" type="System.Drawing.Font, System.Drawing">
<value>微软雅黑, 8pt</value>
</data>
<data name="toolSslServerSpeed.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>No</value>
</data>
<data name="toolSslServerSpeed.Size" type="System.Drawing.Size, System.Drawing">
<value>250, 17</value>
</data>
<data name="toolSslServerSpeed.Text" xml:space="preserve">
<value>SPEED Disabled</value>
</data>
<data name="toolSslServerSpeed.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleRight</value>
</data>
<data name="toolSslBlank4.Size" type="System.Drawing.Size, System.Drawing">
<value>0, 17</value>
</data>
<data name="ssMain.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 322</value>
</data>
<data name="ssMain.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>1, 0, 19, 0</value>
</data>
<data name="ssMain.Size" type="System.Drawing.Size, System.Drawing">
<value>804, 22</value>
</data>
<data name="ssMain.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="ssMain.Text" xml:space="preserve">
<value>statusStrip1</value>
</data>
<data name="&gt;&gt;ssMain.Name" xml:space="preserve">
<value>ssMain</value>
</data>
@@ -241,6 +187,75 @@
<data name="&gt;&gt;gbMsgTitle.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<metadata name="ssMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>131, 18</value>
</metadata>
<data name="ssMain.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 322</value>
</data>
<data name="ssMain.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>1, 0, 19, 0</value>
</data>
<data name="ssMain.Size" type="System.Drawing.Size, System.Drawing">
<value>804, 22</value>
</data>
<data name="ssMain.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="ssMain.Text" xml:space="preserve">
<value>statusStrip1</value>
</data>
<data name="&gt;&gt;ssMain.Name" xml:space="preserve">
<value>ssMain</value>
</data>
<data name="&gt;&gt;ssMain.Type" xml:space="preserve">
<value>System.Windows.Forms.StatusStrip, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ssMain.Parent" xml:space="preserve">
<value>gbMsgTitle</value>
</data>
<data name="&gt;&gt;ssMain.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="toolSslInboundInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 17</value>
</data>
<data name="toolSslInboundInfo.Text" xml:space="preserve">
<value>InboundInfo</value>
</data>
<data name="toolSslBlank1.Font" type="System.Drawing.Font, System.Drawing">
<value>微软雅黑, 8pt</value>
</data>
<data name="toolSslBlank1.Size" type="System.Drawing.Size, System.Drawing">
<value>211, 17</value>
</data>
<data name="toolSslRuleMode.Size" type="System.Drawing.Size, System.Drawing">
<value>0, 17</value>
</data>
<data name="toolSslBlank2.Size" type="System.Drawing.Size, System.Drawing">
<value>211, 17</value>
</data>
<data name="toolSslServerSpeed.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="toolSslServerSpeed.Font" type="System.Drawing.Font, System.Drawing">
<value>微软雅黑, 8pt</value>
</data>
<data name="toolSslServerSpeed.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>No</value>
</data>
<data name="toolSslServerSpeed.Size" type="System.Drawing.Size, System.Drawing">
<value>250, 17</value>
</data>
<data name="toolSslServerSpeed.Text" xml:space="preserve">
<value>SPEED Disabled</value>
</data>
<data name="toolSslServerSpeed.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleRight</value>
</data>
<data name="toolSslBlank4.Size" type="System.Drawing.Size, System.Drawing">
<value>0, 17</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -295,10 +310,10 @@
<data name="&gt;&gt;toolSslBlank1.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;toolSslRoutingRule.Name" xml:space="preserve">
<value>toolSslRoutingRule</value>
<data name="&gt;&gt;toolSslRuleMode.Name" xml:space="preserve">
<value>toolSslRuleMode</value>
</data>
<data name="&gt;&gt;toolSslRoutingRule.Type" xml:space="preserve">
<data name="&gt;&gt;toolSslRuleMode.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;toolSslBlank2.Name" xml:space="preserve">

View File

@@ -111,7 +111,14 @@ namespace clashN.Handler
//mode
if (!fileContent.ContainsKey("mode"))
{
ModifyContent(fileContent, "mode", "Rule");
ModifyContent(fileContent, "mode", ERuleMode.Rule.ToString().ToLower());
}
else
{
if(config.ruleMode != ERuleMode.Unchanged)
{
ModifyContent(fileContent, "mode", config.ruleMode.ToString().ToLower());
}
}
//enable tun mode

View File

@@ -30,6 +30,8 @@ namespace clashN.Mode
public ESysProxyType sysProxyType { get; set; }
public ERuleMode ruleMode { get; set; }
public bool allowLANConn { get; set; }
public bool enableStatistics { get; set; }

View File

@@ -0,0 +1,11 @@

namespace clashN.Mode
{
public enum ERuleMode
{
Rule = 0,
Global = 1,
Direct = 2,
Unchanged = 3
}
}