Bladeren bron

fixed controls lock on manager tab

Veloe 2 jaren geleden
bovenliggende
commit
bed10102fc

+ 48 - 29
VeloeMinecraftLauncher/ViewModels/VersionsDownloaderViewModel.cs

@@ -34,7 +34,8 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
     private bool _installOptifineVisible = false;
     private bool _installForgeOptifineVisible = false;
     private bool _downloadJava = false;
-    private bool _isControlsEnabled = true;
+    private bool _isDownloaderTabControlsEnabled = true;
+    private bool _isManagerTabControlsEnabled = true;
     private long _progress = 0;
     private long _maxprogressvalue = 100;
     private string _downloadingFileName = "No active downloads";
@@ -67,7 +68,8 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
 
     public VersionsDownloaderViewModel()
     {
-        IsControlsEnabled = false;
+        IsDownloaderTabControlsEnabled = false;
+        IsManagerTabControlsEnabled = false;
 
         this.PropertyChanged += OnFilteredVersionPropertyChanged;
         this.PropertyChanged += OnDownloadedVersionPropertyChanged;
@@ -93,25 +95,36 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
         _downloadedVersionTree ??= new();
         DownloadedVersionsDictionary ??= new();
 
-        try
+        Task.Run(async () =>
         {
-            Task.Run(async () =>
-            {              
-                
-                _logger.Debug("Getting versionManifest.json");
-                _versionManifest = await Downloader.DownloadAndDeserializeJsonData<VersionManifest>("https://launchermeta.mojang.com/mc/game/version_manifest_v2.json") ?? new();
-                _modpackVersions.AddRange(await Downloader.DownloadAndDeserializeJsonData<List<Modpack>>("https://files.veloe.link/launcher/modpacks.json") ?? new());
-                _modpackVersionsAsVersion = _modpackVersions.Select(v=> new Entity.VersionManifest.Version() { Id = v.Name, Type = "modpack", ComplianceLevel = v.Revision}).ToList();
-                _logger.Debug("Updating available versions to download.");
-                UpdateList();
-                SearchGameFolderForVersions();
-                IsControlsEnabled = true;
-            });
-        }
-        catch (Exception ex)
+            try
+            {
+                    _logger.Debug("Getting versionManifest.json");
+                    _versionManifest = await Downloader.DownloadAndDeserializeJsonData<VersionManifest>("https://launchermeta.mojang.com/mc/game/version_manifest_v2.json") ?? new();
+                    _modpackVersions.AddRange(await Downloader.DownloadAndDeserializeJsonData<List<Modpack>>("https://files.veloe.link/launcher/modpacks.json") ?? new());
+                    _modpackVersionsAsVersion = _modpackVersions.Select(v=> new Entity.VersionManifest.Version() { Id = v.Name, Type = "modpack", ComplianceLevel = v.Revision}).ToList();
+                    _logger.Debug("Updating available versions to download.");
+                    UpdateList();
+                    IsDownloaderTabControlsEnabled = true;
+            }
+            catch (Exception ex)
+            {
+                OpenErrorWindow(ex);
+            }
+        });
+
+        Task.Run(() =>
         {
-            OpenErrorWindow(ex);
-        }
+            try
+            {
+                SearchGameFolderForVersions();
+                IsManagerTabControlsEnabled = true;
+            }
+            catch (Exception ex)
+            {
+                OpenErrorWindow(ex);
+            }
+        });
     }
 
     public Entity.VersionManifest.Version? FilteredVersion
@@ -273,10 +286,16 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
         set => this.RaiseAndSetIfChanged(ref _downloadJava, value);
     }
 
