work
This commit is contained in:
@@ -15,8 +15,6 @@ namespace ModpackUpdater.Apps.Manager.Ui;
|
||||
|
||||
public partial class MainWindow : Window, IMainApi
|
||||
{
|
||||
private WorkspaceFeature? wsFeature;
|
||||
|
||||
public static IImage? ButtonImageAddAction => AppGlobals.Symbols.GetImageSource(AppSymbols.add);
|
||||
public static IImage? ButtonImageRemoveAction => AppGlobals.Symbols.GetImageSource(AppSymbols.remove);
|
||||
|
||||
@@ -56,7 +54,7 @@ public partial class MainWindow : Window, IMainApi
|
||||
insertPrioSplitters: true);
|
||||
}
|
||||
|
||||
private async Task LoadNewWorkspace(IWorkspace? workspace, WorkspaceFeature feature)
|
||||
private async Task LoadNewWorkspace(IWorkspace? workspace)
|
||||
{
|
||||
if (workspace is null)
|
||||
return;
|
||||
@@ -68,10 +66,7 @@ public partial class MainWindow : Window, IMainApi
|
||||
}
|
||||
|
||||
if (workspace != Model.CurrentWorkspace)
|
||||
{
|
||||
wsFeature = feature;
|
||||
Model.CurrentWorkspace = workspace;
|
||||
}
|
||||
|
||||
AddToRecentFiles(workspace);
|
||||
LoadRecentWorkspaces();
|
||||
@@ -122,13 +117,13 @@ public partial class MainWindow : Window, IMainApi
|
||||
var context = new WorkspaceContext(MainApi, null);
|
||||
await feature.Configure(context);
|
||||
if (context.Workspace != null)
|
||||
await LoadNewWorkspace(context.Workspace, feature);
|
||||
await LoadNewWorkspace(context.Workspace);
|
||||
}
|
||||
|
||||
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, tag.Feature);
|
||||
await LoadNewWorkspace(workspace);
|
||||
}
|
||||
|
||||
private void MenuItemToolsItem_Click(object? sender, RoutedEventArgs e)
|
||||
@@ -137,23 +132,73 @@ public partial class MainWindow : Window, IMainApi
|
||||
func.Execute(new MainApiParameters(this));
|
||||
}
|
||||
|
||||
private void ButtonAddAction_OnClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
private void ButtonRemoveAction_OnClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
private void MenuItemCreateUpdate_OnClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
if (Model.CurrentWorkspace?.UpdateInfos is null
|
||||
|| Model.CurrentTreeNodes?.ElementAtOrDefault(1) is not { } nodeUpdates)
|
||||
return;
|
||||
|
||||
var update = new UpdateInfo();
|
||||
Model.CurrentWorkspace.UpdateInfos.Updates.Add(update);
|
||||
nodeUpdates.Nodes.Add(new ActionSetTreeNode(update));
|
||||
}
|
||||
|
||||
private void MenuItemRemoveUpdate_OnClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
if (Model.CurrentWorkspace?.UpdateInfos is null
|
||||
|| Model.CurrentTreeNodes?.ElementAtOrDefault(1) is not { } nodeUpdates
|
||||
|| Model.SelectedTreeNode is not ActionSetTreeNode nodeUpdate
|
||||
|| nodeUpdate.Infos is not UpdateInfo update)
|
||||
return;
|
||||
|
||||
nodeUpdates.Nodes.Remove(nodeUpdate);
|
||||
Model.CurrentWorkspace.UpdateInfos.Updates.Remove(update);
|
||||
}
|
||||
|
||||
private void ButtonAddAction_OnClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
if (Model.CurrentWorkspace?.InstallInfos is not { } rootInfos
|
||||
|| Model.SelectedTreeNode is not ActionSetTreeNode nodeUpdate
|
||||
|| Model.CurrentGridRows is not { } rows)
|
||||
return;
|
||||
|
||||
InstallAction action;
|
||||
|
||||
switch (nodeUpdate.Infos)
|
||||
{
|
||||
case UpdateInfo updateInfos:
|
||||
updateInfos.Actions.Add((UpdateAction)(action = new UpdateAction()));
|
||||
break;
|
||||
case InstallInfos installInfos:
|
||||
installInfos.Actions.Add(action = new InstallAction());
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
rows.Add(new MainWindowGridRow(action, rootInfos));
|
||||
}
|
||||
|
||||
private void ButtonRemoveAction_OnClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
if (Model.SelectedGridRow is not { } row
|
||||
|| Model.SelectedTreeNode is not ActionSetTreeNode nodeUpdate
|
||||
|| Model.CurrentGridRows is not { } rows)
|
||||
return;
|
||||
|
||||
switch (nodeUpdate.Infos)
|
||||
{
|
||||
case UpdateInfo updateInfos:
|
||||
if (row.Action is UpdateAction action)
|
||||
updateInfos.Actions.Remove(action);
|
||||
break;
|
||||
case InstallInfos installInfos:
|
||||
installInfos.Actions.Remove(row.Action);
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
rows.Remove(row);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user