Browse Source

added slider to ram

Veloe 4 months ago
parent
commit
5aaa4d9a72

+ 9 - 9
VeloeMinecraftLauncher/VeloeMinecraftLauncher.csproj

@@ -10,8 +10,8 @@
 		<DebugType>embedded</DebugType>
 		<StartupObject>VeloeMinecraftLauncher.Program</StartupObject>
 		<PlatformTarget>x64</PlatformTarget>
-		<AssemblyVersion>1.6.0.188</AssemblyVersion>
-		<FileVersion>1.6.0.188</FileVersion>
+		<AssemblyVersion>1.6.0.200</AssemblyVersion>
+		<FileVersion>1.6.0.200</FileVersion>
 		<Configurations>Debug;Release</Configurations>
 		<Copyright>MIT</Copyright>
 		<RepositoryType>git</RepositoryType>
@@ -47,18 +47,18 @@
 		<TrimmableAssembly Include="Avalonia.Themes.Default" />
 	</ItemGroup>
 	<ItemGroup>
-		<PackageReference Include="Avalonia" Version="11.2.8" />
-		<PackageReference Include="Avalonia.Desktop" Version="11.2.8" />
+		<PackageReference Include="Avalonia" Version="11.3.0" />
+		<PackageReference Include="Avalonia.Desktop" Version="11.3.0" />
 		<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
-		<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.2.8" />
-		<PackageReference Include="Avalonia.Fonts.Inter" Version="11.2.8" />
-		<PackageReference Include="Avalonia.ReactiveUI" Version="11.2.8" />
-		<PackageReference Include="Avalonia.Themes.Fluent" Version="11.2.8" />
+		<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.3.0" />
+		<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.0" />
+		<PackageReference Include="Avalonia.ReactiveUI" Version="11.3.0" />
+		<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.0" />
 		<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="6.0.0" />
 		<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="9.0.4" />
 		<PackageReference Include="ReactiveUI.Validation" Version="4.1.1" />
 		<PackageReference Include="Serilog" Version="4.2.0" />
-		<PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
+		<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
 		<PackageReference Include="SerilogTraceListener" Version="3.2.0" />
 	</ItemGroup>
 	<ItemGroup>

+ 10 - 0
VeloeMinecraftLauncher/ViewModels/SettingsViewModel.cs

@@ -262,10 +262,20 @@ public class SettingsViewModel : ViewModelBase
             {
                 Settings.MaxRam = value;
                 this.RaisePropertyChanged();
+                this.RaisePropertyChanged(nameof(MaxRamPercent));
             }
         }
     }
 
+    public uint MaxRamPercent
+    {
+        get => (uint)(((MaxRam - MIN_RAM) * 100) /((MAX_RAM- MIN_RAM)));
+        set => MaxRam = (uint)((value * (MAX_RAM - MIN_RAM)) / 100 + MIN_RAM);
+    }
+
+    public readonly long MAX_RAM = GC.GetGCMemoryInfo().TotalAvailableMemoryBytes / 1024 / 1024;
+    public const uint MIN_RAM = 256;
+
     public LogEventLevel FileLogEventLevel
     {
         get => Settings.FileLogEventLevel;

+ 10 - 2
VeloeMinecraftLauncher/Views/SettingsView.axaml

@@ -137,8 +137,8 @@
 								Value="{Binding MaxRam}"
 								ParsingNumberStyle="Integer"
 								MaxWidth="200"
-								Minimum="256"
-								Maximum="{Binding $parent[Window].MaxRam}"
+								Minimum="{Binding MIN_RAM}"
+								Maximum="{Binding MAX_RAM}"
 								Theme="{StaticResource FixDataValidation}"
 								ClipValueToMinMax ="True"
 								ShowButtonSpinner="False"
@@ -146,6 +146,14 @@
 								HorizontalAlignment="Left"
 								VerticalAlignment="Top"/>
 							<TextBlock VerticalAlignment="Center">MB</TextBlock>
+							<Slider
+								Margin="10 0 30 0"
+								Width="400"
+								IsEnabled="{Binding SetMaxRam}"
+								Value="{Binding MaxRamPercent}"
+								Ticks="1"
+								Minimum="0"
+								Maximum="100"/>
 						</StackPanel>
 						<CheckBox
 							Grid.Row="6" Grid.ColumnSpan="2"

+ 0 - 2
VeloeMinecraftLauncher/Views/SettingsView.axaml.cs

@@ -23,8 +23,6 @@ public partial class SettingsView : UserControl
 
     private int MaxGameHeight => (Avalonia.Application.Current.ApplicationLifetime as IClassicDesktopStyleApplicationLifetime)?.MainWindow?.Screens.All.Select(x => x.Bounds.Height).Max() ?? 1080;
 
-    private long MaxRam => GC.GetGCMemoryInfo().TotalAvailableMemoryBytes / 1024 / 1024;
-
     private void NumericUpDown_TextInput(object? sender, TextInputEventArgs e)
     {
         e.Handled = !e.Text?.All(x => char.IsDigit(x)) ?? false;