From ee208b27660bcafa6e40a40ddd834df1228a5179 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Sat, 24 Oct 2026 11:01:28 -0400 Subject: [PATCH] feat(desktop): say "set" and "quantity" in the set and release dialogs Wording only, no behavior change: "kit" becomes "set" or "Quantity", the release button reads Make Nests... (Try Again after a failed record), the releases list shows Material and Action, and the release dialog's status lines are shorter. Help in docs/nest-storage.md follows. Co-Authored-By: Claude Opus 5.5 --- OpenNest.Data/SetReleasePlan.cs | 10 ++--- .../Forms/SetReleaseFormsTests.cs | 24 +++++------ .../Controls/DrawingSetBrowser.Designer.cs | 2 +- OpenNest/Forms/DrawingLibraryForm.Designer.cs | 4 +- OpenNest/Forms/EditDrawingSetForm.Designer.cs | 4 +- OpenNest/Forms/EditDrawingSetForm.cs | 2 +- OpenNest/Forms/ReleaseSetForm.Designer.cs | 6 +-- OpenNest/Forms/ReleaseSetForm.cs | 38 ++++++++--------- OpenNest/Forms/SetReleasesForm.Designer.cs | 11 ++--- docs/nest-storage.md | 42 +++++++++---------- 10 files changed, 72 insertions(+), 71 deletions(-) diff --git a/OpenNest.Data/SetReleasePlan.cs b/OpenNest.Data/SetReleasePlan.cs index 4cd1abc5..ee9cdcbd 100644 --- a/OpenNest.Data/SetReleasePlan.cs +++ b/OpenNest.Data/SetReleasePlan.cs @@ -196,11 +196,11 @@ public sealed class SetReleasePlan var set = line?.Set ?? throw new ArgumentException("Every line needs a set.", nameof(lines)); if (line.Quantity < 1 || line.Quantity > SetReleaseRules.MaxQuantity) throw new ArgumentOutOfRangeException(nameof(lines), line.Quantity, - $"The number of kits must be between 1 and {SetReleaseRules.MaxQuantity}."); + $"The quantity of a set must be between 1 and {SetReleaseRules.MaxQuantity}."); if (set.Id == Guid.Empty || set.Revision < 1) throw new ArgumentException("Only a set read from the server can be released.", nameof(lines)); if (!seenSets.Add(set.Id)) - throw new ArgumentException($"Set '{set.Name}' is listed twice. Release it once with more kits.", nameof(lines)); + throw new ArgumentException($"Set '{set.Name}' is listed twice. List it once with a larger quantity.", nameof(lines)); var members = set.Members ?? throw new ArgumentException("The set has no member list.", nameof(lines)); if (members.Any(m => m?.Drawing is null || m.Drawing.Id != m.DrawingId)) throw new ArgumentException("A set member is missing its library drawing. Reload the set.", nameof(lines)); @@ -216,7 +216,7 @@ public sealed class SetReleasePlan if (drawing.Id == Guid.Empty || drawing.Revision < 1) throw new ArgumentException("Only a drawing read from the library can be released.", nameof(drawings)); if (!seenDrawings.Add(drawing.Id)) - throw new ArgumentException($"Drawing '{drawing.Name}' is listed twice. Release it once with a larger quantity.", + throw new ArgumentException($"Drawing '{drawing.Name}' is listed twice. List it once with a larger quantity.", nameof(drawings)); } @@ -324,7 +324,7 @@ public sealed class SetReleasePlan if (unassigned) { refusal = $"{Names(items)} {(items.Count == 1 ? "has" : "have")} no material or thickness. " - + "Set them on the library drawings (Edit Drawing), then release again."; + + "Set them with Fix Drawings or Edit Drawing."; refused = items; } else @@ -334,7 +334,7 @@ public sealed class SetReleasePlan if (duplicate != null) { refusal = $"{duplicate.Count()} drawings in this group are named '{duplicate.Key}'. " - + "A nest keys drawings by name, so rename all but one in the library (Edit Drawing) first."; + + "A nest needs unique names, so rename all but one (Fix Drawings or Edit Drawing)."; refused = duplicate.ToList(); } } diff --git a/OpenNest.WinForms.Tests/Forms/SetReleaseFormsTests.cs b/OpenNest.WinForms.Tests/Forms/SetReleaseFormsTests.cs index 4895c80f..cc311991 100644 --- a/OpenNest.WinForms.Tests/Forms/SetReleaseFormsTests.cs +++ b/OpenNest.WinForms.Tests/Forms/SetReleaseFormsTests.cs @@ -49,7 +49,7 @@ public class SetReleaseFormsTests Run(form.ReleaseAsync()); - Assert.Contains("Release set 'Synthetic kit' ×3 into 2 Draft nests", Assert.Single(questions)); + Assert.Contains("Make 2 Draft nests from set 'Synthetic kit' ×3?", Assert.Single(questions)); Assert.Equal(2, nests.Uploaded.Count); Assert.Equal(2, opened.Count); Assert.All(opened, o => Assert.Equal(NestStatus.Draft, o.Nest.Status)); @@ -61,7 +61,7 @@ public class SetReleaseFormsTests var release = Assert.Single(sets.Releases); Assert.Equal((3, "Synthetic run", 2), (release.Sets.Single().Quantity, release.Notes, release.Nests.Count)); Assert.Same(release, form.Result!.Release); - Assert.StartsWith("Released: 2 nests", Field