1.1.3 -> 1.1.4 第89次更新

This commit is contained in:
Space Time 2024-12-20 18:15:57 +08:00
parent 9ea750e336
commit f1e9df5418
2 changed files with 24 additions and 33 deletions

View File

@ -66,7 +66,7 @@
Grid.Column="0" Margin="5"
Content="{x:Static consts:MainConst.BrowserButtonContent}"
ToolTip="{x:Static consts:MainConst.BrowserButtonToolTip}"
Click="BrowserButton_Click" PreviewMouseDown="BrowserButton_PreviewMouseDown">
Click="LaunchButton_Click" PreviewMouseDown="LaunchButton_PreviewMouseDown">
<Button.IsEnabled>
<MultiBinding Converter="{x:Static convs:MainConv.MainBrowserButtonIsEnabledConv}">
<Binding Path="BrowserPath" />
@ -74,10 +74,11 @@
</MultiBinding>
</Button.IsEnabled>
</Button>
<Button Grid.Column="1" Margin="5" d:Content="# # # #"
<Button x:Name="NginxButton"
Grid.Column="1" Margin="5" d:Content="# # # #"
Visibility="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainAdminControlVisibilityConv}}"
ToolTip="{Binding IsNginxRunning, Converter={x:Static convs:MainConv.MainNginxButtonToolTipConv}}"
Click="NginxButton_Click" PreviewMouseDown="NginxButton_PreviewMouseDown">
Click="LaunchButton_Click" PreviewMouseDown="LaunchButton_PreviewMouseDown">
<Button.IsEnabled>
<MultiBinding Converter="{x:Static convs:MainConv.MainProxyButtonIsEnabledConv}">
<Binding Path="IsNginxExist" />
@ -91,10 +92,11 @@
</MultiBinding>
</Button.Content>
</Button>
<Button Grid.Column="2" Margin="5" d:Content="# # # #"
<Button x:Name="MihomoButton"
Grid.Column="2" Margin="5" d:Content="# # # #"
Visibility="{Binding Source={x:Static consts:MainConst.IsAdmin}, Converter={x:Static convs:MainConv.MainAdminControlVisibilityConv}}"
ToolTip="{Binding IsMihomoRunning, Converter={x:Static convs:MainConv.MainMihomoButtonToolTipConv}}"
Click="MihomoButton_Click" PreviewMouseDown="MihomoButton_PreviewMouseDown">
Click="LaunchButton_Click" PreviewMouseDown="LaunchButton_PreviewMouseDown">
<Button.IsEnabled>
<MultiBinding Converter="{x:Static convs:MainConv.MainProxyButtonIsEnabledConv}">
<Binding Path="IsMihomoExist" />

View File

@ -89,7 +89,7 @@ public partial class MainWin : Window
await NginxCleaner.Clean();
if (Array.Exists(Environment.GetCommandLineArgs(), arg => arg.Equals("-s", StringComparison.OrdinalIgnoreCase)))
BrowserButton_Click(null!, null!);
LaunchButton_Click(null!, null!);
UpdateUpstreamHostButton_Click(null!, null!);
});
@ -159,17 +159,29 @@ public partial class MainWin : Window
}
}
private void BrowserButton_Click(object? sender, RoutedEventArgs e)
private void LaunchButton_Click(object? sender, RoutedEventArgs e)
{
if (HoldButtonTimer == null || HoldButtonTimer.IsEnabled)
if (HoldButtonTimer != null && !HoldButtonTimer.IsEnabled)
return;
Button? senderButton = sender as Button;
if (senderButton == NginxButton)
NginxButtonHoldTimer_Tick(null, null!);
else if (senderButton == MihomoButton)
MihomoButtonHoldTimer_Tick(null, null!);
else
BrowserButtonHoldTimer_Tick(sender == null, null!);
}
private void BrowserButton_PreviewMouseDown(object sender, MouseButtonEventArgs e)
private void LaunchButton_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
Button senderButton = (Button)sender;
HoldButtonTimer = new() { Interval = TimeSpan.FromSeconds(1) };
HoldButtonTimer.Tick += BrowserButtonHoldTimer_Tick;
HoldButtonTimer.Tick += senderButton == NginxButton ? NginxButtonHoldTimer_Tick : senderButton == MihomoButton ? MihomoButtonHoldTimer_Tick : BrowserButtonHoldTimer_Tick;
HoldButtonTimer.Start();
}
private async void BrowserButtonHoldTimer_Tick(object? sender, EventArgs e)
{
HoldButtonTimer?.Stop();
@ -189,17 +201,6 @@ public partial class MainWin : Window
new BrowserProc(MainPres.BrowserPath, sender is bool).Run(Path.GetDirectoryName(MainPres.BrowserPath), $"{CealArgs} {MainPres.ExtraArgs.Trim()}");
});
}
private void NginxButton_Click(object sender, RoutedEventArgs e)
{
if (HoldButtonTimer == null || HoldButtonTimer.IsEnabled)
NginxButtonHoldTimer_Tick(null, null!);
}
private void NginxButton_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
HoldButtonTimer = new() { Interval = TimeSpan.FromSeconds(1) };
HoldButtonTimer.Tick += NginxButtonHoldTimer_Tick;
HoldButtonTimer.Start();
}
private async void NginxButtonHoldTimer_Tick(object? sender, EventArgs e)
{
HoldButtonTimer?.Stop();
@ -337,18 +338,6 @@ public partial class MainWin : Window
nginxProcess.Kill();
}
}
private void MihomoButton_Click(object sender, RoutedEventArgs e)
{
if (HoldButtonTimer == null || HoldButtonTimer.IsEnabled)
MihomoButtonHoldTimer_Tick(null, null!);
}
private void MihomoButton_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
HoldButtonTimer = new() { Interval = TimeSpan.FromSeconds(1) };
HoldButtonTimer.Tick += MihomoButtonHoldTimer_Tick;
HoldButtonTimer.Start();
}
private async void MihomoButtonHoldTimer_Tick(object? sender, EventArgs e)
{
HoldButtonTimer?.Stop();