Files
downkyicore/DownKyi/Views/Settings/ViewNetwork.axaml

496 lines
26 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="DownKyi.Views.Settings.ViewNetwork"
xmlns:vms="clr-namespace:DownKyi.ViewModels.Settings"
x:DataType="vms:ViewNetworkViewModel"
xmlns:i="using:Avalonia.Xaml.Interactivity"
xmlns:ia="clr-namespace:Avalonia.Xaml.Interactions.Core;assembly=Avalonia.Xaml.Interactions"
xmlns:iac="clr-namespace:DownKyi.CustomAction">
<ScrollViewer>
<StackPanel Margin="50,0" Orientation="Vertical">
<StackPanel Margin="0,20,0,0" Orientation="Horizontal">
<TextBlock
FontSize="18"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource Network}" />
</StackPanel>
<CheckBox
Name="NameUseSsl"
Margin="0,20,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Command="{Binding UseSSLCommand}"
Content="{DynamicResource UseSSL}"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
IsChecked="{Binding UseSSL, Mode=TwoWay}" />
<TextBlock
Margin="0,20,0,0"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource UserAgent}" />
<TextBox
Name="NameUserAgent"
Margin="0,10,0,0"
HorizontalAlignment="Stretch"
Text="{Binding UserAgent}">
<i:Interaction.Behaviors>
<iac:KeyUpBehavior Key="Enter">
<ia:InvokeCommandAction Command="{Binding UserAgentCommand}"
CommandParameter="{Binding ElementName=NameUserAgent,Path=Text}" />
</iac:KeyUpBehavior>
</i:Interaction.Behaviors>
</TextBox>
<StackPanel Margin="0,20,0,0" Orientation="Vertical">
<TextBlock
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource SelectDownloader}" />
<StackPanel Margin="0,20,0,0" Orientation="Horizontal">
<RadioButton
Command="{Binding SelectDownloaderCommand}"
CommandParameter="Builtin"
Content="{DynamicResource BuiltinDownloader}"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
IsChecked="{Binding Builtin}" />
<RadioButton
Margin="20,0,0,0"
Command="{Binding SelectDownloaderCommand}"
CommandParameter="Aria2c"
Content="{DynamicResource Aria2cDownloader}"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
IsChecked="{Binding Aria2c}" />
<RadioButton
Margin="20,0,0,0"
Command="{Binding SelectDownloaderCommand}"
CommandParameter="CustomAria2c"
Content="{DynamicResource CustomAria2cDownloader}"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
IsChecked="{Binding CustomAria2c}" />
</StackPanel>
</StackPanel>
<TextBlock
Height="1"
Margin="0,20,0,0"
Background="{DynamicResource BrushBorder}" />
<StackPanel x:Name="NameBuiltin" IsVisible="{Binding Builtin}">
<StackPanel Margin="0,20,0,0" Orientation="Horizontal">
<TextBlock
Width="100"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource MaxCurrentDownloads}" />
<ComboBox
Name="NameMaxCurrentDownloads"
Width="100"
VerticalContentAlignment="Center"
ItemsSource="{Binding MaxCurrentDownloads}"
SelectedValue="{Binding SelectedMaxCurrentDownload,Mode=TwoWay}">
<i:Interaction.Behaviors>
<ia:EventTriggerBehavior EventName="SelectionChanged">
<ia:InvokeCommandAction Command="{Binding MaxCurrentDownloadsCommand}"
CommandParameter="{Binding ElementName=NameMaxCurrentDownloads, Path=SelectedValue}" />
</ia:EventTriggerBehavior>
</i:Interaction.Behaviors>
</ComboBox>
</StackPanel>
<StackPanel Margin="0,20,0,0" Orientation="Horizontal">
<TextBlock
Width="100"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource Split}" />
<ComboBox
Name="NameSplits"
Width="100"
VerticalContentAlignment="Center"
ItemsSource="{Binding Splits}"
SelectedValue="{Binding SelectedSplit}">
<i:Interaction.Behaviors>
<ia:EventTriggerBehavior EventName="SelectionChanged">
<ia:InvokeCommandAction Command="{Binding SplitsCommand}"
CommandParameter="{Binding ElementName=NameSplits, Path=SelectedValue}" />
</ia:EventTriggerBehavior>
</i:Interaction.Behaviors>
</ComboBox>
</StackPanel>
<CheckBox
Name="NameIsHttpProxy"
Margin="0,20,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Command="{Binding IsHttpProxyCommand}"
Content="{DynamicResource IsHttpProxy}"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
IsChecked="{Binding IsHttpProxy, Mode=TwoWay}" />
</StackPanel>
<StackPanel x:Name="NameAria" IsVisible="{Binding Aria2c}">
<!--<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<Style.Triggers>
<DataTrigger Binding="{Binding Aria2c}" Value="True">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding Aria2c}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>-->
<!--<StackPanel
Margin="0,20,0,0"
Orientation="Horizontal"
ToolTip.Tip="{DynamicResource PressEnterToApplySettingTip}">
<TextBlock
Width="100"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource AriaServerHost}" />
<TextBox
Name="NameAriaLocalHost"
Width="100"
VerticalContentAlignment="Center"
IsReadOnly="True"
Text="{Binding AriaHost}">
<i:Interaction.Behaviors>
<iac:KeyUpBehavior Key="Enter">
<ia:InvokeCommandAction Command="{Binding AriaHostCommand}"
CommandParameter="{Binding ElementName=NameAriaLocalHost, Path=Text}" />
</iac:KeyUpBehavior>
</i:Interaction.Behaviors>
</TextBox>
</StackPanel>-->
<StackPanel
Margin="0,20,0,0"
Orientation="Horizontal"
ToolTip.Tip="{DynamicResource PressEnterToApplySettingTip}">
<TextBlock
Width="100"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource AriaServerPort}" />
<TextBox
Name="NameAriaListenPort"
Width="100"
VerticalContentAlignment="Center"
Text="{Binding AriaListenPort}">
<i:Interaction.Behaviors>
<iac:KeyUpBehavior Key="Enter">
<ia:InvokeCommandAction Command="{Binding AriaListenPortCommand}"
CommandParameter="{Binding ElementName=NameAriaListenPort, Path=Text}" />
</iac:KeyUpBehavior>
</i:Interaction.Behaviors>
</TextBox>
</StackPanel>
<StackPanel Margin="0,20,0,0" Orientation="Horizontal">
<TextBlock
Width="100"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource AriaLogLevel}" />
<ComboBox
Name="NameAriaLogLevels"
Width="100"
VerticalContentAlignment="Center"
ItemsSource="{Binding AriaLogLevels}"
SelectedValue="{Binding SelectedAriaLogLevel}">
<i:Interaction.Behaviors>
<ia:EventTriggerBehavior EventName="SelectionChanged">
<ia:InvokeCommandAction Command="{Binding AriaLogLevelsCommand}"
CommandParameter="{Binding ElementName=NameAriaLogLevels, Path=SelectedValue}" />
</ia:EventTriggerBehavior>
</i:Interaction.Behaviors>
</ComboBox>
</StackPanel>
<StackPanel Margin="0,20,0,0" Orientation="Horizontal">
<TextBlock
Width="100"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource AriaMaxConcurrentDownloads}" />
<ComboBox
Name="NameAriaMaxConcurrentDownloads"
Width="100"
VerticalContentAlignment="Center"
ItemsSource="{Binding AriaMaxConcurrentDownloads}"
SelectedValue="{Binding SelectedAriaMaxConcurrentDownload}">
<i:Interaction.Behaviors>
<ia:EventTriggerBehavior EventName="SelectionChanged">
<ia:InvokeCommandAction Command="{Binding AriaMaxConcurrentDownloadsCommand}"
CommandParameter="{Binding ElementName=NameAriaMaxConcurrentDownloads, Path=SelectedValue}" />
</ia:EventTriggerBehavior>
</i:Interaction.Behaviors>
</ComboBox>
</StackPanel>
<StackPanel Margin="0,20,0,0" Orientation="Horizontal">
<TextBlock
Width="100"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource AriaSplit}" />
<ComboBox
Name="NameAriaSplits"
Width="100"
VerticalContentAlignment="Center"
ItemsSource="{Binding AriaSplits}"
SelectedValue="{Binding SelectedAriaSplit}">
<i:Interaction.Behaviors>
<ia:EventTriggerBehavior EventName="SelectionChanged">
<ia:InvokeCommandAction Command="{Binding AriaSplitsCommand}"
CommandParameter="{Binding ElementName=NameAriaSplits, Path=SelectedValue}" />
</ia:EventTriggerBehavior>
</i:Interaction.Behaviors>
</ComboBox>
</StackPanel>
<HeaderedContentControl
Margin="0,20,0,0"
Padding="10,5"
HorizontalAlignment="Left"
FontSize="12"
Background="LightGray"
Foreground="{DynamicResource BrushTextDark}"
Header="{DynamicResource AriaDownloadLimit}">
<StackPanel Margin="10">
<StackPanel Margin="0,10,0,0" Orientation="Horizontal">
<TextBlock
Width="300"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource AriaMaxOverallDownloadLimit}" />
<TextBox
Name="NameAriaMaxOverallDownloadLimit"
Width="100"
VerticalContentAlignment="Center"
Text="{Binding AriaMaxOverallDownloadLimit}"
ToolTip.Tip="{DynamicResource PressEnterToApplySettingTip}">
<i:Interaction.Behaviors>
<iac:KeyUpBehavior Key="Enter">
<ia:InvokeCommandAction Command="{Binding AriaMaxOverallDownloadLimitCommand}"
CommandParameter="{Binding ElementName=NameAriaMaxOverallDownloadLimit, Path=Text}" />
</iac:KeyUpBehavior>
</i:Interaction.Behaviors>
</TextBox>
</StackPanel>
<StackPanel Margin="0,10,0,5" Orientation="Horizontal">
<TextBlock
Width="300"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource AriaMaxDownloadLimit}" />
<TextBox
Name="NameAriaMaxDownloadLimit"
Width="100"
VerticalContentAlignment="Center"
Text="{Binding AriaMaxDownloadLimit}"
ToolTip.Tip="{DynamicResource PressEnterToApplySettingTip}">
<i:Interaction.Behaviors>
<iac:KeyUpBehavior Key="Enter">
<ia:InvokeCommandAction Command="{Binding AriaMaxDownloadLimitCommand}"
CommandParameter="{Binding ElementName=NameAriaMaxDownloadLimit, Path=Text}" />
</iac:KeyUpBehavior>
</i:Interaction.Behaviors>
</TextBox>
</StackPanel>
</StackPanel>
</HeaderedContentControl>
<CheckBox
Name="NameIsAriaHttpProxy"
Margin="0,20,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Command="{Binding IsAriaHttpProxyCommand}"
Content="{DynamicResource IsHttpProxy}"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
IsChecked="{Binding IsAriaHttpProxy, Mode=TwoWay}" />
<StackPanel
Name="NameAriaHttpProxyPanel"
Margin="0,20,0,0"
Orientation="Horizontal"
ToolTip.Tip="{DynamicResource PressEnterToApplySettingTip}"
IsVisible="{Binding ElementName=NameIsAriaHttpProxy,Path=IsChecked}">
<!--<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=nameIsAriaHttpProxy, Path=IsChecked}"
Value="false">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=nameIsAriaHttpProxy, Path=IsChecked}"
Value="true">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>-->
<StackPanel Orientation="Horizontal">
<TextBlock
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource HttpProxy}" />
<TextBox
Name="NameAriaHttpProxy"
Width="200"
VerticalContentAlignment="Center"
Text="{Binding AriaHttpProxy}">
<i:Interaction.Behaviors>
<iac:KeyUpBehavior Key="Enter">
<ia:InvokeCommandAction Command="{Binding AriaHttpProxyCommand}"
CommandParameter="{Binding ElementName=NameAriaHttpProxy, Path=Text}" />
</iac:KeyUpBehavior>
</i:Interaction.Behaviors>
</TextBox>
</StackPanel>
<StackPanel Margin="30,0,0,0" Orientation="Horizontal">
<TextBlock
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource HttpProxyPort}" />
<TextBox
Name="NameAriaHttpProxyPort"
Width="100"
VerticalContentAlignment="Center"
Text="{Binding AriaHttpProxyPort}">
<i:Interaction.Behaviors>
<iac:KeyUpBehavior Key="Enter">
<ia:InvokeCommandAction Command="{Binding AriaHttpProxyPortCommand}"
CommandParameter="{Binding ElementName=NameAriaHttpProxyPort, Path=Text}" />
</iac:KeyUpBehavior>
</i:Interaction.Behaviors>
</TextBox>
</StackPanel>
</StackPanel>
<StackPanel Margin="0,20,0,0" Orientation="Horizontal">
<TextBlock
Width="100"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource AriaFileAllocation}" />
<ComboBox
Name="NameAriaFileAllocations"
Width="100"
VerticalContentAlignment="Center"
ItemsSource="{Binding AriaFileAllocations}"
SelectedValue="{Binding SelectedAriaFileAllocation}">
<i:Interaction.Behaviors>
<ia:EventTriggerBehavior EventName="SelectionChanged">
<InvokeCommandAction Command="{Binding AriaFileAllocationsCommand}"
CommandParameter="{Binding ElementName=NameAriaFileAllocations, Path=SelectedValue}" />
</ia:EventTriggerBehavior>
</i:Interaction.Behaviors>
</ComboBox>
</StackPanel>
</StackPanel>
<StackPanel x:Name="NameCustomAria" IsVisible="{Binding CustomAria2c}">
<StackPanel
Margin="0,20,0,0"
Orientation="Horizontal"
ToolTip.Tip="{DynamicResource PressEnterToApplySettingTip}">
<TextBlock
Width="100"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource AriaServerHost}" />
<TextBox
Name="NameAriaHost"
Width="300"
VerticalContentAlignment="Center"
Text="{Binding AriaHost}">
<i:Interaction.Behaviors>
<iac:KeyUpBehavior Key="Enter">
<ia:InvokeCommandAction Command="{Binding AriaHostCommand}"
CommandParameter="{Binding ElementName=NameAriaHost, Path=Text}" />
</iac:KeyUpBehavior>
</i:Interaction.Behaviors>
</TextBox>
</StackPanel>
<StackPanel
Margin="0,20,0,0"
Orientation="Horizontal"
ToolTip.Tip="{DynamicResource PressEnterToApplySettingTip}">
<TextBlock
Width="100"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource AriaServerPort}" />
<TextBox
Name="NameAriaPort"
Width="100"
VerticalContentAlignment="Center"
Text="{Binding AriaListenPort}">
<i:Interaction.Behaviors>
<iac:KeyUpBehavior Key="Enter">
<ia:InvokeCommandAction Command="{Binding AriaListenPortCommand}"
CommandParameter="{Binding ElementName=NameAriaPort, Path=Text}" />
</iac:KeyUpBehavior>
</i:Interaction.Behaviors>
</TextBox>
</StackPanel>
<StackPanel
Margin="0,20,0,0"
Orientation="Horizontal"
ToolTip.Tip="{DynamicResource PressEnterToApplySettingTip}">
<TextBlock
Width="100"
VerticalAlignment="Center"
FontSize="12"
Foreground="{DynamicResource BrushTextDark}"
Text="{DynamicResource AriaServerToken}" />
<TextBox
Name="NameAriaToken"
Width="100"
VerticalContentAlignment="Center"
Text="{Binding AriaToken}">
<i:Interaction.Behaviors>
<iac:KeyUpBehavior Key="Enter">
<ia:InvokeCommandAction Command="{Binding AriaTokenCommand}"
CommandParameter="{Binding ElementName=NameAriaToken, Path=Text}" />
</iac:KeyUpBehavior>
</i:Interaction.Behaviors>
</TextBox>
</StackPanel>
</StackPanel>
<StackPanel Margin="10" />
</StackPanel>
</ScrollViewer>
</UserControl>