-    public bool IsControlsEnabled
+    public bool IsDownloaderTabControlsEnabled
+    {
+        get => _isDownloaderTabControlsEnabled;
+        set => this.RaiseAndSetIfChanged(ref _isDownloaderTabControlsEnabled, value);
+    }
+
+    public bool IsManagerTabControlsEnabled
     {
-        get => _isControlsEnabled;
-        set => this.RaiseAndSetIfChanged(ref _isControlsEnabled, value);
+        get => _isManagerTabControlsEnabled;
+        set => this.RaiseAndSetIfChanged(ref _isManagerTabControlsEnabled, value);
     }
 
     private async void OnFilteredVersionPropertyChanged(object? sender, PropertyChangedEventArgs e)
@@ -394,7 +413,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
                 await Task.Run(async () => await Downloader.StartDownloadModpack(
                     value => DownloadingFileName = value,
                     value => TasksStatusLine = value,
-                    value => IsControlsEnabled = value,
+                    value => IsDownloaderTabControlsEnabled = value,
                     value => Progress = value,
                     FilteredVersions,
                     _selectedModpack,
@@ -415,7 +434,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
                     await Downloader.StartDownload(
                       value => DownloadingFileName = value,
                       value => TasksStatusLine = value,
-                      value => IsControlsEnabled = value,
+                      value => IsDownloaderTabControlsEnabled = value,
                       value => Progress = value,
                       versionJson,
                       _tokenSource.Token,
@@ -438,7 +457,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
             CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
             try
             {
-                IsControlsEnabled = false;
+                IsManagerTabControlsEnabled = false;
                 DownloadedVersionTree.Clear();
                 DownloadedVersionTree = new();
                 this.RaisePropertyChanged(nameof(DownloadedVersionTree));
@@ -446,7 +465,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
 
                 if (value is null)
                 {
-                    IsControlsEnabled = true;
+                    IsManagerTabControlsEnabled = true;
                     return;
                 }
 
@@ -754,7 +773,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
             finally
             {
                 this.RaisePropertyChanged(nameof(DownloadedVersionTree));
-                IsControlsEnabled = true;
+                IsManagerTabControlsEnabled = true;
             }
         });
     }
@@ -764,7 +783,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
         await Task.Run(() => {
             try
             {
-                IsControlsEnabled = false;
+                IsManagerTabControlsEnabled = false;
                 DownloadedVersionTree.Clear();
                 DownloadedVersionTree = new();
                 this.RaisePropertyChanged(nameof(DownloadedVersionTree));
@@ -873,7 +892,7 @@ public class VersionsDownloaderViewModel : ViewModelBase, IDisposable
             finally
             {
                 SearchGameFolderForVersions();
-                IsControlsEnabled = true;
+                IsManagerTabControlsEnabled = true;
             }
         });
     }

+ 13 - 13
VeloeMinecraftLauncher/Views/VersionsDownloader.axaml

@@ -48,52 +48,52 @@
 							ItemsSource="{Binding FilteredVersions}"
 							PlaceholderText="Select version"
 							SelectedItem="{Binding FilteredVersion}"
-							IsEnabled="{Binding IsControlsEnabled}"
+							IsEnabled="{Binding IsDownloaderTabControlsEnabled}"
 							HorizontalAlignment="Stretch"
 							Grid.Row="0" Grid.Column="0"/>
 						<CheckBox
 							IsChecked="{Binding ShowOld}"
-							IsEnabled="{Binding IsControlsEnabled}"
+							IsEnabled="{Binding IsDownloaderTabControlsEnabled}"
 							Margin="0,10,0,0"
 							Grid.Row="1" Grid.Column="0"
 							Content="Show old"/>
 						<CheckBox
 							IsChecked="{Binding ShowSnaps}"
-							IsEnabled="{Binding IsControlsEnabled}"
+							IsEnabled="{Binding IsDownloaderTabControlsEnabled}"
 							Margin="0,5,0,0"
 							Grid.Row="2" Grid.Column="0"
 							Content="Show snapshots"/>
 						<CheckBox
 							IsChecked="{Binding DownloadJava}"
-							IsEnabled="{Binding IsControlsEnabled}"
+							IsEnabled="{Binding IsDownloaderTabControlsEnabled}"
 							Margin="0,5,0,0"
 							Grid.Row="3" Grid.Column="0"
 							Content="Download Java"/>
 						<CheckBox
 							IsChecked="{Binding InstallFabric}"
 							IsVisible="{Binding InstallFabricVisible}"
-							IsEnabled="{Binding IsControlsEnabled}"
+							IsEnabled="{Binding IsDownloaderTabControlsEnabled}"
 							Margin="0,5,0,0"
 							Grid.Row="4" Grid.Column="0"
 							Content="Install Fabric"/>
 						<CheckBox
 							IsChecked="{Binding InstallForge}"
 							IsVisible="{Binding InstallForgeVisible}"
-							IsEnabled="{Binding IsControlsEnabled}"
+							IsEnabled="{Binding IsDownloaderTabControlsEnabled}"
 							Margin="0,5,0,0"
 							Grid.Row="5" Grid.Column="0"
 							Content="Install Forge"/>
 						<CheckBox
 							IsChecked="{Binding InstallForgeOptifine}"
 							IsVisible="{Binding InstallForgeOptifineVisible}"
-							IsEnabled="{Binding IsControlsEnabled}"
+							IsEnabled="{Binding IsDownloaderTabControlsEnabled}"
 							Margin="0,5,0,0"
 							Grid.Row="6" Grid.Column="0"
 							Content="Install Optifine (Mod)"/>
 						<CheckBox
 							IsChecked="{Binding InstallOptifine}"
 							IsVisible="{Binding InstallOptifineVisible}"
-							IsEnabled="{Binding IsControlsEnabled}"
+							IsEnabled="{Binding IsDownloaderTabControlsEnabled}"
 							Margin="0,5,0,0"
 							Grid.Row="7" Grid.Column="0"
 							Content="Install Optifine (Vanilla)"/>
@@ -101,7 +101,7 @@
 							Content="{Binding DownloadButtonText}"
 							HorizontalAlignment="Center"
 							Command="{Binding OnStartBunttonClick}"
-							IsEnabled="{Binding IsControlsEnabled}"
+							IsEnabled="{Binding IsDownloaderTabControlsEnabled}"
 							Margin="0,10,0,0"
 							Grid.Row="9" Grid.Column="0"/>
 						<ProgressBar
@@ -125,13 +125,13 @@
 							ItemsSource="{Binding DownloadedVersions}"
 							PlaceholderText="Select version"
 							SelectedItem="{Binding DownloadedVersion}"
-							IsEnabled="{Binding IsControlsEnabled}"
+							IsEnabled="{Binding IsManagerTabControlsEnabled}"
 							HorizontalAlignment="Stretch"
 							Grid.Row="0"/>
 
 							<TreeView
 								ItemsSource="{Binding DownloadedVersionTree}"
-							    IsEnabled="{Binding IsControlsEnabled}"
+							    IsEnabled="{Binding IsManagerTabControlsEnabled}"
 								x:Name="treeView"
 								Margin="0,10,0,0"
 								Grid.Row="1">
@@ -148,14 +148,14 @@
 								Content="Delete"
 								HorizontalAlignment="Center"
 								Command="{Binding OnDeleteButtonClick}"
-								IsEnabled="{Binding IsControlsEnabled}"
+								IsEnabled="{Binding IsManagerTabControlsEnabled}"
 								Margin="0,10,0,0"
 								Grid.Row="0" Grid.Column="0"/>
 							<Button
 								Content="Open folder"
 								HorizontalAlignment="Center"
 								Command="{Binding OnOpenForlder}"
-								IsEnabled="{Binding IsControlsEnabled}"
+								IsEnabled="{Binding IsManagerTabControlsEnabled}"
 								Margin="0,10,0,0"
 								Grid.Row="0" Grid.Column="1"/>
 						</Grid>