diff --git a/v2rayN/v2rayN/Forms/MainForm.Designer.cs b/v2rayN/v2rayN/Forms/MainForm.Designer.cs index 21a65886..4e516b81 100644 --- a/v2rayN/v2rayN/Forms/MainForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/MainForm.Designer.cs @@ -30,7 +30,7 @@ { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.scMain = new System.Windows.Forms.SplitContainer(); this.lvServers = new v2rayN.Base.ListViewFlickerFree(); this.cmsLv = new System.Windows.Forms.ContextMenuStrip(this.components); this.menuAddVmessServer = new System.Windows.Forms.ToolStripMenuItem(); @@ -124,10 +124,10 @@ this.tsbPromotion = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator(); this.tsbClose = new System.Windows.Forms.ToolStripButton(); - ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit(); + this.scMain.Panel1.SuspendLayout(); + this.scMain.Panel2.SuspendLayout(); + this.scMain.SuspendLayout(); this.cmsLv.SuspendLayout(); this.cmsMain.SuspendLayout(); this.groupBox1.SuspendLayout(); @@ -136,21 +136,20 @@ this.tsMain.SuspendLayout(); this.SuspendLayout(); // - // splitContainer1 + // scMain // - resources.ApplyResources(this.splitContainer1, "splitContainer1"); - this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; - this.splitContainer1.Name = "splitContainer1"; + resources.ApplyResources(this.scMain, "scMain"); + this.scMain.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.scMain.Name = "scMain"; // - // splitContainer1.Panel1 + // scMain.Panel1 // - this.splitContainer1.Panel1.Controls.Add(this.lvServers); + this.scMain.Panel1.Controls.Add(this.lvServers); // - // splitContainer1.Panel2 + // scMain.Panel2 // - this.splitContainer1.Panel2.Controls.Add(this.qrCodeControl); - this.splitContainer1.TabStop = false; - this.splitContainer1.SplitterMoved += new System.Windows.Forms.SplitterEventHandler(this.splitContainer1_SplitterMoved); + this.scMain.Panel2.Controls.Add(this.qrCodeControl); + this.scMain.TabStop = false; // // lvServers // @@ -510,7 +509,7 @@ // // groupBox1 // - this.groupBox1.Controls.Add(this.splitContainer1); + this.groupBox1.Controls.Add(this.scMain); resources.ApplyResources(this.groupBox1, "groupBox1"); this.groupBox1.Name = "groupBox1"; this.groupBox1.TabStop = false; @@ -667,7 +666,7 @@ // this.tsbQRCodeSwitch.CheckOnClick = true; this.tsbQRCodeSwitch.ForeColor = System.Drawing.Color.Black; - this.tsbQRCodeSwitch.Image = global::v2rayN.Properties.Resources.qr_code; + this.tsbQRCodeSwitch.Image = global::v2rayN.Properties.Resources.share; resources.ApplyResources(this.tsbQRCodeSwitch, "tsbQRCodeSwitch"); this.tsbQRCodeSwitch.Name = "tsbQRCodeSwitch"; this.tsbQRCodeSwitch.CheckedChanged += new System.EventHandler(this.tsbQRCodeSwitch_CheckedChanged); @@ -822,10 +821,10 @@ this.Shown += new System.EventHandler(this.MainForm_Shown); this.VisibleChanged += new System.EventHandler(this.MainForm_VisibleChanged); this.Resize += new System.EventHandler(this.MainForm_Resize); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); - this.splitContainer1.ResumeLayout(false); + this.scMain.Panel1.ResumeLayout(false); + this.scMain.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.scMain)).EndInit(); + this.scMain.ResumeLayout(false); this.cmsLv.ResumeLayout(false); this.cmsMain.ResumeLayout(false); this.groupBox1.ResumeLayout(false); @@ -882,7 +881,7 @@ private System.Windows.Forms.ToolStripMenuItem menuAddCustomServer; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; private System.Windows.Forms.ToolStripMenuItem menuAddShadowsocksServer; - private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.SplitContainer scMain; private QRCodeControl qrCodeControl; private System.Windows.Forms.ToolStripSeparator toolStripSeparator10; private System.Windows.Forms.ToolStripDropDownButton tsbCheckUpdate; diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index 371e836b..80029f75 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -46,20 +46,10 @@ namespace v2rayN.Forms private void MainForm_Load(object sender, EventArgs e) { - splitContainer1.Panel2Collapsed = true; - ConfigHandler.LoadConfig(ref config); v2rayHandler = new V2rayHandler(); v2rayHandler.ProcessEvent += v2rayHandler_ProcessEvent; - if(!config.formMainSize.IsEmpty) { - this.Left = config.formMainSize.X; - this.Top = config.formMainSize.Y; - this.Width = config.formMainSize.Width; - this.Height = config.formMainSize.Height; - } - this.WindowState = config.windowState; - if (config.enableStatistics) { statistics = new StatisticsHandler(config, UpdateStatisticsHandler); @@ -83,6 +73,7 @@ namespace v2rayN.Forms { InitServersView(); RefreshServers(); + RestoreUI(); LoadV2ray(); @@ -94,10 +85,7 @@ namespace v2rayN.Forms { if (e.CloseReason == CloseReason.UserClosing) { - if (this.WindowState != FormWindowState.Maximized) - config.formMainSize = new Rectangle(this.Left, this.Top, this.Width, this.Height); - config.windowState = this.WindowState; - + StorageUI(); e.Cancel = true; HideForm(); return; @@ -112,14 +100,10 @@ namespace v2rayN.Forms //} //else //{ - // //this.splitContainer1.SplitterDistance = config.uiItem.mainQRCodeWidth; + //} } - private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e) - { - //config.uiItem.mainQRCodeWidth = splitContainer1.SplitterDistance; - } //private const int WM_QUERYENDSESSION = 0x0011; //protected override void WndProc(ref Message m) @@ -139,6 +123,34 @@ namespace v2rayN.Forms // break; // } //} + + private void RestoreUI() + { + scMain.Panel2Collapsed = true; + + if (!config.uiItem.mainSize.IsEmpty) + { + this.Width = config.uiItem.mainSize.Width; + this.Height = config.uiItem.mainSize.Height; + } + + for (int k = 0; k < lvServers.Columns.Count; k++) + { + var width = ConfigHandler.GetformMainLvColWidth(ref config, ((EServerColName)k).ToString(), lvServers.Columns[k].Width); + lvServers.Columns[k].Width = width; + } + } + + private void StorageUI() + { + config.uiItem.mainSize = new Size(this.Width, this.Height); + + for (int k = 0; k < lvServers.Columns.Count; k++) + { + ConfigHandler.AddformMainLvColWidth(ref config, ((EServerColName)k).ToString(), lvServers.Columns[k].Width); + } + } + #endregion #region 显示服务器 listview 和 menu @@ -168,22 +180,22 @@ namespace v2rayN.Forms lvServers.MultiSelect = true; lvServers.HeaderStyle = ColumnHeaderStyle.Nonclickable; - lvServers.Columns.Add("", 30, HorizontalAlignment.Center); - lvServers.Columns.Add(UIRes.I18N("LvServiceType"), 80, HorizontalAlignment.Left); - lvServers.Columns.Add(UIRes.I18N("LvAlias"), 100, HorizontalAlignment.Left); - lvServers.Columns.Add(UIRes.I18N("LvAddress"), 120, HorizontalAlignment.Left); - lvServers.Columns.Add(UIRes.I18N("LvPort"), 50, HorizontalAlignment.Left); - lvServers.Columns.Add(UIRes.I18N("LvEncryptionMethod"), 90, HorizontalAlignment.Left); - lvServers.Columns.Add(UIRes.I18N("LvTransportProtocol"), 70, HorizontalAlignment.Left); - lvServers.Columns.Add(UIRes.I18N("LvSubscription"), 50, HorizontalAlignment.Left); - lvServers.Columns.Add(UIRes.I18N("LvTestResults"), 70, HorizontalAlignment.Left); + lvServers.Columns.Add("", 30); + lvServers.Columns.Add(UIRes.I18N("LvServiceType"), 80); + lvServers.Columns.Add(UIRes.I18N("LvAlias"), 100); + lvServers.Columns.Add(UIRes.I18N("LvAddress"), 120); + lvServers.Columns.Add(UIRes.I18N("LvPort"), 50); + lvServers.Columns.Add(UIRes.I18N("LvEncryptionMethod"), 90); + lvServers.Columns.Add(UIRes.I18N("LvTransportProtocol"), 70); + lvServers.Columns.Add(UIRes.I18N("LvSubscription"), 50); + lvServers.Columns.Add(UIRes.I18N("LvTestResults"), 70,HorizontalAlignment.Right); if (statistics != null && statistics.Enable) { - lvServers.Columns.Add(UIRes.I18N("LvTodayDownloadDataAmount"), 70, HorizontalAlignment.Left); - lvServers.Columns.Add(UIRes.I18N("LvTodayUploadDataAmount"), 70, HorizontalAlignment.Left); - lvServers.Columns.Add(UIRes.I18N("LvTotalDownloadDataAmount"), 70, HorizontalAlignment.Left); - lvServers.Columns.Add(UIRes.I18N("LvTotalUploadDataAmount"), 70, HorizontalAlignment.Left); + lvServers.Columns.Add(UIRes.I18N("LvTodayDownloadDataAmount"), 70); + lvServers.Columns.Add(UIRes.I18N("LvTodayUploadDataAmount"), 70); + lvServers.Columns.Add(UIRes.I18N("LvTotalDownloadDataAmount"), 70); + lvServers.Columns.Add(UIRes.I18N("LvTotalUploadDataAmount"), 70); } lvServers.EndUpdate(); } @@ -227,22 +239,20 @@ namespace v2rayN.Forms } } ListViewItem lvItem = new ListViewItem(def); - _addSubItem(lvItem, "type", ((EConfigType)item.configType).ToString()); - _addSubItem(lvItem, "remarks", item.remarks); - _addSubItem(lvItem, "address", item.address); - _addSubItem(lvItem, "port", item.port.ToString()); - //_addSubItem(lvItem, "id", item.id); - //_addSubItem(lvItem, "alterId", item.alterId.ToString()); - _addSubItem(lvItem, "security", item.security); - _addSubItem(lvItem, "network", item.network); - _addSubItem(lvItem, "SubRemarks", item.getSubRemarks(config)); - _addSubItem(lvItem, "testResult", item.testResult); + _addSubItem(lvItem, EServerColName.type.ToString(), ((EConfigType)item.configType).ToString()); + _addSubItem(lvItem, EServerColName.remarks.ToString(), item.remarks); + _addSubItem(lvItem, EServerColName.address.ToString(), item.address); + _addSubItem(lvItem, EServerColName.port.ToString(), item.port.ToString()); + _addSubItem(lvItem, EServerColName.security.ToString(), item.security); + _addSubItem(lvItem, EServerColName.network.ToString(), item.network); + _addSubItem(lvItem, EServerColName.subRemarks.ToString(), item.getSubRemarks(config)); + _addSubItem(lvItem, EServerColName.testResult.ToString(), item.testResult); if (stats) { - _addSubItem(lvItem, "todayDown", todayDown); - _addSubItem(lvItem, "todayUp", todayUp); - _addSubItem(lvItem, "totalDown", totalDown); - _addSubItem(lvItem, "totalUp", totalUp); + _addSubItem(lvItem, EServerColName.todayDown.ToString(), todayDown); + _addSubItem(lvItem, EServerColName.todayUp.ToString(), todayUp); + _addSubItem(lvItem, EServerColName.totalDown.ToString(), totalDown); + _addSubItem(lvItem, EServerColName.totalUp.ToString(), totalUp); } if (k % 2 == 1) // 隔行着色 @@ -665,6 +675,17 @@ namespace v2rayN.Forms SpeedtestHandler statistics = new SpeedtestHandler(ref config, ref v2rayHandler, lvSelecteds, actionType, UpdateSpeedtestHandler); } + private void tsbTestMe_Click(object sender, EventArgs e) + { + string result = httpProxyTest() + "ms"; + AppendText(false, string.Format(UIRes.I18N("TestMeOutput"), result)); + } + private int httpProxyTest() + { + SpeedtestHandler statistics = new SpeedtestHandler(ref config, ref v2rayHandler, lvSelecteds, "", UpdateSpeedtestHandler); + return statistics.RunAvailabilityCheck(); + } + private void menuExport2ClientConfig_Click(object sender, EventArgs e) { int index = GetLvSelectedIndex(); @@ -998,10 +1019,10 @@ namespace v2rayN.Forms private void ShowForm() { - this.ShowInTaskbar = true; - //this.WindowState = config.windowState; this.Show(); + this.WindowState = FormWindowState.Normal; this.Activate(); + this.ShowInTaskbar = true; //this.notifyIcon1.Visible = false; this.txtMsgBox.ScrollToCaret(); lvServers.EnsureVisible(config.index); // workaround @@ -1392,6 +1413,11 @@ namespace v2rayN.Forms Process.Start(Global.AboutUrl); } + private void tsbV2rayWebsite_Click(object sender, EventArgs e) + { + Process.Start(Global.v2rayWebsiteUrl); + } + private void tsbPromotion_Click(object sender, EventArgs e) { Process.Start($"{Utils.Base64Decode(Global.PromotionUrl)}?t={DateTime.Now.Ticks}"); @@ -1510,6 +1536,11 @@ namespace v2rayN.Forms } } + private void tsbQRCodeSwitch_CheckedChanged(object sender, EventArgs e) + { + bool bShow = tsbQRCodeSwitch.Checked; + scMain.Panel2Collapsed = !bShow; + } #endregion #region Language @@ -1532,26 +1563,6 @@ namespace v2rayN.Forms #endregion - private void tsbV2rayWebsite_Click(object sender, EventArgs e) - { - Process.Start(Global.v2rayWebsiteUrl); - } - private void tsbTestMe_Click(object sender, EventArgs e) - { - string result = httpProxyTest() + "ms"; - AppendText(false, string.Format(UIRes.I18N("TestMeOutput"), result)); - } - private int httpProxyTest() - { - SpeedtestHandler statistics = new SpeedtestHandler(ref config, ref v2rayHandler, lvSelecteds, "", UpdateSpeedtestHandler); - return statistics.RunAvailabilityCheck(); - } - - private void tsbQRCodeSwitch_CheckedChanged(object sender, EventArgs e) - { - bool bShow = tsbQRCodeSwitch.Checked; - splitContainer1.Panel2Collapsed = !bShow; - } } } diff --git a/v2rayN/v2rayN/Forms/MainForm.resx b/v2rayN/v2rayN/Forms/MainForm.resx index ed31de23..82105967 100644 --- a/v2rayN/v2rayN/Forms/MainForm.resx +++ b/v2rayN/v2rayN/Forms/MainForm.resx @@ -118,11 +118,11 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + Fill - + 3, 17 @@ -342,21 +342,21 @@ v2rayN.Base.ListViewFlickerFree, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - splitContainer1.Panel1 + scMain.Panel1 0 - - splitContainer1.Panel1 + + scMain.Panel1 - + System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - splitContainer1 + + scMain - + 0 @@ -378,45 +378,45 @@ v2rayN.Forms.QRCodeControl, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - splitContainer1.Panel2 + scMain.Panel2 0 - - splitContainer1.Panel2 + + scMain.Panel2 - + System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - splitContainer1 + + scMain - + 1 - + 100 - + 946, 331 - + 686 - + 0 - - splitContainer1 + + scMain - + System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + groupBox1 - + 0 @@ -780,10 +780,10 @@ Magenta - 65, 53 + 45, 53 - QR Code + Share BottomCenter diff --git a/v2rayN/v2rayN/Handler/ConfigHandler.cs b/v2rayN/v2rayN/Handler/ConfigHandler.cs index 2eb0640e..c6748e56 100644 --- a/v2rayN/v2rayN/Handler/ConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/ConfigHandler.cs @@ -119,6 +119,11 @@ namespace v2rayN.Handler { config.uiItem = new UIItem(); } + if (config.uiItem.mainLvColWidth == null) + { + config.uiItem.mainLvColWidth = new Dictionary(); + } + //// 如果是用户升级,首次会有端口号为0的情况,不可用,这里处理 //if (config.pacPort == 0) //{ @@ -196,7 +201,7 @@ namespace v2rayN.Handler vmessItem.headerType = vmessItem.headerType.TrimEx(); vmessItem.requestHost = vmessItem.requestHost.TrimEx(); vmessItem.path = vmessItem.path.TrimEx(); - vmessItem.streamSecurity = vmessItem.streamSecurity.TrimEx(); + vmessItem.streamSecurity = vmessItem.streamSecurity.TrimEx(); if (index >= 0) { @@ -884,5 +889,38 @@ namespace v2rayN.Handler ToJsonFile(config); return 0; } + + public static int AddformMainLvColWidth(ref Config config, string name, int width) + { + if (config.uiItem.mainLvColWidth == null) + { + config.uiItem.mainLvColWidth = new Dictionary(); + } + if (config.uiItem.mainLvColWidth.ContainsKey(name)) + { + config.uiItem.mainLvColWidth[name] = width; + } + else + { + config.uiItem.mainLvColWidth.Add(name, width); + } + return 0; + } + public static int GetformMainLvColWidth(ref Config config, string name, int width) + { + if (config.uiItem.mainLvColWidth == null) + { + config.uiItem.mainLvColWidth = new Dictionary(); + } + if (config.uiItem.mainLvColWidth.ContainsKey(name)) + { + return config.uiItem.mainLvColWidth[name]; + } + else + { + return width; + } + } + } } diff --git a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs index 19773c0f..303034b9 100644 --- a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs +++ b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs @@ -85,7 +85,7 @@ namespace v2rayN.Handler RunPingSub((int index) => { long time = Utils.Ping(_config.vmess[index].address); - _updateFunc(index, string.Format("{0}ms", time)); + _updateFunc(index, FormatOut(time, "ms")); }); } @@ -94,7 +94,7 @@ namespace v2rayN.Handler RunPingSub((int index) => { int time = GetTcpingTime(_config.vmess[index].address, _config.vmess[index].port); - _updateFunc(index, string.Format("{0}ms", time)); + _updateFunc(index, FormatOut(time, "ms")); }); } @@ -123,7 +123,7 @@ namespace v2rayN.Handler WebProxy webProxy = new WebProxy(Global.Loopback, httpPort + itemIndex); int responseTime = -1; string status = GetRealPingTime(_config.speedPingTestUrl, webProxy, out responseTime); - string output = Utils.IsNullOrEmpty(status) ? string.Format("{0}ms", responseTime) : string.Format("{0}", status); + string output = Utils.IsNullOrEmpty(status) ? FormatOut(responseTime, "ms") : FormatOut(status, ""); _updateFunc(itemIndex, output); } catch (Exception ex) @@ -289,5 +289,13 @@ namespace v2rayN.Handler } return msg; } + private string FormatOut(object time, string unit) + { + if (time.ToString().Equals("-1")) + { + return "Timeout"; + } + return string.Format("{0}{1}", time, unit).PadLeft(6, ' '); + } } } diff --git a/v2rayN/v2rayN/Mode/Config.cs b/v2rayN/v2rayN/Mode/Config.cs index 32556e05..515114df 100644 --- a/v2rayN/v2rayN/Mode/Config.cs +++ b/v2rayN/v2rayN/Mode/Config.cs @@ -36,17 +36,6 @@ namespace v2rayN.Mode get; set; } - /// - /// 主窗口的大小和位置 - /// - public System.Drawing.Rectangle formMainSize - { - get; set; - } - public System.Windows.Forms.FormWindowState windowState - { - get; set; - } /// /// 活动配置序号 /// @@ -180,7 +169,7 @@ namespace v2rayN.Mode { get; set; } - + /// /// 自定义远程DNS @@ -216,7 +205,7 @@ namespace v2rayN.Mode public List userPacRule { get; set; - } + } #region 函数 @@ -715,10 +704,16 @@ namespace v2rayN.Mode [Serializable] public class UIItem { - /// - /// - /// - public int mainQRCodeWidth { get; set; } = 600; + + public System.Drawing.Size mainSize + { + get; set; + } + + public Dictionary mainLvColWidth + { + get; set; + } } } diff --git a/v2rayN/v2rayN/Mode/EServerColName.cs b/v2rayN/v2rayN/Mode/EServerColName.cs new file mode 100644 index 00000000..b92138ef --- /dev/null +++ b/v2rayN/v2rayN/Mode/EServerColName.cs @@ -0,0 +1,21 @@ + +namespace v2rayN.Mode +{ + public enum EServerColName + { + def = 0, + type, + remarks, + address, + port, + security, + network, + subRemarks, + testResult, + + todayDown, + todayUp, + totalDown, + totalUp + } +} \ No newline at end of file diff --git a/v2rayN/v2rayN/Properties/AssemblyInfo.cs b/v2rayN/v2rayN/Properties/AssemblyInfo.cs index d97075b4..4e561ab7 100644 --- a/v2rayN/v2rayN/Properties/AssemblyInfo.cs +++ b/v2rayN/v2rayN/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ using System.Runtime.InteropServices; // 方法是按如下所示使用“*”: //[assembly: AssemblyVersion("1.0.*")] //[assembly: AssemblyVersion("1.0.0")] -[assembly: AssemblyFileVersion("3.14")] +[assembly: AssemblyFileVersion("3.15")] diff --git a/v2rayN/v2rayN/Properties/Resources.Designer.cs b/v2rayN/v2rayN/Properties/Resources.Designer.cs index 3a699ebb..f21638d7 100644 --- a/v2rayN/v2rayN/Properties/Resources.Designer.cs +++ b/v2rayN/v2rayN/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace v2rayN.Properties { // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen // (以 /str 作为命令选项),或重新生成 VS 项目。 - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -177,16 +177,6 @@ namespace v2rayN.Properties { } } - /// - /// 查找 System.Drawing.Bitmap 类型的本地化资源。 - /// - internal static System.Drawing.Bitmap qr_code { - get { - object obj = ResourceManager.GetObject("qr-code", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// @@ -207,6 +197,16 @@ namespace v2rayN.Properties { } } + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap share { + get { + object obj = ResourceManager.GetObject("share", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// diff --git a/v2rayN/v2rayN/Properties/Resources.resx b/v2rayN/v2rayN/Properties/Resources.resx index 8078ee80..706454a0 100644 --- a/v2rayN/v2rayN/Properties/Resources.resx +++ b/v2rayN/v2rayN/Properties/Resources.resx @@ -166,7 +166,7 @@ ..\Resources\abp.js.gz;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ..\Resources\qr-code.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\resources\share.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/v2rayN/v2rayN/Resources/qr-code.png b/v2rayN/v2rayN/Resources/qr-code.png deleted file mode 100644 index f901bb69..00000000 Binary files a/v2rayN/v2rayN/Resources/qr-code.png and /dev/null differ diff --git a/v2rayN/v2rayN/Resources/share.png b/v2rayN/v2rayN/Resources/share.png new file mode 100644 index 00000000..df5e2396 Binary files /dev/null and b/v2rayN/v2rayN/Resources/share.png differ diff --git a/v2rayN/v2rayN/v2rayN.csproj b/v2rayN/v2rayN/v2rayN.csproj index 514779ff..65075779 100644 --- a/v2rayN/v2rayN/v2rayN.csproj +++ b/v2rayN/v2rayN/v2rayN.csproj @@ -157,6 +157,7 @@ + @@ -369,6 +370,7 @@ + diff --git a/v2rayN/v2rayN/v2rayN.csproj.user b/v2rayN/v2rayN/v2rayN.csproj.user index 778969a8..a36e9eb4 100644 --- a/v2rayN/v2rayN/v2rayN.csproj.user +++ b/v2rayN/v2rayN/v2rayN.csproj.user @@ -9,7 +9,7 @@ zh-CN false - ProjectFiles + ShowAllFiles false