Compare commits

..

3 Commits

Author SHA1 Message Date
2dust
d727ff40bb Code clean 2025-10-31 20:25:54 +08:00
2dust
1b5069a933 Code clean 2025-10-31 20:25:50 +08:00
2dust
18ea6fdc00 Code clean 2025-10-31 20:25:45 +08:00
59 changed files with 210 additions and 213 deletions

View File

@@ -424,7 +424,7 @@ public class Utils
// Handle IPv6 addresses, e.g., "[2001:db8::1]:443" // Handle IPv6 addresses, e.g., "[2001:db8::1]:443"
if (authority.StartsWith("[") && authority.Contains("]")) if (authority.StartsWith("[") && authority.Contains("]"))
{ {
int closingBracketIndex = authority.LastIndexOf(']'); var closingBracketIndex = authority.LastIndexOf(']');
if (closingBracketIndex < authority.Length - 1 && authority[closingBracketIndex + 1] == ':') if (closingBracketIndex < authority.Length - 1 && authority[closingBracketIndex + 1] == ':')
{ {
// Port exists // Port exists

View File

@@ -1,6 +1,3 @@
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace ServiceLib.Common; namespace ServiceLib.Common;
/* /*
* See: * See:

View File

@@ -447,13 +447,13 @@ public static class ConfigHandler
/// <returns>0 if successful, -1 if failed</returns> /// <returns>0 if successful, -1 if failed</returns>
public static async Task<int> MoveServer(Config config, List<ProfileItem> lstProfile, int index, EMove eMove, int pos = -1) public static async Task<int> MoveServer(Config config, List<ProfileItem> lstProfile, int index, EMove eMove, int pos = -1)
{ {
int count = lstProfile.Count; var count = lstProfile.Count;
if (index < 0 || index > lstProfile.Count - 1) if (index < 0 || index > lstProfile.Count - 1)
{ {
return -1; return -1;
} }
for (int i = 0; i < lstProfile.Count; i++) for (var i = 0; i < lstProfile.Count; i++)
{ {
ProfileExManager.Instance.SetSort(lstProfile[i].IndexId, (i + 1) * 10); ProfileExManager.Instance.SetSort(lstProfile[i].IndexId, (i + 1) * 10);
} }
@@ -527,7 +527,7 @@ public static class ConfigHandler
return -1; return -1;
} }
var ext = Path.GetExtension(fileName); var ext = Path.GetExtension(fileName);
string newFileName = $"{Utils.GetGuid()}{ext}"; var newFileName = $"{Utils.GetGuid()}{ext}";
//newFileName = Path.Combine(Utile.GetTempPath(), newFileName); //newFileName = Path.Combine(Utile.GetTempPath(), newFileName);
try try
@@ -1356,7 +1356,7 @@ public static class ConfigHandler
} }
continue; continue;
} }
var profileItem = FmtHandler.ResolveConfig(str, out string msg); var profileItem = FmtHandler.ResolveConfig(str, out var msg);
if (profileItem is null) if (profileItem is null)
{ {
continue; continue;
@@ -1440,7 +1440,7 @@ public static class ConfigHandler
{ {
await RemoveServersViaSubid(config, subid, isSub); await RemoveServersViaSubid(config, subid, isSub);
} }
int count = 0; var count = 0;
foreach (var it in lstProfiles) foreach (var it in lstProfiles)
{ {
it.Subid = subid; it.Subid = subid;
@@ -1530,7 +1530,7 @@ public static class ConfigHandler
var lstSsServer = ShadowsocksFmt.ResolveSip008(strData); var lstSsServer = ShadowsocksFmt.ResolveSip008(strData);
if (lstSsServer?.Count > 0) if (lstSsServer?.Count > 0)
{ {
int counter = 0; var counter = 0;
foreach (var ssItem in lstSsServer) foreach (var ssItem in lstSsServer)
{ {
ssItem.Subid = subid; ssItem.Subid = subid;
@@ -1705,7 +1705,7 @@ public static class ConfigHandler
var maxSort = 0; var maxSort = 0;
if (await SQLiteHelper.Instance.TableAsync<SubItem>().CountAsync() > 0) if (await SQLiteHelper.Instance.TableAsync<SubItem>().CountAsync() > 0)
{ {
var lstSubs = (await AppManager.Instance.SubItems()); var lstSubs = await AppManager.Instance.SubItems();
maxSort = lstSubs.LastOrDefault()?.Sort ?? 0; maxSort = lstSubs.LastOrDefault()?.Sort ?? 0;
} }
item.Sort = maxSort + 1; item.Sort = maxSort + 1;
@@ -1867,7 +1867,7 @@ public static class ConfigHandler
/// <returns>0 if successful, -1 if failed</returns> /// <returns>0 if successful, -1 if failed</returns>
public static async Task<int> MoveRoutingRule(List<RulesItem> rules, int index, EMove eMove, int pos = -1) public static async Task<int> MoveRoutingRule(List<RulesItem> rules, int index, EMove eMove, int pos = -1)
{ {
int count = rules.Count; var count = rules.Count;
if (index < 0 || index > rules.Count - 1) if (index < 0 || index > rules.Count - 1)
{ {
return -1; return -1;

View File

@@ -58,7 +58,7 @@ public static class CoreConfigHandler
File.Delete(fileName); File.Delete(fileName);
} }
string addressFileName = node.Address; var addressFileName = node.Address;
if (!File.Exists(addressFileName)) if (!File.Exists(addressFileName))
{ {
addressFileName = Utils.GetConfigPath(addressFileName); addressFileName = Utils.GetConfigPath(addressFileName);

View File

@@ -37,7 +37,7 @@ public class FmtHandler
try try
{ {
string str = config.TrimEx(); var str = config.TrimEx();
if (str.IsNullOrEmpty()) if (str.IsNullOrEmpty())
{ {
msg = ResUI.FailedReadConfiguration; msg = ResUI.FailedReadConfiguration;

View File

@@ -33,9 +33,9 @@ public class Hysteria2Fmt : BaseFmt
{ {
if (item == null) if (item == null)
return null; return null;
string url = string.Empty; var url = string.Empty;
string remark = string.Empty; var remark = string.Empty;
if (item.Remarks.IsNotEmpty()) if (item.Remarks.IsNotEmpty())
{ {
remark = "#" + Utils.UrlEncode(item.Remarks); remark = "#" + Utils.UrlEncode(item.Remarks);

View File

@@ -85,7 +85,7 @@ public class ActionPrecheckManager(Config config)
break; break;
case EConfigType.VLESS: case EConfigType.VLESS:
if (item.Id.IsNullOrEmpty() || !Utils.IsGuidByParse(item.Id) && item.Id.Length > 30) if (item.Id.IsNullOrEmpty() || (!Utils.IsGuidByParse(item.Id) && item.Id.Length > 30))
errors.Add(string.Format(ResUI.InvalidProperty, "Id")); errors.Add(string.Format(ResUI.InvalidProperty, "Id"));
if (!Global.Flows.Contains(item.Flow)) if (!Global.Flows.Contains(item.Flow))
errors.Add(string.Format(ResUI.InvalidProperty, "Flow")); errors.Add(string.Format(ResUI.InvalidProperty, "Flow"));

View File

@@ -28,7 +28,7 @@ public class ProfileItem : ReactiveObject
public string GetSummary() public string GetSummary()
{ {
var summary = $"[{(ConfigType).ToString()}] "; var summary = $"[{ConfigType.ToString()}] ";
if (IsComplex()) if (IsComplex())
{ {
summary += $"[{CoreType.ToString()}]{Remarks}"; summary += $"[{CoreType.ToString()}]{Remarks}";

View File

@@ -94,8 +94,8 @@ public partial class CoreConfigV2rayService(Config config)
ret.Msg = ResUI.InitialConfiguration; ret.Msg = ResUI.InitialConfiguration;
string result = EmbedUtils.GetEmbedText(Global.V2raySampleClient); var result = EmbedUtils.GetEmbedText(Global.V2raySampleClient);
string txtOutbound = EmbedUtils.GetEmbedText(Global.V2raySampleOutbound); var txtOutbound = EmbedUtils.GetEmbedText(Global.V2raySampleOutbound);
if (result.IsNullOrEmpty() || txtOutbound.IsNullOrEmpty()) if (result.IsNullOrEmpty() || txtOutbound.IsNullOrEmpty())
{ {
ret.Msg = ResUI.FailedGetDefaultConfiguration; ret.Msg = ResUI.FailedGetDefaultConfiguration;
@@ -200,8 +200,8 @@ public partial class CoreConfigV2rayService(Config config)
ret.Msg = ResUI.InitialConfiguration; ret.Msg = ResUI.InitialConfiguration;
string result = EmbedUtils.GetEmbedText(Global.V2raySampleClient); var result = EmbedUtils.GetEmbedText(Global.V2raySampleClient);
string txtOutbound = EmbedUtils.GetEmbedText(Global.V2raySampleOutbound); var txtOutbound = EmbedUtils.GetEmbedText(Global.V2raySampleOutbound);
if (result.IsNullOrEmpty() || txtOutbound.IsNullOrEmpty()) if (result.IsNullOrEmpty() || txtOutbound.IsNullOrEmpty())
{ {
ret.Msg = ResUI.FailedGetDefaultConfiguration; ret.Msg = ResUI.FailedGetDefaultConfiguration;

View File

@@ -347,8 +347,8 @@ public partial class CoreConfigV2rayService
if (obj is null) if (obj is null)
{ {
List<string> servers = []; List<string> servers = [];
string[] arrDNS = normalDNS.Split(','); var arrDNS = normalDNS.Split(',');
foreach (string str in arrDNS) foreach (var str in arrDNS)
{ {
servers.Add(str); servers.Add(str);
} }

View File

@@ -48,7 +48,7 @@ public partial class CoreConfigV2rayService
private Inbounds4Ray GetInbound(InItem inItem, EInboundProtocol protocol, bool bSocks) private Inbounds4Ray GetInbound(InItem inItem, EInboundProtocol protocol, bool bSocks)
{ {
string result = EmbedUtils.GetEmbedText(Global.V2raySampleInbound); var result = EmbedUtils.GetEmbedText(Global.V2raySampleInbound);
if (result.IsNullOrEmpty()) if (result.IsNullOrEmpty())
{ {
return new(); return new();

View File

@@ -453,16 +453,16 @@ public partial class CoreConfigV2rayService
}; };
//request Host //request Host
string request = EmbedUtils.GetEmbedText(Global.V2raySampleHttpRequestFileName); var request = EmbedUtils.GetEmbedText(Global.V2raySampleHttpRequestFileName);
string[] arrHost = host.Split(','); var arrHost = host.Split(',');
string host2 = string.Join(",".AppendQuotes(), arrHost); var host2 = string.Join(",".AppendQuotes(), arrHost);
request = request.Replace("$requestHost$", $"{host2.AppendQuotes()}"); request = request.Replace("$requestHost$", $"{host2.AppendQuotes()}");
request = request.Replace("$requestUserAgent$", $"{useragent.AppendQuotes()}"); request = request.Replace("$requestUserAgent$", $"{useragent.AppendQuotes()}");
//Path //Path
string pathHttp = @"/"; var pathHttp = @"/";
if (path.IsNotEmpty()) if (path.IsNotEmpty())
{ {
string[] arrPath = path.Split(','); var arrPath = path.Split(',');
pathHttp = string.Join(",".AppendQuotes(), arrPath); pathHttp = string.Join(",".AppendQuotes(), arrPath);
} }
request = request.Replace("$requestPath$", $"{pathHttp.AppendQuotes()}"); request = request.Replace("$requestPath$", $"{pathHttp.AppendQuotes()}");
@@ -623,10 +623,10 @@ public partial class CoreConfigV2rayService
// Cache for chain proxies to avoid duplicate generation // Cache for chain proxies to avoid duplicate generation
var nextProxyCache = new Dictionary<string, Outbounds4Ray?>(); var nextProxyCache = new Dictionary<string, Outbounds4Ray?>();
var prevProxyTags = new Dictionary<string, string?>(); // Map from profile name to tag var prevProxyTags = new Dictionary<string, string?>(); // Map from profile name to tag
int prevIndex = 0; // Index for prev outbounds var prevIndex = 0; // Index for prev outbounds
// Process nodes // Process nodes
int index = 0; var index = 0;
foreach (var node in nodes) foreach (var node in nodes)
{ {
index++; index++;

View File

@@ -6,7 +6,7 @@ public partial class CoreConfigV2rayService
{ {
if (_config.GuiItem.EnableStatistics || _config.GuiItem.DisplayRealTimeSpeed) if (_config.GuiItem.EnableStatistics || _config.GuiItem.DisplayRealTimeSpeed)
{ {
string tag = EInboundProtocol.api.ToString(); var tag = EInboundProtocol.api.ToString();
Metrics4Ray apiObj = new(); Metrics4Ray apiObj = new();
Policy4Ray policyObj = new(); Policy4Ray policyObj = new();
SystemPolicy4Ray policySystemSetting = new(); SystemPolicy4Ray policySystemSetting = new();

View File

@@ -167,7 +167,7 @@ public class UpdateService
try try
{ {
var coreInfo = CoreInfoManager.Instance.GetCoreInfo(type); var coreInfo = CoreInfoManager.Instance.GetCoreInfo(type);
string filePath = string.Empty; var filePath = string.Empty;
foreach (var name in coreInfo.CoreExes) foreach (var name in coreInfo.CoreExes)
{ {
var vName = Utils.GetBinPath(Utils.GetExeName(name), coreInfo.CoreType.ToString()); var vName = Utils.GetBinPath(Utils.GetExeName(name), coreInfo.CoreType.ToString());
@@ -180,14 +180,14 @@ public class UpdateService
if (!File.Exists(filePath)) if (!File.Exists(filePath))
{ {
string msg = string.Format(ResUI.NotFoundCore, @"", "", ""); var msg = string.Format(ResUI.NotFoundCore, @"", "", "");
//ShowMsg(true, msg); //ShowMsg(true, msg);
return new SemanticVersion(""); return new SemanticVersion("");
} }
var result = await Utils.GetCliWrapOutput(filePath, coreInfo.VersionArg); var result = await Utils.GetCliWrapOutput(filePath, coreInfo.VersionArg);
var echo = result ?? ""; var echo = result ?? "";
string version = string.Empty; var version = string.Empty;
switch (type) switch (type)
{ {
case ECoreType.v2fly: case ECoreType.v2fly:

View File

@@ -211,7 +211,7 @@ public class ClashProxiesViewModel : MyReactiveObject
} }
//from api //from api
foreach (KeyValuePair<string, ProxiesItem> kv in _proxies) foreach (var kv in _proxies)
{ {
if (!Global.allowSelectType.Contains(kv.Value.type.ToLower())) if (!Global.allowSelectType.Contains(kv.Value.type.ToLower()))
{ {
@@ -319,7 +319,7 @@ public class ClashProxiesViewModel : MyReactiveObject
//from providers //from providers
if (_providers != null) if (_providers != null)
{ {
foreach (KeyValuePair<string, ProvidersItem> kv in _providers) foreach (var kv in _providers)
{ {
if (Global.proxyVehicleType.Contains(kv.Value.vehicleType.ToLower())) if (Global.proxyVehicleType.Contains(kv.Value.vehicleType.ToLower()))
{ {

View File

@@ -273,12 +273,12 @@ public class OptionSettingViewModel : MyReactiveObject
NoticeManager.Instance.Enqueue(ResUI.FillLocalListeningPort); NoticeManager.Instance.Enqueue(ResUI.FillLocalListeningPort);
return; return;
} }
var needReboot = (EnableStatistics != _config.GuiItem.EnableStatistics var needReboot = EnableStatistics != _config.GuiItem.EnableStatistics
|| DisplayRealTimeSpeed != _config.GuiItem.DisplayRealTimeSpeed || DisplayRealTimeSpeed != _config.GuiItem.DisplayRealTimeSpeed
|| EnableDragDropSort != _config.UiItem.EnableDragDropSort || EnableDragDropSort != _config.UiItem.EnableDragDropSort
|| EnableHWA != _config.GuiItem.EnableHWA || EnableHWA != _config.GuiItem.EnableHWA
|| CurrentFontFamily != _config.UiItem.CurrentFontFamily || CurrentFontFamily != _config.UiItem.CurrentFontFamily
|| MainGirdOrientation != (int)_config.UiItem.MainGirdOrientation); || MainGirdOrientation != (int)_config.UiItem.MainGirdOrientation;
//if (Utile.IsNullOrEmpty(Kcpmtu.ToString()) || !Utile.IsNumeric(Kcpmtu.ToString()) //if (Utile.IsNullOrEmpty(Kcpmtu.ToString()) || !Utile.IsNumeric(Kcpmtu.ToString())
// || Utile.IsNullOrEmpty(Kcptti.ToString()) || !Utile.IsNumeric(Kcptti.ToString()) // || Utile.IsNullOrEmpty(Kcptti.ToString()) || !Utile.IsNumeric(Kcptti.ToString())
@@ -375,7 +375,7 @@ public class OptionSettingViewModel : MyReactiveObject
private async Task SaveCoreType() private async Task SaveCoreType()
{ {
for (int k = 1; k <= _config.CoreTypeItem.Count; k++) for (var k = 1; k <= _config.CoreTypeItem.Count; k++)
{ {
var item = _config.CoreTypeItem[k - 1]; var item = _config.CoreTypeItem[k - 1];
var type = string.Empty; var type = string.Empty;

View File

@@ -658,7 +658,7 @@ public class ProfilesViewModel : MyReactiveObject
} }
_dicHeaderSort.TryAdd(colName, true); _dicHeaderSort.TryAdd(colName, true);
_dicHeaderSort.TryGetValue(colName, out bool asc); _dicHeaderSort.TryGetValue(colName, out var asc);
if (await ConfigHandler.SortServers(_config, _config.SubIndexId, colName, asc) != 0) if (await ConfigHandler.SortServers(_config, _config.SubIndexId, colName, asc) != 0)
{ {
return; return;

View File

@@ -215,7 +215,7 @@ public class RoutingRuleSettingViewModel : MyReactiveObject
private async Task SaveRoutingAsync() private async Task SaveRoutingAsync()
{ {
string remarks = SelectedRouting.Remarks; var remarks = SelectedRouting.Remarks;
if (remarks.IsNullOrEmpty()) if (remarks.IsNullOrEmpty())
{ {
NoticeManager.Instance.Enqueue(ResUI.PleaseFillRemarks); NoticeManager.Instance.Enqueue(ResUI.PleaseFillRemarks);
@@ -286,7 +286,7 @@ public class RoutingRuleSettingViewModel : MyReactiveObject
return; return;
} }
DownloadService downloadHandle = new DownloadService(); var downloadHandle = new DownloadService();
var result = await downloadHandle.TryDownloadString(url, true, ""); var result = await downloadHandle.TryDownloadString(url, true, "");
var ret = await AddBatchRoutingRulesAsync(SelectedRouting, result); var ret = await AddBatchRoutingRulesAsync(SelectedRouting, result);
if (ret == 0) if (ret == 0)
@@ -298,7 +298,7 @@ public class RoutingRuleSettingViewModel : MyReactiveObject
private async Task<int> AddBatchRoutingRulesAsync(RoutingItem routingItem, string? clipboardData) private async Task<int> AddBatchRoutingRulesAsync(RoutingItem routingItem, string? clipboardData)
{ {
bool blReplace = false; var blReplace = false;
if (await _updateView?.Invoke(EViewAction.AddBatchRoutingRulesYesNo, null) == false) if (await _updateView?.Invoke(EViewAction.AddBatchRoutingRulesYesNo, null) == false)
{ {
blReplace = true; blReplace = true;

View File

@@ -313,10 +313,10 @@ public class StatusBarViewModel : MyReactiveObject
} }
BlServers = true; BlServers = true;
for (int k = 0; k < lstModel.Count; k++) for (var k = 0; k < lstModel.Count; k++)
{ {
ProfileItem it = lstModel[k]; ProfileItem it = lstModel[k];
string name = it.GetSummary(); var name = it.GetSummary();
var item = new ComboItem() { ID = it.IndexId, Text = name }; var item = new ComboItem() { ID = it.IndexId, Text = name };
Servers.Add(item); Servers.Add(item);
@@ -394,10 +394,10 @@ public class StatusBarViewModel : MyReactiveObject
{ {
await SysProxyHandler.UpdateSysProxy(_config, false); await SysProxyHandler.UpdateSysProxy(_config, false);
BlSystemProxyClear = (type == ESysProxyType.ForcedClear); BlSystemProxyClear = type == ESysProxyType.ForcedClear;
BlSystemProxySet = (type == ESysProxyType.ForcedChange); BlSystemProxySet = type == ESysProxyType.ForcedChange;
BlSystemProxyNothing = (type == ESysProxyType.Unchanged); BlSystemProxyNothing = type == ESysProxyType.Unchanged;
BlSystemProxyPac = (type == ESysProxyType.Pac); BlSystemProxyPac = type == ESysProxyType.Pac;
if (blChange) if (blChange)
{ {

View File

@@ -17,13 +17,13 @@ global using Avalonia.Markup.Xaml;
global using Avalonia.Media; global using Avalonia.Media;
global using Avalonia.Media.Imaging; global using Avalonia.Media.Imaging;
global using Avalonia.Platform; global using Avalonia.Platform;
global using ReactiveUI.Avalonia;
global using Avalonia.Styling; global using Avalonia.Styling;
global using Avalonia.Threading; global using Avalonia.Threading;
global using ReactiveUI;
global using ReactiveUI.Fody.Helpers;
global using DynamicData; global using DynamicData;
global using MsBox.Avalonia.Enums; global using MsBox.Avalonia.Enums;
global using ReactiveUI;
global using ReactiveUI.Avalonia;
global using ReactiveUI.Fody.Helpers;
global using ServiceLib; global using ServiceLib;
global using ServiceLib.Base; global using ServiceLib.Base;
global using ServiceLib.Common; global using ServiceLib.Common;

View File

@@ -13,8 +13,8 @@ public partial class AddGroupServerWindow : WindowBase<AddGroupServerViewModel>
{ {
InitializeComponent(); InitializeComponent();
this.Loaded += Window_Loaded; Loaded += Window_Loaded;
btnCancel.Click += (s, e) => this.Close(); btnCancel.Click += (s, e) => Close();
lstChild.SelectionChanged += LstChild_SelectionChanged; lstChild.SelectionChanged += LstChild_SelectionChanged;
ViewModel = new AddGroupServerViewModel(profileItem, UpdateViewHandler); ViewModel = new AddGroupServerViewModel(profileItem, UpdateViewHandler);
@@ -32,11 +32,11 @@ public partial class AddGroupServerWindow : WindowBase<AddGroupServerViewModel>
switch (profileItem.ConfigType) switch (profileItem.ConfigType)
{ {
case EConfigType.PolicyGroup: case EConfigType.PolicyGroup:
this.Title = ResUI.TbConfigTypePolicyGroup; Title = ResUI.TbConfigTypePolicyGroup;
break; break;
case EConfigType.ProxyChain: case EConfigType.ProxyChain:
this.Title = ResUI.TbConfigTypeProxyChain; Title = ResUI.TbConfigTypeProxyChain;
gridPolicyGroup.IsVisible = false; gridPolicyGroup.IsVisible = false;
break; break;
} }
@@ -64,7 +64,7 @@ public partial class AddGroupServerWindow : WindowBase<AddGroupServerViewModel>
menuSelectAllChild.Click += (s, e) => lstChild.SelectAll(); menuSelectAllChild.Click += (s, e) => lstChild.SelectAll();
// Keyboard shortcuts when focus is within grid // Keyboard shortcuts when focus is within grid
this.AddHandler(KeyDownEvent, AddGroupServerWindow_KeyDown, RoutingStrategies.Tunnel); AddHandler(KeyDownEvent, AddGroupServerWindow_KeyDown, RoutingStrategies.Tunnel);
lstChild.LoadingRow += LstChild_LoadingRow; lstChild.LoadingRow += LstChild_LoadingRow;
} }
@@ -78,7 +78,7 @@ public partial class AddGroupServerWindow : WindowBase<AddGroupServerViewModel>
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.Close(true); Close(true);
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -14,8 +14,8 @@ public partial class AddServer2Window : WindowBase<AddServer2ViewModel>
{ {
InitializeComponent(); InitializeComponent();
this.Loaded += Window_Loaded; Loaded += Window_Loaded;
btnCancel.Click += (s, e) => this.Close(); btnCancel.Click += (s, e) => Close();
ViewModel = new AddServer2ViewModel(profileItem, UpdateViewHandler); ViewModel = new AddServer2ViewModel(profileItem, UpdateViewHandler);
cmbCoreType.ItemsSource = Utils.GetEnumNames<ECoreType>().Where(t => t != ECoreType.v2rayN.ToString()).ToList().AppendEmpty(); cmbCoreType.ItemsSource = Utils.GetEnumNames<ECoreType>().Where(t => t != ECoreType.v2rayN.ToString()).ToList().AppendEmpty();
@@ -39,7 +39,7 @@ public partial class AddServer2Window : WindowBase<AddServer2ViewModel>
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.Close(true); Close(true);
break; break;
case EViewAction.BrowseServer: case EViewAction.BrowseServer:

View File

@@ -13,8 +13,8 @@ public partial class AddServerWindow : WindowBase<AddServerViewModel>
{ {
InitializeComponent(); InitializeComponent();
this.Loaded += Window_Loaded; Loaded += Window_Loaded;
btnCancel.Click += (s, e) => this.Close(); btnCancel.Click += (s, e) => Close();
cmbNetwork.SelectionChanged += CmbNetwork_SelectionChanged; cmbNetwork.SelectionChanged += CmbNetwork_SelectionChanged;
cmbStreamSecurity.SelectionChanged += CmbStreamSecurity_SelectionChanged; cmbStreamSecurity.SelectionChanged += CmbStreamSecurity_SelectionChanged;
btnGUID.Click += btnGUID_Click; btnGUID.Click += btnGUID_Click;
@@ -196,7 +196,7 @@ public partial class AddServerWindow : WindowBase<AddServerViewModel>
this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables);
}); });
this.Title = $"{profileItem.ConfigType}"; Title = $"{profileItem.ConfigType}";
} }
private async Task<bool> UpdateViewHandler(EViewAction action, object? obj) private async Task<bool> UpdateViewHandler(EViewAction action, object? obj)
@@ -204,7 +204,7 @@ public partial class AddServerWindow : WindowBase<AddServerViewModel>
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.Close(true); Close(true);
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -7,7 +7,7 @@ public partial class ClashProxiesView : ReactiveUserControl<ClashProxiesViewMode
InitializeComponent(); InitializeComponent();
ViewModel = new ClashProxiesViewModel(UpdateViewHandler); ViewModel = new ClashProxiesViewModel(UpdateViewHandler);
lstProxyDetails.DoubleTapped += LstProxyDetails_DoubleTapped; lstProxyDetails.DoubleTapped += LstProxyDetails_DoubleTapped;
this.KeyDown += ClashProxiesView_KeyDown; KeyDown += ClashProxiesView_KeyDown;
this.WhenActivated(disposables => this.WhenActivated(disposables =>
{ {

View File

@@ -12,7 +12,7 @@ public partial class DNSSettingWindow : WindowBase<DNSSettingViewModel>
_config = AppManager.Instance.Config; _config = AppManager.Instance.Config;
Loaded += Window_Loaded; Loaded += Window_Loaded;
btnCancel.Click += (s, e) => this.Close(); btnCancel.Click += (s, e) => Close();
ViewModel = new DNSSettingViewModel(UpdateViewHandler); ViewModel = new DNSSettingViewModel(UpdateViewHandler);
cmbRayFreedomDNSStrategy.ItemsSource = Global.DomainStrategy4Freedoms; cmbRayFreedomDNSStrategy.ItemsSource = Global.DomainStrategy4Freedoms;
@@ -77,7 +77,7 @@ public partial class DNSSettingWindow : WindowBase<DNSSettingViewModel>
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.Close(true); Close(true);
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -12,7 +12,7 @@ public partial class FullConfigTemplateWindow : WindowBase<FullConfigTemplateVie
_config = AppManager.Instance.Config; _config = AppManager.Instance.Config;
Loaded += Window_Loaded; Loaded += Window_Loaded;
btnCancel.Click += (s, e) => this.Close(); btnCancel.Click += (s, e) => Close();
ViewModel = new FullConfigTemplateViewModel(UpdateViewHandler); ViewModel = new FullConfigTemplateViewModel(UpdateViewHandler);
this.WhenActivated(disposables => this.WhenActivated(disposables =>
@@ -36,7 +36,7 @@ public partial class FullConfigTemplateWindow : WindowBase<FullConfigTemplateVie
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.Close(true); Close(true);
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -17,8 +17,8 @@ public partial class GlobalHotkeySettingWindow : WindowBase<GlobalHotkeySettingV
HotkeyManager.Instance.IsPause = true; HotkeyManager.Instance.IsPause = true;
Loaded += Window_Loaded; Loaded += Window_Loaded;
this.Closing += (s, e) => HotkeyManager.Instance.IsPause = false; Closing += (s, e) => HotkeyManager.Instance.IsPause = false;
btnCancel.Click += (s, e) => this.Close(); btnCancel.Click += (s, e) => Close();
this.WhenActivated(disposables => this.WhenActivated(disposables =>
{ {
@@ -34,7 +34,7 @@ public partial class GlobalHotkeySettingWindow : WindowBase<GlobalHotkeySettingV
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.Close(true); Close(true);
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -21,7 +21,7 @@ public partial class MainWindow : WindowBase<MainWindowViewModel>
_config = AppManager.Instance.Config; _config = AppManager.Instance.Config;
_manager = new WindowNotificationManager(TopLevel.GetTopLevel(this)) { MaxItems = 3, Position = NotificationPosition.TopRight }; _manager = new WindowNotificationManager(TopLevel.GetTopLevel(this)) { MaxItems = 3, Position = NotificationPosition.TopRight };
this.KeyDown += MainWindow_KeyDown; KeyDown += MainWindow_KeyDown;
menuSettingsSetUWP.Click += menuSettingsSetUWP_Click; menuSettingsSetUWP.Click += menuSettingsSetUWP_Click;
menuPromotion.Click += menuPromotion_Click; menuPromotion.Click += menuPromotion_Click;
menuCheckUpdate.Click += MenuCheckUpdate_Click; menuCheckUpdate.Click += MenuCheckUpdate_Click;
@@ -153,14 +153,14 @@ public partial class MainWindow : WindowBase<MainWindowViewModel>
if (Utils.IsWindows()) if (Utils.IsWindows())
{ {
this.Title = $"{Utils.GetVersion()} - {(Utils.IsAdministrator() ? ResUI.RunAsAdmin : ResUI.NotRunAsAdmin)}"; Title = $"{Utils.GetVersion()} - {(Utils.IsAdministrator() ? ResUI.RunAsAdmin : ResUI.NotRunAsAdmin)}";
ThreadPool.RegisterWaitForSingleObject(Program.ProgramStarted, OnProgramStarted, null, -1, false); ThreadPool.RegisterWaitForSingleObject(Program.ProgramStarted, OnProgramStarted, null, -1, false);
HotkeyManager.Instance.Init(_config, OnHotkeyHandler); HotkeyManager.Instance.Init(_config, OnHotkeyHandler);
} }
else else
{ {
this.Title = $"{Utils.GetVersion()}"; Title = $"{Utils.GetVersion()}";
menuRebootAsAdmin.IsVisible = false; menuRebootAsAdmin.IsVisible = false;
menuSettingsSetUWP.IsVisible = false; menuSettingsSetUWP.IsVisible = false;
@@ -170,7 +170,7 @@ public partial class MainWindow : WindowBase<MainWindowViewModel>
if (_config.UiItem.AutoHideStartup && Utils.IsWindows()) if (_config.UiItem.AutoHideStartup && Utils.IsWindows())
{ {
this.WindowState = WindowState.Minimized; WindowState = WindowState.Minimized;
} }
AddHelpMenuItem(); AddHelpMenuItem();
@@ -407,27 +407,27 @@ public partial class MainWindow : WindowBase<MainWindowViewModel>
: !_config.UiItem.ShowInTaskbar); : !_config.UiItem.ShowInTaskbar);
if (bl) if (bl)
{ {
this.Show(); Show();
if (this.WindowState == WindowState.Minimized) if (WindowState == WindowState.Minimized)
{ {
this.WindowState = WindowState.Normal; WindowState = WindowState.Normal;
} }
this.Activate(); Activate();
this.Focus(); Focus();
} }
else else
{ {
if (Utils.IsLinux() && _config.UiItem.Hide2TrayWhenClose == false) if (Utils.IsLinux() && _config.UiItem.Hide2TrayWhenClose == false)
{ {
this.WindowState = WindowState.Minimized; WindowState = WindowState.Minimized;
return; return;
} }
foreach (var ownedWindow in this.OwnedWindows) foreach (var ownedWindow in OwnedWindows)
{ {
ownedWindow.Close(); ownedWindow.Close();
} }
this.Hide(); Hide();
} }
_config.UiItem.ShowInTaskbar = bl; _config.UiItem.ShowInTaskbar = bl;

View File

@@ -11,7 +11,7 @@ public partial class OptionSettingWindow : WindowBase<OptionSettingViewModel>
InitializeComponent(); InitializeComponent();
Loaded += Window_Loaded; Loaded += Window_Loaded;
btnCancel.Click += (s, e) => this.Close(); btnCancel.Click += (s, e) => Close();
_config = AppManager.Instance.Config; _config = AppManager.Instance.Config;
ViewModel = new OptionSettingViewModel(UpdateViewHandler); ViewModel = new OptionSettingViewModel(UpdateViewHandler);
@@ -153,7 +153,7 @@ public partial class OptionSettingWindow : WindowBase<OptionSettingViewModel>
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.Close(true); Close(true);
break; break;
case EViewAction.InitSettingFont: case EViewAction.InitSettingFont:

View File

@@ -13,8 +13,8 @@ public partial class RoutingRuleDetailsWindow : WindowBase<RoutingRuleDetailsVie
{ {
InitializeComponent(); InitializeComponent();
this.Loaded += Window_Loaded; Loaded += Window_Loaded;
btnCancel.Click += (s, e) => this.Close(); btnCancel.Click += (s, e) => Close();
clbProtocol.SelectionChanged += ClbProtocol_SelectionChanged; clbProtocol.SelectionChanged += ClbProtocol_SelectionChanged;
clbInboundTag.SelectionChanged += ClbInboundTag_SelectionChanged; clbInboundTag.SelectionChanged += ClbInboundTag_SelectionChanged;
@@ -61,7 +61,7 @@ public partial class RoutingRuleDetailsWindow : WindowBase<RoutingRuleDetailsVie
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.Close(true); Close(true);
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -14,9 +14,9 @@ public partial class RoutingRuleSettingWindow : WindowBase<RoutingRuleSettingVie
{ {
InitializeComponent(); InitializeComponent();
this.Loaded += Window_Loaded; Loaded += Window_Loaded;
btnCancel.Click += (s, e) => this.Close(); btnCancel.Click += (s, e) => Close();
this.KeyDown += RoutingRuleSettingWindow_KeyDown; KeyDown += RoutingRuleSettingWindow_KeyDown;
lstRules.SelectionChanged += lstRules_SelectionChanged; lstRules.SelectionChanged += lstRules_SelectionChanged;
lstRules.DoubleTapped += LstRules_DoubleTapped; lstRules.DoubleTapped += LstRules_DoubleTapped;
menuRuleSelectAll.Click += menuRuleSelectAll_Click; menuRuleSelectAll.Click += menuRuleSelectAll_Click;
@@ -64,7 +64,7 @@ public partial class RoutingRuleSettingWindow : WindowBase<RoutingRuleSettingVie
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.Close(true); Close(true);
break; break;
case EViewAction.ShowYesNo: case EViewAction.ShowYesNo:

View File

@@ -12,9 +12,9 @@ public partial class RoutingSettingWindow : WindowBase<RoutingSettingViewModel>
InitializeComponent(); InitializeComponent();
Loaded += Window_Loaded; Loaded += Window_Loaded;
this.Closing += RoutingSettingWindow_Closing; Closing += RoutingSettingWindow_Closing;
btnCancel.Click += (s, e) => this.Close(); btnCancel.Click += (s, e) => Close();
this.KeyDown += RoutingSettingWindow_KeyDown; KeyDown += RoutingSettingWindow_KeyDown;
lstRoutings.SelectionChanged += lstRoutings_SelectionChanged; lstRoutings.SelectionChanged += lstRoutings_SelectionChanged;
lstRoutings.DoubleTapped += LstRoutings_DoubleTapped; lstRoutings.DoubleTapped += LstRoutings_DoubleTapped;
menuRoutingAdvancedSelectAll.Click += menuRoutingAdvancedSelectAll_Click; menuRoutingAdvancedSelectAll.Click += menuRoutingAdvancedSelectAll_Click;
@@ -48,7 +48,7 @@ public partial class RoutingSettingWindow : WindowBase<RoutingSettingViewModel>
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.Close(true); Close(true);
break; break;
case EViewAction.ShowYesNo: case EViewAction.ShowYesNo:
@@ -116,7 +116,7 @@ public partial class RoutingSettingWindow : WindowBase<RoutingSettingViewModel>
private void btnCancel_Click(object? sender, RoutedEventArgs e) private void btnCancel_Click(object? sender, RoutedEventArgs e)
{ {
_manualClose = true; _manualClose = true;
this.Close(ViewModel?.IsModified); Close(ViewModel?.IsModified);
} }
private void RoutingSettingWindow_Closing(object? sender, WindowClosingEventArgs e) private void RoutingSettingWindow_Closing(object? sender, WindowClosingEventArgs e)

View File

@@ -14,7 +14,7 @@ public partial class SubEditWindow : WindowBase<SubEditViewModel>
InitializeComponent(); InitializeComponent();
Loaded += Window_Loaded; Loaded += Window_Loaded;
btnCancel.Click += (s, e) => this.Close(); btnCancel.Click += (s, e) => Close();
ViewModel = new SubEditViewModel(subItem, UpdateViewHandler); ViewModel = new SubEditViewModel(subItem, UpdateViewHandler);
@@ -45,7 +45,7 @@ public partial class SubEditWindow : WindowBase<SubEditViewModel>
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.Close(true); Close(true);
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -14,8 +14,8 @@ public partial class SubSettingWindow : WindowBase<SubSettingViewModel>
menuClose.Click += menuClose_Click; menuClose.Click += menuClose_Click;
Loaded += Window_Loaded; Loaded += Window_Loaded;
this.Closing += SubSettingWindow_Closing; Closing += SubSettingWindow_Closing;
this.KeyDown += SubSettingWindow_KeyDown; KeyDown += SubSettingWindow_KeyDown;
ViewModel = new SubSettingViewModel(UpdateViewHandler); ViewModel = new SubSettingViewModel(UpdateViewHandler);
lstSubscription.DoubleTapped += LstSubscription_DoubleTapped; lstSubscription.DoubleTapped += LstSubscription_DoubleTapped;
lstSubscription.SelectionChanged += LstSubscription_SelectionChanged; lstSubscription.SelectionChanged += LstSubscription_SelectionChanged;
@@ -37,7 +37,7 @@ public partial class SubSettingWindow : WindowBase<SubSettingViewModel>
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.Close(); Close();
break; break;
case EViewAction.ShowYesNo: case EViewAction.ShowYesNo:
@@ -89,7 +89,7 @@ public partial class SubSettingWindow : WindowBase<SubSettingViewModel>
private void menuClose_Click(object? sender, RoutedEventArgs e) private void menuClose_Click(object? sender, RoutedEventArgs e)
{ {
_manualClose = true; _manualClose = true;
this.Close(ViewModel?.IsModified); Close(ViewModel?.IsModified);
} }
private void SubSettingWindow_Closing(object? sender, WindowClosingEventArgs e) private void SubSettingWindow_Closing(object? sender, WindowClosingEventArgs e)

View File

@@ -9,7 +9,7 @@ public partial class SudoPasswordInputView : UserControl
{ {
InitializeComponent(); InitializeComponent();
this.Loaded += (s, e) => txtPassword.Focus(); Loaded += (s, e) => txtPassword.Focus();
btnSave.Click += async (_, _) => await SavePasswordAsync(); btnSave.Click += async (_, _) => await SavePasswordAsync();

View File

@@ -9,7 +9,7 @@ public partial class App : Application
public App() public App()
{ {
this.DispatcherUnhandledException += App_DispatcherUnhandledException; DispatcherUnhandledException += App_DispatcherUnhandledException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
} }
@@ -23,7 +23,7 @@ public partial class App : Application
var exePathKey = Utils.GetMd5(Utils.GetExePath()); var exePathKey = Utils.GetMd5(Utils.GetExePath());
var rebootas = (e.Args ?? Array.Empty<string>()).Any(t => t == Global.RebootAs); var rebootas = (e.Args ?? Array.Empty<string>()).Any(t => t == Global.RebootAs);
ProgramStarted = new EventWaitHandle(false, EventResetMode.AutoReset, exePathKey, out bool bCreatedNew); ProgramStarted = new EventWaitHandle(false, EventResetMode.AutoReset, exePathKey, out var bCreatedNew);
if (!rebootas && !bCreatedNew) if (!rebootas && !bCreatedNew)
{ {
ProgramStarted.Set(); ProgramStarted.Set();

View File

@@ -1,6 +1,6 @@
using Microsoft.Win32; using Microsoft.Win32;
namespace v2rayN; namespace v2rayN.Common;
internal class UI internal class UI
{ {

View File

@@ -3,7 +3,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using Microsoft.Win32; using Microsoft.Win32;
namespace v2rayN; namespace v2rayN.Common;
internal static class WindowsUtils internal static class WindowsUtils
{ {
@@ -40,13 +40,13 @@ internal static class WindowsUtils
} }
[DllImport("dwmapi.dll")] [DllImport("dwmapi.dll")]
public static extern int DwmSetWindowAttribute(IntPtr hwnd, DWMWINDOWATTRIBUTE attribute, ref int attributeValue, uint attributeSize); public static extern int DwmSetWindowAttribute(nint hwnd, DWMWINDOWATTRIBUTE attribute, ref int attributeValue, uint attributeSize);
public static ImageSource IconToImageSource(Icon icon) public static ImageSource IconToImageSource(Icon icon)
{ {
return Imaging.CreateBitmapSourceFromHIcon( return Imaging.CreateBitmapSourceFromHIcon(
icon.Handle, icon.Handle,
new System.Windows.Int32Rect(0, 0, icon.Width, icon.Height), new Int32Rect(0, 0, icon.Width, icon.Height),
BitmapSizeOptions.FromEmptyOptions()); BitmapSizeOptions.FromEmptyOptions());
} }
@@ -65,9 +65,9 @@ internal static class WindowsUtils
private static void SetDarkBorder(Window window, bool dark) private static void SetDarkBorder(Window window, bool dark)
{ {
// Make sure the handle is created before the window is shown // Make sure the handle is created before the window is shown
IntPtr hWnd = new WindowInteropHelper(window).EnsureHandle(); var hWnd = new WindowInteropHelper(window).EnsureHandle();
int attribute = dark ? 1 : 0; var attribute = dark ? 1 : 0;
uint attributeSize = (uint)Marshal.SizeOf(attribute); var attributeSize = (uint)Marshal.SizeOf(attribute);
DwmSetWindowAttribute(hWnd, DWMWINDOWATTRIBUTE.DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1, ref attribute, attributeSize); DwmSetWindowAttribute(hWnd, DWMWINDOWATTRIBUTE.DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1, ref attribute, attributeSize);
DwmSetWindowAttribute(hWnd, DWMWINDOWATTRIBUTE.DWMWA_USE_IMMERSIVE_DARK_MODE, ref attribute, attributeSize); DwmSetWindowAttribute(hWnd, DWMWINDOWATTRIBUTE.DWMWA_USE_IMMERSIVE_DARK_MODE, ref attribute, attributeSize);
} }

View File

@@ -43,7 +43,7 @@ public sealed class HotkeyManager
modifiers |= KeyModifiers.Alt; modifiers |= KeyModifiers.Alt;
} }
key = key << 16 | (int)modifiers; key = (key << 16) | (int)modifiers;
if (!_hotkeyTriggerDic.ContainsKey(key)) if (!_hotkeyTriggerDic.ContainsKey(key))
{ {
_hotkeyTriggerDic.Add(key, new() { item.EGlobalHotkey }); _hotkeyTriggerDic.Add(key, new() { item.EGlobalHotkey });
@@ -103,7 +103,7 @@ public sealed class HotkeyManager
private (int fsModifiers, int vKey, string hotkeyStr, List<string> Names) GetHotkeyInfo(int hotkeyCode) private (int fsModifiers, int vKey, string hotkeyStr, List<string> Names) GetHotkeyInfo(int hotkeyCode)
{ {
var fsModifiers = hotkeyCode & 0xffff; var fsModifiers = hotkeyCode & 0xffff;
var vKey = hotkeyCode >> 16 & 0xffff; var vKey = (hotkeyCode >> 16) & 0xffff;
var hotkeyStr = new StringBuilder(); var hotkeyStr = new StringBuilder();
var names = new List<string>(); var names = new List<string>();

View File

@@ -60,18 +60,18 @@ public sealed class WindowsManager
return null; return null;
} }
Color color = ColorTranslator.FromHtml("#3399CC"); var color = ColorTranslator.FromHtml("#3399CC");
int index = (int)config.SystemProxyItem.SysProxyType; var index = (int)config.SystemProxyItem.SysProxyType;
if (index > 0) if (index > 0)
{ {
color = (new[] { Color.Red, Color.Purple, Color.DarkGreen, Color.Orange, Color.DarkSlateBlue, Color.RoyalBlue })[index - 1]; color = (new[] { Color.Red, Color.Purple, Color.DarkGreen, Color.Orange, Color.DarkSlateBlue, Color.RoyalBlue })[index - 1];
} }
int width = 128; var width = 128;
int height = 128; var height = 128;
Bitmap bitmap = new(width, height); Bitmap bitmap = new(width, height);
Graphics graphics = Graphics.FromImage(bitmap); var graphics = Graphics.FromImage(bitmap);
SolidBrush drawBrush = new(color); SolidBrush drawBrush = new(color);
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
@@ -79,7 +79,7 @@ public sealed class WindowsManager
graphics.DrawImage(new Bitmap(item.CustomIcon), 0, 0, width, height); graphics.DrawImage(new Bitmap(item.CustomIcon), 0, 0, width, height);
graphics.FillEllipse(drawBrush, width / 2, width / 2, width / 2, width / 2); graphics.FillEllipse(drawBrush, width / 2, width / 2, width / 2, width / 2);
Icon createdIcon = Icon.FromHandle(bitmap.GetHicon()); var createdIcon = Icon.FromHandle(bitmap.GetHicon());
drawBrush.Dispose(); drawBrush.Dispose();
graphics.Dispose(); graphics.Dispose();

View File

@@ -6,9 +6,9 @@ public partial class AddGroupServerWindow
{ {
InitializeComponent(); InitializeComponent();
this.Owner = Application.Current.MainWindow; Owner = Application.Current.MainWindow;
this.Loaded += Window_Loaded; Loaded += Window_Loaded;
this.PreviewKeyDown += AddGroupServerWindow_PreviewKeyDown; PreviewKeyDown += AddGroupServerWindow_PreviewKeyDown;
lstChild.SelectionChanged += LstChild_SelectionChanged; lstChild.SelectionChanged += LstChild_SelectionChanged;
menuSelectAllChild.Click += MenuSelectAllChild_Click; menuSelectAllChild.Click += MenuSelectAllChild_Click;
@@ -27,11 +27,11 @@ public partial class AddGroupServerWindow
switch (profileItem.ConfigType) switch (profileItem.ConfigType)
{ {
case EConfigType.PolicyGroup: case EConfigType.PolicyGroup:
this.Title = ResUI.TbConfigTypePolicyGroup; Title = ResUI.TbConfigTypePolicyGroup;
break; break;
case EConfigType.ProxyChain: case EConfigType.ProxyChain:
this.Title = ResUI.TbConfigTypeProxyChain; Title = ResUI.TbConfigTypeProxyChain;
gridPolicyGroup.Visibility = Visibility.Collapsed; gridPolicyGroup.Visibility = Visibility.Collapsed;
break; break;
} }
@@ -61,7 +61,7 @@ public partial class AddGroupServerWindow
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -6,8 +6,8 @@ public partial class AddServer2Window
{ {
InitializeComponent(); InitializeComponent();
this.Owner = Application.Current.MainWindow; Owner = Application.Current.MainWindow;
this.Loaded += Window_Loaded; Loaded += Window_Loaded;
ViewModel = new AddServer2ViewModel(profileItem, UpdateViewHandler); ViewModel = new AddServer2ViewModel(profileItem, UpdateViewHandler);
cmbCoreType.ItemsSource = Utils.GetEnumNames<ECoreType>().Where(t => t != ECoreType.v2rayN.ToString()).ToList().AppendEmpty(); cmbCoreType.ItemsSource = Utils.GetEnumNames<ECoreType>().Where(t => t != ECoreType.v2rayN.ToString()).ToList().AppendEmpty();
@@ -32,11 +32,11 @@ public partial class AddServer2Window
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
case EViewAction.BrowseServer: case EViewAction.BrowseServer:
if (UI.OpenFileDialog(out string fileName, "Config|*.json|YAML|*.yaml;*.yml|All|*.*") != true) if (UI.OpenFileDialog(out var fileName, "Config|*.json|YAML|*.yaml;*.yml|All|*.*") != true)
{ {
return false; return false;
} }

View File

@@ -8,8 +8,8 @@ public partial class AddServerWindow
{ {
InitializeComponent(); InitializeComponent();
this.Owner = Application.Current.MainWindow; Owner = Application.Current.MainWindow;
this.Loaded += Window_Loaded; Loaded += Window_Loaded;
cmbNetwork.SelectionChanged += CmbNetwork_SelectionChanged; cmbNetwork.SelectionChanged += CmbNetwork_SelectionChanged;
cmbStreamSecurity.SelectionChanged += CmbStreamSecurity_SelectionChanged; cmbStreamSecurity.SelectionChanged += CmbStreamSecurity_SelectionChanged;
btnGUID.Click += btnGUID_Click; btnGUID.Click += btnGUID_Click;
@@ -191,7 +191,7 @@ public partial class AddServerWindow
this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables);
}); });
this.Title = $"{profileItem.ConfigType}"; Title = $"{profileItem.ConfigType}";
WindowsUtils.SetDarkBorder(this, AppManager.Instance.Config.UiItem.CurrentTheme); WindowsUtils.SetDarkBorder(this, AppManager.Instance.Config.UiItem.CurrentTheme);
} }
@@ -200,7 +200,7 @@ public partial class AddServerWindow
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -28,7 +28,7 @@ public partial class BackupAndRestoreView
private void MenuLocalBackup_Click(object sender, RoutedEventArgs e) private void MenuLocalBackup_Click(object sender, RoutedEventArgs e)
{ {
if (UI.SaveFileDialog(out string fileName, "Zip|*.zip") != true) if (UI.SaveFileDialog(out var fileName, "Zip|*.zip") != true)
{ {
return; return;
} }
@@ -37,7 +37,7 @@ public partial class BackupAndRestoreView
private void MenuLocalRestore_Click(object sender, RoutedEventArgs e) private void MenuLocalRestore_Click(object sender, RoutedEventArgs e)
{ {
if (UI.OpenFileDialog(out string fileName, "Zip|*.zip|All|*.*") != true) if (UI.OpenFileDialog(out var fileName, "Zip|*.zip|All|*.*") != true)
{ {
return; return;
} }

View File

@@ -8,7 +8,7 @@ public partial class DNSSettingWindow
{ {
InitializeComponent(); InitializeComponent();
this.Owner = Application.Current.MainWindow; Owner = Application.Current.MainWindow;
_config = AppManager.Instance.Config; _config = AppManager.Instance.Config;
ViewModel = new DNSSettingViewModel(UpdateViewHandler); ViewModel = new DNSSettingViewModel(UpdateViewHandler);
@@ -78,7 +78,7 @@ public partial class DNSSettingWindow
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -8,7 +8,7 @@ public partial class FullConfigTemplateWindow
{ {
InitializeComponent(); InitializeComponent();
this.Owner = Application.Current.MainWindow; Owner = Application.Current.MainWindow;
_config = AppManager.Instance.Config; _config = AppManager.Instance.Config;
ViewModel = new FullConfigTemplateViewModel(UpdateViewHandler); ViewModel = new FullConfigTemplateViewModel(UpdateViewHandler);
@@ -35,7 +35,7 @@ public partial class FullConfigTemplateWindow
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -11,14 +11,14 @@ public partial class GlobalHotkeySettingWindow
{ {
InitializeComponent(); InitializeComponent();
this.Owner = Application.Current.MainWindow; Owner = Application.Current.MainWindow;
ViewModel = new GlobalHotkeySettingViewModel(UpdateViewHandler); ViewModel = new GlobalHotkeySettingViewModel(UpdateViewHandler);
btnReset.Click += btnReset_Click; btnReset.Click += btnReset_Click;
HotkeyManager.Instance.IsPause = true; HotkeyManager.Instance.IsPause = true;
this.Closing += (s, e) => HotkeyManager.Instance.IsPause = false; Closing += (s, e) => HotkeyManager.Instance.IsPause = false;
this.WhenActivated(disposables => this.WhenActivated(disposables =>
{ {
@@ -35,7 +35,7 @@ public partial class GlobalHotkeySettingWindow
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -19,8 +19,8 @@ public partial class MainWindow
ThreadPool.RegisterWaitForSingleObject(App.ProgramStarted, OnProgramStarted, null, -1, false); ThreadPool.RegisterWaitForSingleObject(App.ProgramStarted, OnProgramStarted, null, -1, false);
App.Current.SessionEnding += Current_SessionEnding; App.Current.SessionEnding += Current_SessionEnding;
this.Closing += MainWindow_Closing; Closing += MainWindow_Closing;
this.PreviewKeyDown += MainWindow_PreviewKeyDown; PreviewKeyDown += MainWindow_PreviewKeyDown;
menuSettingsSetUWP.Click += menuSettingsSetUWP_Click; menuSettingsSetUWP.Click += menuSettingsSetUWP_Click;
menuPromotion.Click += menuPromotion_Click; menuPromotion.Click += menuPromotion_Click;
menuClose.Click += menuClose_Click; menuClose.Click += menuClose_Click;
@@ -150,10 +150,10 @@ public partial class MainWindow
.DisposeWith(disposables); .DisposeWith(disposables);
}); });
this.Title = $"{Utils.GetVersion()} - {(Utils.IsAdministrator() ? ResUI.RunAsAdmin : ResUI.NotRunAsAdmin)}"; Title = $"{Utils.GetVersion()} - {(Utils.IsAdministrator() ? ResUI.RunAsAdmin : ResUI.NotRunAsAdmin)}";
if (_config.UiItem.AutoHideStartup) if (_config.UiItem.AutoHideStartup)
{ {
this.WindowState = WindowState.Minimized; WindowState = WindowState.Minimized;
} }
if (!_config.GuiItem.EnableHWA) if (!_config.GuiItem.EnableHWA)
@@ -187,35 +187,35 @@ public partial class MainWindow
case EViewAction.AddServerWindow: case EViewAction.AddServerWindow:
if (obj is null) if (obj is null)
return false; return false;
return (new AddServerWindow((ProfileItem)obj)).ShowDialog() ?? false; return new AddServerWindow((ProfileItem)obj).ShowDialog() ?? false;
case EViewAction.AddServer2Window: case EViewAction.AddServer2Window:
if (obj is null) if (obj is null)
return false; return false;
return (new AddServer2Window((ProfileItem)obj)).ShowDialog() ?? false; return new AddServer2Window((ProfileItem)obj).ShowDialog() ?? false;
case EViewAction.AddGroupServerWindow: case EViewAction.AddGroupServerWindow:
if (obj is null) if (obj is null)
return false; return false;
return (new AddGroupServerWindow((ProfileItem)obj)).ShowDialog() ?? false; return new AddGroupServerWindow((ProfileItem)obj).ShowDialog() ?? false;
case EViewAction.DNSSettingWindow: case EViewAction.DNSSettingWindow:
return (new DNSSettingWindow().ShowDialog() ?? false); return new DNSSettingWindow().ShowDialog() ?? false;
case EViewAction.RoutingSettingWindow: case EViewAction.RoutingSettingWindow:
return (new RoutingSettingWindow().ShowDialog() ?? false); return new RoutingSettingWindow().ShowDialog() ?? false;
case EViewAction.OptionSettingWindow: case EViewAction.OptionSettingWindow:
return (new OptionSettingWindow().ShowDialog() ?? false); return new OptionSettingWindow().ShowDialog() ?? false;
case EViewAction.FullConfigTemplateWindow: case EViewAction.FullConfigTemplateWindow:
return (new FullConfigTemplateWindow().ShowDialog() ?? false); return new FullConfigTemplateWindow().ShowDialog() ?? false;
case EViewAction.GlobalHotkeySettingWindow: case EViewAction.GlobalHotkeySettingWindow:
return (new GlobalHotkeySettingWindow().ShowDialog() ?? false); return new GlobalHotkeySettingWindow().ShowDialog() ?? false;
case EViewAction.SubSettingWindow: case EViewAction.SubSettingWindow:
return (new SubSettingWindow().ShowDialog() ?? false); return new SubSettingWindow().ShowDialog() ?? false;
case EViewAction.ScanScreenTask: case EViewAction.ScanScreenTask:
await ScanScreenTaskAsync(); await ScanScreenTaskAsync();
@@ -372,7 +372,7 @@ public partial class MainWindow
this?.Show(); this?.Show();
if (this?.WindowState == WindowState.Minimized) if (this?.WindowState == WindowState.Minimized)
{ {
this.WindowState = WindowState.Normal; WindowState = WindowState.Normal;
} }
this?.Activate(); this?.Activate();
this?.Focus(); this?.Focus();

View File

@@ -31,10 +31,10 @@ public partial class MsgView
case EViewAction.DispatcherShowMsg: case EViewAction.DispatcherShowMsg:
if (obj is null) if (obj is null)
return false; return false;
Application.Current?.Dispatcher.Invoke((() => Application.Current?.Dispatcher.Invoke(() =>
{ {
ShowMsg(obj); ShowMsg(obj);
}), DispatcherPriority.ApplicationIdle); }, DispatcherPriority.ApplicationIdle);
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -10,7 +10,7 @@ public partial class OptionSettingWindow
{ {
InitializeComponent(); InitializeComponent();
this.Owner = Application.Current.MainWindow; Owner = Application.Current.MainWindow;
_config = AppManager.Instance.Config; _config = AppManager.Instance.Config;
ViewModel = new OptionSettingViewModel(UpdateViewHandler); ViewModel = new OptionSettingViewModel(UpdateViewHandler);
@@ -136,7 +136,7 @@ public partial class OptionSettingWindow
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
case EViewAction.InitSettingFont: case EViewAction.InitSettingFont:
@@ -168,12 +168,12 @@ public partial class OptionSettingWindow
foreach (var ttf in files) foreach (var ttf in files)
{ {
var families = Fonts.GetFontFamilies(Utils.GetFontsPath(ttf)); var families = Fonts.GetFontFamilies(Utils.GetFontsPath(ttf));
foreach (FontFamily family in families) foreach (var family in families)
{ {
var typefaces = family.GetTypefaces(); var typefaces = family.GetTypefaces();
foreach (Typeface typeface in typefaces) foreach (var typeface in typefaces)
{ {
typeface.TryGetGlyphTypeface(out GlyphTypeface glyph); typeface.TryGetGlyphTypeface(out var glyph);
//var fontFace = glyph.Win32FaceNames[new CultureInfo("en-us")]; //var fontFace = glyph.Win32FaceNames[new CultureInfo("en-us")];
//if (!fontFace.Equals("Regular") && !fontFace.Equals("Normal")) //if (!fontFace.Equals("Regular") && !fontFace.Equals("Normal"))
//{ //{

View File

@@ -71,7 +71,7 @@ public partial class ProfilesSelectWindow
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -127,7 +127,7 @@ public partial class ProfilesView
case EViewAction.SaveFileDialog: case EViewAction.SaveFileDialog:
if (obj is null) if (obj is null)
return false; return false;
if (UI.SaveFileDialog(out string fileName, "Config|*.json") != true) if (UI.SaveFileDialog(out var fileName, "Config|*.json") != true)
{ {
return false; return false;
} }
@@ -137,17 +137,17 @@ public partial class ProfilesView
case EViewAction.AddServerWindow: case EViewAction.AddServerWindow:
if (obj is null) if (obj is null)
return false; return false;
return (new AddServerWindow((ProfileItem)obj)).ShowDialog() ?? false; return new AddServerWindow((ProfileItem)obj).ShowDialog() ?? false;
case EViewAction.AddServer2Window: case EViewAction.AddServer2Window:
if (obj is null) if (obj is null)
return false; return false;
return (new AddServer2Window((ProfileItem)obj)).ShowDialog() ?? false; return new AddServer2Window((ProfileItem)obj).ShowDialog() ?? false;
case EViewAction.AddGroupServerWindow: case EViewAction.AddGroupServerWindow:
if (obj is null) if (obj is null)
return false; return false;
return (new AddGroupServerWindow((ProfileItem)obj)).ShowDialog() ?? false; return new AddGroupServerWindow((ProfileItem)obj).ShowDialog() ?? false;
case EViewAction.ShareServer: case EViewAction.ShareServer:
if (obj is null) if (obj is null)
@@ -158,7 +158,7 @@ public partial class ProfilesView
case EViewAction.SubEditWindow: case EViewAction.SubEditWindow:
if (obj is null) if (obj is null)
return false; return false;
return (new SubEditWindow((SubItem)obj)).ShowDialog() ?? false; return new SubEditWindow((SubItem)obj).ShowDialog() ?? false;
case EViewAction.DispatcherRefreshServersBiz: case EViewAction.DispatcherRefreshServersBiz:
Application.Current?.Dispatcher.Invoke(RefreshServersBiz, DispatcherPriority.Normal); Application.Current?.Dispatcher.Invoke(RefreshServersBiz, DispatcherPriority.Normal);
@@ -415,8 +415,8 @@ public partial class ProfilesView
private void LstProfiles_MouseMove(object sender, MouseEventArgs e) private void LstProfiles_MouseMove(object sender, MouseEventArgs e)
{ {
// Get the current mouse position // Get the current mouse position
Point mousePos = e.GetPosition(null); var mousePos = e.GetPosition(null);
Vector diff = startPoint - mousePos; var diff = startPoint - mousePos;
if (e.LeftButton == MouseButtonState.Pressed && if (e.LeftButton == MouseButtonState.Pressed &&
(Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance || (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance ||
@@ -429,7 +429,7 @@ public partial class ProfilesView
if (listViewItem == null) if (listViewItem == null)
return; // Abort return; // Abort
// Find the data behind the ListViewItem // Find the data behind the ListViewItem
ProfileItemModel item = (ProfileItemModel)listView.ItemContainerGenerator.ItemFromContainer(listViewItem); var item = (ProfileItemModel)listView.ItemContainerGenerator.ItemFromContainer(listViewItem);
if (item == null) if (item == null)
return; // Abort return; // Abort
// Initialize the drag & drop operation // Initialize the drag & drop operation
@@ -462,7 +462,7 @@ public partial class ProfilesView
return; return;
} }
// Find the data behind the Item // Find the data behind the Item
ProfileItemModel item = (ProfileItemModel)listView.ItemContainerGenerator.ItemFromContainer(listViewItem); var item = (ProfileItemModel)listView.ItemContainerGenerator.ItemFromContainer(listViewItem);
if (item == null) if (item == null)
return; return;
// Move item into observable collection // Move item into observable collection

View File

@@ -6,8 +6,8 @@ public partial class RoutingRuleDetailsWindow
{ {
InitializeComponent(); InitializeComponent();
this.Owner = Application.Current.MainWindow; Owner = Application.Current.MainWindow;
this.Loaded += Window_Loaded; Loaded += Window_Loaded;
clbProtocol.SelectionChanged += ClbProtocol_SelectionChanged; clbProtocol.SelectionChanged += ClbProtocol_SelectionChanged;
clbInboundTag.SelectionChanged += ClbInboundTag_SelectionChanged; clbInboundTag.SelectionChanged += ClbInboundTag_SelectionChanged;
@@ -54,7 +54,7 @@ public partial class RoutingRuleDetailsWindow
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -6,9 +6,9 @@ public partial class RoutingRuleSettingWindow
{ {
InitializeComponent(); InitializeComponent();
this.Owner = Application.Current.MainWindow; Owner = Application.Current.MainWindow;
this.Loaded += Window_Loaded; Loaded += Window_Loaded;
this.PreviewKeyDown += RoutingRuleSettingWindow_PreviewKeyDown; PreviewKeyDown += RoutingRuleSettingWindow_PreviewKeyDown;
lstRules.SelectionChanged += lstRules_SelectionChanged; lstRules.SelectionChanged += lstRules_SelectionChanged;
lstRules.MouseDoubleClick += LstRules_MouseDoubleClick; lstRules.MouseDoubleClick += LstRules_MouseDoubleClick;
menuRuleSelectAll.Click += menuRuleSelectAll_Click; menuRuleSelectAll.Click += menuRuleSelectAll_Click;
@@ -57,7 +57,7 @@ public partial class RoutingRuleSettingWindow
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
case EViewAction.ShowYesNo: case EViewAction.ShowYesNo:
@@ -80,11 +80,11 @@ public partial class RoutingRuleSettingWindow
if (obj is null) if (obj is null)
return false; return false;
return (new RoutingRuleDetailsWindow((RulesItem)obj)).ShowDialog() ?? false; return new RoutingRuleDetailsWindow((RulesItem)obj).ShowDialog() ?? false;
case EViewAction.ImportRulesFromFile: case EViewAction.ImportRulesFromFile:
if (UI.OpenFileDialog(out string fileName, "Rules|*.json|All|*.*") != true) if (UI.OpenFileDialog(out var fileName, "Rules|*.json|All|*.*") != true)
{ {
return false; return false;
} }
@@ -174,7 +174,7 @@ public partial class RoutingRuleSettingWindow
private void btnBrowseCustomIcon_Click(object sender, System.Windows.RoutedEventArgs e) private void btnBrowseCustomIcon_Click(object sender, System.Windows.RoutedEventArgs e)
{ {
if (UI.OpenFileDialog(out string fileName, if (UI.OpenFileDialog(out var fileName,
"PNG,ICO|*.png;*.ico") != true) "PNG,ICO|*.png;*.ico") != true)
{ {
return; return;
@@ -185,7 +185,7 @@ public partial class RoutingRuleSettingWindow
private void btnBrowseCustomRulesetPath4Singbox_Click(object sender, RoutedEventArgs e) private void btnBrowseCustomRulesetPath4Singbox_Click(object sender, RoutedEventArgs e)
{ {
if (UI.OpenFileDialog(out string fileName, if (UI.OpenFileDialog(out var fileName,
"Config|*.json|All|*.*") != true) "Config|*.json|All|*.*") != true)
{ {
return; return;

View File

@@ -6,9 +6,9 @@ public partial class RoutingSettingWindow
{ {
InitializeComponent(); InitializeComponent();
this.Owner = Application.Current.MainWindow; Owner = Application.Current.MainWindow;
this.Closing += RoutingSettingWindow_Closing; Closing += RoutingSettingWindow_Closing;
this.PreviewKeyDown += RoutingSettingWindow_PreviewKeyDown; PreviewKeyDown += RoutingSettingWindow_PreviewKeyDown;
lstRoutings.SelectionChanged += lstRoutings_SelectionChanged; lstRoutings.SelectionChanged += lstRoutings_SelectionChanged;
lstRoutings.MouseDoubleClick += LstRoutings_MouseDoubleClick; lstRoutings.MouseDoubleClick += LstRoutings_MouseDoubleClick;
menuRoutingAdvancedSelectAll.Click += menuRoutingAdvancedSelectAll_Click; menuRoutingAdvancedSelectAll.Click += menuRoutingAdvancedSelectAll_Click;
@@ -44,7 +44,7 @@ public partial class RoutingSettingWindow
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
case EViewAction.ShowYesNo: case EViewAction.ShowYesNo:
@@ -58,7 +58,7 @@ public partial class RoutingSettingWindow
if (obj is null) if (obj is null)
return false; return false;
return (new RoutingRuleSettingWindow((RoutingItem)obj)).ShowDialog() ?? false; return new RoutingRuleSettingWindow((RoutingItem)obj).ShowDialog() ?? false;
} }
return await Task.FromResult(true); return await Task.FromResult(true);
} }
@@ -67,7 +67,7 @@ public partial class RoutingSettingWindow
{ {
if (ViewModel?.IsModified == true) if (ViewModel?.IsModified == true)
{ {
this.DialogResult = true; DialogResult = true;
} }
} }
@@ -122,11 +122,11 @@ public partial class RoutingSettingWindow
{ {
if (ViewModel?.IsModified == true) if (ViewModel?.IsModified == true)
{ {
this.DialogResult = true; DialogResult = true;
} }
else else
{ {
this.Close(); Close();
} }
} }
} }

View File

@@ -71,11 +71,11 @@ public partial class StatusBarView
switch (action) switch (action)
{ {
case EViewAction.DispatcherRefreshIcon: case EViewAction.DispatcherRefreshIcon:
Application.Current?.Dispatcher.Invoke((async () => Application.Current?.Dispatcher.Invoke(async () =>
{ {
tbNotify.Icon = await WindowsManager.Instance.GetNotifyIcon(_config); tbNotify.Icon = await WindowsManager.Instance.GetNotifyIcon(_config);
Application.Current.MainWindow.Icon = WindowsManager.Instance.GetAppIcon(_config); Application.Current.MainWindow.Icon = WindowsManager.Instance.GetAppIcon(_config);
}), DispatcherPriority.Normal); }, DispatcherPriority.Normal);
break; break;
case EViewAction.SetClipboardData: case EViewAction.SetClipboardData:

View File

@@ -6,8 +6,8 @@ public partial class SubEditWindow
{ {
InitializeComponent(); InitializeComponent();
this.Owner = Application.Current.MainWindow; Owner = Application.Current.MainWindow;
this.Loaded += Window_Loaded; Loaded += Window_Loaded;
ViewModel = new SubEditViewModel(subItem, UpdateViewHandler); ViewModel = new SubEditViewModel(subItem, UpdateViewHandler);
@@ -39,7 +39,7 @@ public partial class SubEditWindow
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
} }
return await Task.FromResult(true); return await Task.FromResult(true);

View File

@@ -8,10 +8,10 @@ public partial class SubSettingWindow
{ {
InitializeComponent(); InitializeComponent();
this.Owner = Application.Current.MainWindow; Owner = Application.Current.MainWindow;
ViewModel = new SubSettingViewModel(UpdateViewHandler); ViewModel = new SubSettingViewModel(UpdateViewHandler);
this.Closing += SubSettingWindow_Closing; Closing += SubSettingWindow_Closing;
lstSubscription.MouseDoubleClick += LstSubscription_MouseDoubleClick; lstSubscription.MouseDoubleClick += LstSubscription_MouseDoubleClick;
lstSubscription.SelectionChanged += LstSubscription_SelectionChanged; lstSubscription.SelectionChanged += LstSubscription_SelectionChanged;
menuClose.Click += menuClose_Click; menuClose.Click += menuClose_Click;
@@ -34,7 +34,7 @@ public partial class SubSettingWindow
switch (action) switch (action)
{ {
case EViewAction.CloseWindow: case EViewAction.CloseWindow:
this.DialogResult = true; DialogResult = true;
break; break;
case EViewAction.ShowYesNo: case EViewAction.ShowYesNo:
@@ -47,7 +47,7 @@ public partial class SubSettingWindow
case EViewAction.SubEditWindow: case EViewAction.SubEditWindow:
if (obj is null) if (obj is null)
return false; return false;
return (new SubEditWindow((SubItem)obj)).ShowDialog() ?? false; return new SubEditWindow((SubItem)obj).ShowDialog() ?? false;
case EViewAction.ShareSub: case EViewAction.ShareSub:
if (obj is null) if (obj is null)
@@ -78,7 +78,7 @@ public partial class SubSettingWindow
{ {
if (ViewModel?.IsModified == true) if (ViewModel?.IsModified == true)
{ {
this.DialogResult = true; DialogResult = true;
} }
} }
@@ -99,11 +99,11 @@ public partial class SubSettingWindow
{ {
if (ViewModel?.IsModified == true) if (ViewModel?.IsModified == true)
{ {
this.DialogResult = true; DialogResult = true;
} }
else else
{ {
this.Close(); Close();
} }
} }
} }