From cbbb546f301fea1146fdc907371d10049c6d4d10 Mon Sep 17 00:00:00 2001 From: Pascal Date: Fri, 27 Jun 2025 08:09:26 +0200 Subject: [PATCH] ui: fixed adding new row beeing empty --- ModpackUpdater.Apps.Manager/Ui/MainForm.cs | 41 +++++++++++----------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/ModpackUpdater.Apps.Manager/Ui/MainForm.cs b/ModpackUpdater.Apps.Manager/Ui/MainForm.cs index bb3e426..5fe2174 100644 --- a/ModpackUpdater.Apps.Manager/Ui/MainForm.cs +++ b/ModpackUpdater.Apps.Manager/Ui/MainForm.cs @@ -16,18 +16,17 @@ namespace ModpackUpdater.Apps.Manager.Ui; public partial class MainForm : RadForm, IMainApi { + private record RecentFilesItemTag(WorkspaceConfig Config, WorkspaceFeature Feature); + private record WorkspaceTag(IWorkspace Workspace, WorkspaceFeature Feature); + private WorkspaceTag? wsInfo; + private InstallAction? tempAction; Form IMainApi.MainWindow => this; - IWorkspace? IMainApi.CurWorkspace => wsInfo?.Workspace; public IActionSetInfos? CurActionSet => radListControl_Updates.SelectedValue as IActionSetInfos; - private record RecentFilesItemTag(WorkspaceConfig Config, WorkspaceFeature Feature); - - private record WorkspaceTag(IWorkspace Workspace, WorkspaceFeature Feature); - public MainForm() { InitializeComponent(); @@ -445,9 +444,19 @@ public partial class MainForm : RadForm, IMainApi private void RadGridView_Actions_CellValueChanged(object sender, GridViewCellEventArgs e) { - if (e.Row?.Tag is not InstallAction action) + if (e.Row is null) return; + if (e.Row.Tag is not InstallAction action) + { + if (CurActionSet is UpdateInfo) + action = tempAction ??= new UpdateAction(); + else if (CurActionSet is InstallInfos) + action = tempAction ??= new InstallAction(); + else + return; + } + var uaction = action as UpdateAction; var newValue = e.Row.Cells[e.Column.Name].Value; var colName = e.Column.Name; @@ -564,21 +573,11 @@ public partial class MainForm : RadForm, IMainApi private void RadGridView_Actions_UserAddedRow(object sender, GridViewRowEventArgs e) { - foreach (var row in e.Rows) - { - if (CurActionSet is UpdateInfo uinfo) - { - var action = new UpdateAction(); - // ... - uinfo.Actions.Add(action); - } - if (CurActionSet is InstallInfos iinfo) - { - var action = new InstallAction(); - // ... - iinfo.Actions.Add(action); - } - } + if (tempAction is UpdateAction uaction && CurActionSet is UpdateInfo uinfo) + uinfo.Actions.Add(uaction); + else if (tempAction is InstallAction iaction && CurActionSet is InstallInfos iinfo) + iinfo.Actions.Add(iaction); + tempAction = null; } private void RadGridView_Actions_UserDeletingRow(object sender, GridViewRowCancelEventArgs e)