progressbar tweaks
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Data;
|
||||
using Avalonia.Interactivity;
|
||||
using Avalonia.Media;
|
||||
using ModpackUpdater.Apps.Manager.Api;
|
||||
@@ -7,7 +6,6 @@ using ModpackUpdater.Apps.Manager.Api.Model;
|
||||
using ModpackUpdater.Apps.Manager.Api.Plugins.Features;
|
||||
using ModpackUpdater.Apps.Manager.Api.Plugins.Params;
|
||||
using ModpackUpdater.Apps.Manager.Settings;
|
||||
using ModpackUpdater.Apps.Manager.Ui.Models;
|
||||
using ModpackUpdater.Apps.Manager.Ui.Models.MainWindow;
|
||||
using Pilz.Features;
|
||||
using Pilz.UI.AvaloniaUI.Features;
|
||||
@@ -19,6 +17,8 @@ public partial class MainWindow : Window, IMainApi
|
||||
{
|
||||
public static IImage? ButtonImageAddAction => AppGlobals.Symbols.GetImageSource(AppSymbols.add);
|
||||
public static IImage? ButtonImageRemoveAction => AppGlobals.Symbols.GetImageSource(AppSymbols.remove);
|
||||
|
||||
private WorkspaceFeature? curWs;
|
||||
|
||||
public MainWindowViewModel Model { get; } = new();
|
||||
Window IMainApi.MainWindow => this;
|
||||
@@ -57,19 +57,19 @@ public partial class MainWindow : Window, IMainApi
|
||||
insertPrioSplitters: true);
|
||||
}
|
||||
|
||||
private async Task LoadNewWorkspace(IWorkspace? workspace)
|
||||
private async Task LoadNewWorkspace(IWorkspace? workspace, WorkspaceFeature feature)
|
||||
{
|
||||
if (workspace is null)
|
||||
return;
|
||||
|
||||
if (!await workspace.Load())
|
||||
{
|
||||
// Error
|
||||
return;
|
||||
}
|
||||
|
||||
if (workspace != Model.CurrentWorkspace)
|
||||
{
|
||||
Model.CurrentWorkspace = workspace;
|
||||
curWs = feature;
|
||||
}
|
||||
|
||||
AddToRecentFiles(workspace);
|
||||
LoadRecentWorkspaces();
|
||||
@@ -124,14 +124,33 @@ public partial class MainWindow : Window, IMainApi
|
||||
|
||||
var context = new WorkspaceContext(MainApi, null);
|
||||
await feature.Configure(context);
|
||||
if (context.Workspace != null)
|
||||
await LoadNewWorkspace(context.Workspace);
|
||||
await LoadNewWorkspace(context.Workspace, feature);
|
||||
}
|
||||
|
||||
private async void MenuItemWorkspacePreferences_OnClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
if (curWs is null || Model.CurrentWorkspace is null)
|
||||
return;
|
||||
|
||||
var context = new WorkspaceContext(MainApi, Model.CurrentWorkspace);
|
||||
await curWs.Configure(context);
|
||||
await LoadNewWorkspace(context.Workspace, curWs);
|
||||
}
|
||||
|
||||
private async void MenuItemSaveWorkspace_OnClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
if (Model.CurrentWorkspace is not { } ws)
|
||||
return;
|
||||
|
||||
Model.Progress.Start();
|
||||
await ws.Save();
|
||||
Model.Progress.End();
|
||||
}
|
||||
|
||||
private async void MenuItemRecentWorkspaceItem_Click(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
if (sender is MenuItem item && item.DataContext is MainWindowRecentFilesItem tag && tag.Feature.CreateFromConfig(tag.Config) is IWorkspace workspace)
|
||||
await LoadNewWorkspace(workspace);
|
||||
await LoadNewWorkspace(workspace, tag.Feature);
|
||||
}
|
||||
|
||||
private void MenuItemToolsItem_Click(object? sender, RoutedEventArgs e)
|
||||
|
||||
Reference in New Issue
Block a user