From 0607c6c7c5a66e2602bbac6b6ff6f7b27f45aa1e Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Sun, 29 Mar 2026 19:58:47 -0400 Subject: [PATCH] feat: add UpdatePreview method and PreviewPlate property Co-Authored-By: Claude Opus 4.6 (1M context) --- OpenNest/Forms/NestProgressForm.cs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/OpenNest/Forms/NestProgressForm.cs b/OpenNest/Forms/NestProgressForm.cs index ec3fd12..db10224 100644 --- a/OpenNest/Forms/NestProgressForm.cs +++ b/OpenNest/Forms/NestProgressForm.cs @@ -27,11 +27,23 @@ namespace OpenNest.Forms public bool Accepted { get; private set; } + public Plate PreviewPlate + { + get => previewPlateView.Plate; + set + { + previewPlateView.Plate = value; + previewPlateView.ZoomToFit(); + } + } + public NestProgressForm(CancellationTokenSource cts, bool showPlateRow = true) { this.cts = cts; InitializeComponent(); + previewPlateView.AllowSelect = false; + if (!showPlateRow) { plateLabel.Visible = false; @@ -76,6 +88,20 @@ namespace OpenNest.Forms : progress.Phase.DisplayName(); } + public void UpdatePreview(List bestParts) + { + if (IsDisposed || !IsHandleCreated) + return; + + var plate = previewPlateView.Plate; + plate.Parts.Clear(); + + foreach (var part in bestParts) + plate.Parts.Add((Part)part.Clone()); + + previewPlateView.ZoomToFit(); + } + public void ShowCompleted() { if (IsDisposed || !IsHandleCreated) @@ -135,6 +161,8 @@ namespace OpenNest.Forms if (!cts.IsCancellationRequested) cts.Cancel(); + previewPlateView.Dispose(); + base.OnFormClosing(e); }