work
This commit is contained in:
@@ -15,8 +15,6 @@ namespace ModpackUpdater.Apps.Manager.Ui;
|
|||||||
|
|
||||||
public partial class MainWindow : Window, IMainApi
|
public partial class MainWindow : Window, IMainApi
|
||||||
{
|
{
|
||||||
private WorkspaceFeature? wsFeature;
|
|
||||||
|
|
||||||
public static IImage? ButtonImageAddAction => AppGlobals.Symbols.GetImageSource(AppSymbols.add);
|
public static IImage? ButtonImageAddAction => AppGlobals.Symbols.GetImageSource(AppSymbols.add);
|
||||||
public static IImage? ButtonImageRemoveAction => AppGlobals.Symbols.GetImageSource(AppSymbols.remove);
|
public static IImage? ButtonImageRemoveAction => AppGlobals.Symbols.GetImageSource(AppSymbols.remove);
|
||||||
|
|
||||||
@@ -56,7 +54,7 @@ public partial class MainWindow : Window, IMainApi
|
|||||||
insertPrioSplitters: true);
|
insertPrioSplitters: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task LoadNewWorkspace(IWorkspace? workspace, WorkspaceFeature feature)
|
private async Task LoadNewWorkspace(IWorkspace? workspace)
|
||||||
{
|
{
|
||||||
if (workspace is null)
|
if (workspace is null)
|
||||||
return;
|
return;
|
||||||
@@ -68,10 +66,7 @@ public partial class MainWindow : Window, IMainApi
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (workspace != Model.CurrentWorkspace)
|
if (workspace != Model.CurrentWorkspace)
|
||||||
{
|
|
||||||
wsFeature = feature;
|
|
||||||
Model.CurrentWorkspace = workspace;
|
Model.CurrentWorkspace = workspace;
|
||||||
}
|
|
||||||
|
|
||||||
AddToRecentFiles(workspace);
|
AddToRecentFiles(workspace);
|
||||||
LoadRecentWorkspaces();
|
LoadRecentWorkspaces();
|
||||||
@@ -122,13 +117,13 @@ public partial class MainWindow : Window, IMainApi
|
|||||||
var context = new WorkspaceContext(MainApi, null);
|
var context = new WorkspaceContext(MainApi, null);
|
||||||
await feature.Configure(context);
|
await feature.Configure(context);
|
||||||
if (context.Workspace != null)
|
if (context.Workspace != null)
|
||||||
await LoadNewWorkspace(context.Workspace, feature);
|
await LoadNewWorkspace(context.Workspace);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void MenuItemRecentWorkspaceItem_Click(object? sender, RoutedEventArgs e)
|
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)
|
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)
|
private void MenuItemToolsItem_Click(object? sender, RoutedEventArgs e)
|
||||||
@@ -137,23 +132,73 @@ public partial class MainWindow : Window, IMainApi
|
|||||||
func.Execute(new MainApiParameters(this));
|
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)
|
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)
|
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