From 60fb0093293a41c144abf2701a5a8b4b6da97218 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Fri, 9 Oct 2026 13:16:34 -0400 Subject: [PATCH] fix(ui): expose Auto Nest stock row selectors for deletion --- .../Forms/AutoNestFormStockOptionsTests.cs | 30 +++++++++++++++++++ OpenNest/Forms/AutoNestForm.Designer.cs | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/OpenNest.WinForms.Tests/Forms/AutoNestFormStockOptionsTests.cs b/OpenNest.WinForms.Tests/Forms/AutoNestFormStockOptionsTests.cs index 4dd277d..d6d5a5d 100644 --- a/OpenNest.WinForms.Tests/Forms/AutoNestFormStockOptionsTests.cs +++ b/OpenNest.WinForms.Tests/Forms/AutoNestFormStockOptionsTests.cs @@ -10,6 +10,36 @@ namespace OpenNest.WinForms.Tests.Forms; public class AutoNestFormStockOptionsTests { + [Theory] + [InlineData(false)] + [InlineData(true)] + public void StockRowsCanBeSelectedAndRemoved(bool loadSavedOptions) + { + RunSta(() => + { + using var form = new AutoNestForm(new Nest()); + if (loadSavedOptions) + form.LoadPlateOptions(new List + { + new() { Width = 48, Length = 96, Cost = 25 }, + new() { Width = 60, Length = 120, Cost = 40 }, + }, 0.5); + form.OptimizePlateSize = true; + var grid = GetGrid(form); + + Assert.True(grid.RowHeadersVisible); + Assert.True(grid.AllowUserToDeleteRows); + Assert.Equal(DataGridViewSelectionMode.RowHeaderSelect, grid.SelectionMode); + grid.Rows[0].Selected = true; + Assert.True(grid.Rows[0].Selected); + + var remaining = form.GetPlateOptions().Count; + Assert.IsAssignableFrom(grid.DataSource).RemoveAt(grid.SelectedRows[0].Index); + Assert.Equal(remaining - 1, form.GetPlateOptions().Count); + AssertNewRow(grid); + }); + } + [Theory] [InlineData(false)] [InlineData(true)] diff --git a/OpenNest/Forms/AutoNestForm.Designer.cs b/OpenNest/Forms/AutoNestForm.Designer.cs index f6b6c98..4fc66d3 100644 --- a/OpenNest/Forms/AutoNestForm.Designer.cs +++ b/OpenNest/Forms/AutoNestForm.Designer.cs @@ -173,7 +173,7 @@ namespace OpenNest.Forms this.plateGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.plateGrid.Location = new System.Drawing.Point(10, 22); this.plateGrid.Name = "plateGrid"; - this.plateGrid.RowHeadersVisible = false; + this.plateGrid.RowHeadersVisible = true; this.plateGrid.AutoGenerateColumns = false; this.plateGrid.Size = new System.Drawing.Size(508, 130); this.plateGrid.TabIndex = 1;