refactor(ui): drop duplicate plate preview from nesting progress dialog
The dialog rendered the same best-parts layout as transparent ghost parts already shown live on the main plate view, and its embedded view reset zoom on every improvement while lacking placed parts, work-area and cut-off context. The progress dialog is now a compact stats strip (266px wide) with the plate counter preserved for multi-plate runs. Removes the never-called SetStationaryParts stationary-preview path along with PreviewPlate/UpdatePreview/CreatePreviewPlate.
This commit is contained in:
@@ -10,13 +10,13 @@ using System.Threading.Tasks;
|
|||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using OpenNest.Actions;
|
using OpenNest.Actions;
|
||||||
using OpenNest.Collections;
|
using OpenNest.Collections;
|
||||||
|
using OpenNest.Engine;
|
||||||
using OpenNest.Engine.Fill;
|
using OpenNest.Engine.Fill;
|
||||||
|
using OpenNest.Engine.Jobs.Placement;
|
||||||
using OpenNest.Forms;
|
using OpenNest.Forms;
|
||||||
using OpenNest.Geometry;
|
using OpenNest.Geometry;
|
||||||
using OpenNest.Math;
|
using OpenNest.Math;
|
||||||
using Timer = System.Timers.Timer;
|
using Timer = System.Timers.Timer;
|
||||||
using OpenNest.Engine;
|
|
||||||
using OpenNest.Engine.Jobs.Placement;
|
|
||||||
|
|
||||||
namespace OpenNest.Controls
|
namespace OpenNest.Controls
|
||||||
{
|
{
|
||||||
@@ -562,9 +562,6 @@ namespace OpenNest.Controls
|
|||||||
Plate.Parts.Add(part);
|
Plate.Parts.Add(part);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetStationaryParts(List<Part> parts) =>
|
|
||||||
previewManager.SetStationaryParts(parts);
|
|
||||||
|
|
||||||
public void SetActiveParts(List<Part> parts) => previewManager.SetActiveParts(parts);
|
public void SetActiveParts(List<Part> parts) => previewManager.SetActiveParts(parts);
|
||||||
|
|
||||||
public void ClearPreviewParts() => previewManager.ClearPreviewParts();
|
public void ClearPreviewParts() => previewManager.ClearPreviewParts();
|
||||||
@@ -578,23 +575,12 @@ namespace OpenNest.Controls
|
|||||||
var cts = new CancellationTokenSource();
|
var cts = new CancellationTokenSource();
|
||||||
var progressForm = new NestProgressForm(cts, showPlateRow: false);
|
var progressForm = new NestProgressForm(cts, showPlateRow: false);
|
||||||
|
|
||||||
var previewPlate = new Plate(Plate.Size)
|
|
||||||
{
|
|
||||||
Quadrant = Plate.Quadrant,
|
|
||||||
PartSpacing = Plate.PartSpacing,
|
|
||||||
};
|
|
||||||
previewPlate.EdgeSpacing = Plate.EdgeSpacing;
|
|
||||||
progressForm.PreviewPlate = previewPlate;
|
|
||||||
|
|
||||||
var progress = new Progress<NestProgress>(p =>
|
var progress = new Progress<NestProgress>(p =>
|
||||||
{
|
{
|
||||||
progressForm.UpdateProgress(p);
|
progressForm.UpdateProgress(p);
|
||||||
|
|
||||||
if (p.IsOverallBest)
|
if (p.IsOverallBest)
|
||||||
{
|
|
||||||
progressForm.UpdatePreview(p.BestParts);
|
|
||||||
SetActiveParts(p.BestParts);
|
SetActiveParts(p.BestParts);
|
||||||
}
|
|
||||||
|
|
||||||
ActiveWorkArea = p.ActiveWorkArea;
|
ActiveWorkArea = p.ActiveWorkArea;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ namespace OpenNest.Controls
|
|||||||
internal class PreviewManager
|
internal class PreviewManager
|
||||||
{
|
{
|
||||||
private readonly PlateView view;
|
private readonly PlateView view;
|
||||||
private readonly List<LayoutPart> stationaryParts = new List<LayoutPart>();
|
|
||||||
private readonly List<LayoutPart> activeParts = new List<LayoutPart>();
|
private readonly List<LayoutPart> activeParts = new List<LayoutPart>();
|
||||||
|
|
||||||
public PreviewManager(PlateView view)
|
public PreviewManager(PlateView view)
|
||||||
@@ -14,32 +13,11 @@ namespace OpenNest.Controls
|
|||||||
this.view = view;
|
this.view = view;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IReadOnlyList<LayoutPart> PreviewParts =>
|
public IReadOnlyList<LayoutPart> PreviewParts => activeParts;
|
||||||
activeParts.Count > 0 ? activeParts : stationaryParts;
|
|
||||||
|
|
||||||
public Brush PreviewBrush =>
|
public Brush PreviewBrush => view.ColorScheme.ActivePreviewPartBrush;
|
||||||
activeParts.Count > 0
|
|
||||||
? view.ColorScheme.ActivePreviewPartBrush
|
|
||||||
: view.ColorScheme.PreviewPartBrush;
|
|
||||||
|
|
||||||
public Pen PreviewPen =>
|
public Pen PreviewPen => view.ColorScheme.ActivePreviewPartPen;
|
||||||
activeParts.Count > 0
|
|
||||||
? view.ColorScheme.ActivePreviewPartPen
|
|
||||||
: view.ColorScheme.PreviewPartPen;
|
|
||||||
|
|
||||||
public void SetStationaryParts(List<Part> parts)
|
|
||||||
{
|
|
||||||
stationaryParts.Clear();
|
|
||||||
activeParts.Clear();
|
|
||||||
|
|
||||||
if (parts != null)
|
|
||||||
{
|
|
||||||
foreach (var part in parts)
|
|
||||||
stationaryParts.Add(LayoutPart.Create(part, view));
|
|
||||||
}
|
|
||||||
|
|
||||||
view.Invalidate();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetActiveParts(List<Part> parts)
|
public void SetActiveParts(List<Part> parts)
|
||||||
{
|
{
|
||||||
@@ -56,7 +34,6 @@ namespace OpenNest.Controls
|
|||||||
|
|
||||||
public void ClearPreviewParts()
|
public void ClearPreviewParts()
|
||||||
{
|
{
|
||||||
stationaryParts.Clear();
|
|
||||||
activeParts.Clear();
|
activeParts.Clear();
|
||||||
view.Invalidate();
|
view.Invalidate();
|
||||||
}
|
}
|
||||||
@@ -69,19 +46,16 @@ namespace OpenNest.Controls
|
|||||||
view.Plate.Parts.Add(part);
|
view.Plate.Parts.Add(part);
|
||||||
}
|
}
|
||||||
|
|
||||||
stationaryParts.Clear();
|
|
||||||
activeParts.Clear();
|
activeParts.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Update()
|
public void Update()
|
||||||
{
|
{
|
||||||
stationaryParts.ForEach(p => p.Update(view));
|
|
||||||
activeParts.ForEach(p => p.Update(view));
|
activeParts.ForEach(p => p.Update(view));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Clear()
|
public void Clear()
|
||||||
{
|
{
|
||||||
stationaryParts.Clear();
|
|
||||||
activeParts.Clear();
|
activeParts.Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,16 +10,16 @@ using System.Windows.Forms;
|
|||||||
using OpenNest.Actions;
|
using OpenNest.Actions;
|
||||||
using OpenNest.Collections;
|
using OpenNest.Collections;
|
||||||
using OpenNest.Data;
|
using OpenNest.Data;
|
||||||
|
using OpenNest.Engine;
|
||||||
using OpenNest.Engine.BestFit;
|
using OpenNest.Engine.BestFit;
|
||||||
using OpenNest.Engine.Fill;
|
using OpenNest.Engine.Fill;
|
||||||
|
using OpenNest.Engine.Jobs;
|
||||||
|
using OpenNest.Engine.Jobs.Adapters;
|
||||||
|
using OpenNest.Engine.Jobs.Placement;
|
||||||
using OpenNest.Geometry;
|
using OpenNest.Geometry;
|
||||||
using OpenNest.Gpu;
|
using OpenNest.Gpu;
|
||||||
using OpenNest.IO;
|
using OpenNest.IO;
|
||||||
using OpenNest.Properties;
|
using OpenNest.Properties;
|
||||||
using OpenNest.Engine;
|
|
||||||
using OpenNest.Engine.Jobs;
|
|
||||||
using OpenNest.Engine.Jobs.Adapters;
|
|
||||||
using OpenNest.Engine.Jobs.Placement;
|
|
||||||
|
|
||||||
namespace OpenNest.Forms
|
namespace OpenNest.Forms
|
||||||
{
|
{
|
||||||
@@ -1040,7 +1040,6 @@ namespace OpenNest.Forms
|
|||||||
|
|
||||||
nestingCts = new CancellationTokenSource();
|
nestingCts = new CancellationTokenSource();
|
||||||
var progressForm = new NestProgressForm(nestingCts, showPlateRow: true);
|
var progressForm = new NestProgressForm(nestingCts, showPlateRow: true);
|
||||||
progressForm.PreviewPlate = CreatePreviewPlate(activeForm.PlateView.Plate);
|
|
||||||
|
|
||||||
var jobEngineName = EngineSelection.IsFillStrategy(EngineSelection.EngineName)
|
var jobEngineName = EngineSelection.IsFillStrategy(EngineSelection.EngineName)
|
||||||
? null
|
? null
|
||||||
@@ -1052,9 +1051,7 @@ namespace OpenNest.Forms
|
|||||||
progressForm.UpdateProgress(p);
|
progressForm.UpdateProgress(p);
|
||||||
|
|
||||||
if (p.IsOverallBest)
|
if (p.IsOverallBest)
|
||||||
progressForm.UpdatePreview(p.BestParts);
|
activeForm.PlateView.SetActiveParts(p.BestParts);
|
||||||
|
|
||||||
activeForm.PlateView.SetActiveParts(p.BestParts);
|
|
||||||
activeForm.PlateView.ActiveWorkArea = p.ActiveWorkArea;
|
activeForm.PlateView.ActiveWorkArea = p.ActiveWorkArea;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1152,7 +1149,7 @@ namespace OpenNest.Forms
|
|||||||
{
|
{
|
||||||
if (pr.IsNew)
|
if (pr.IsNew)
|
||||||
{
|
{
|
||||||
var plate = GetOrCreatePlate(progressForm);
|
var plate = GetOrCreatePlate();
|
||||||
plate.Size = pr.Plate.Size;
|
plate.Size = pr.Plate.Size;
|
||||||
plate.Parts.AddRange(pr.Parts);
|
plate.Parts.AddRange(pr.Parts);
|
||||||
}
|
}
|
||||||
@@ -1172,7 +1169,7 @@ namespace OpenNest.Forms
|
|||||||
if (remaining.Count == 0 || token.IsCancellationRequested)
|
if (remaining.Count == 0 || token.IsCancellationRequested)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
var plate = GetOrCreatePlate(progressForm);
|
var plate = GetOrCreatePlate();
|
||||||
|
|
||||||
var placed = await NestSinglePlateAsync(
|
var placed = await NestSinglePlateAsync(
|
||||||
plate,
|
plate,
|
||||||
@@ -1242,7 +1239,7 @@ namespace OpenNest.Forms
|
|||||||
if (parts.Count == 0)
|
if (parts.Count == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var plate = GetOrCreatePlate(progressForm);
|
var plate = GetOrCreatePlate();
|
||||||
plate.Size = sheet.Stock.Size;
|
plate.Size = sheet.Stock.Size;
|
||||||
plate.Parts.AddRange(parts);
|
plate.Parts.AddRange(parts);
|
||||||
}
|
}
|
||||||
@@ -1260,11 +1257,10 @@ namespace OpenNest.Forms
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Plate GetOrCreatePlate(NestProgressForm progressForm)
|
private Plate GetOrCreatePlate()
|
||||||
{
|
{
|
||||||
var plate = activeForm.PlateManager.GetOrCreateEmpty();
|
var plate = activeForm.PlateManager.GetOrCreateEmpty();
|
||||||
activeForm.PlateManager.LoadLast();
|
activeForm.PlateManager.LoadLast();
|
||||||
progressForm.PreviewPlate = CreatePreviewPlate(plate);
|
|
||||||
return plate;
|
return plate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1340,17 +1336,6 @@ namespace OpenNest.Forms
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Plate CreatePreviewPlate(Plate source)
|
|
||||||
{
|
|
||||||
var plate = new Plate(source.Size)
|
|
||||||
{
|
|
||||||
Quadrant = source.Quadrant,
|
|
||||||
PartSpacing = source.PartSpacing,
|
|
||||||
};
|
|
||||||
plate.EdgeSpacing = source.EdgeSpacing;
|
|
||||||
return plate;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SequenceAllPlates_Click(object sender, EventArgs e)
|
private void SequenceAllPlates_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (activeForm == null)
|
if (activeForm == null)
|
||||||
|
|||||||
+3
-88
@@ -17,11 +17,6 @@ namespace OpenNest.Forms
|
|||||||
|
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
ColorScheme colorScheme1 = new ColorScheme();
|
|
||||||
CutOffSettings cutOffSettings1 = new CutOffSettings();
|
|
||||||
Plate plate1 = new Plate();
|
|
||||||
Collections.ObservableList<CutOff> observableList_11 = new Collections.ObservableList<CutOff>();
|
|
||||||
Collections.ObservableList<Part> observableList_12 = new Collections.ObservableList<Part>();
|
|
||||||
phaseStepper = new OpenNest.Controls.PhaseStepperControl();
|
phaseStepper = new OpenNest.Controls.PhaseStepperControl();
|
||||||
resultsPanel = new System.Windows.Forms.Panel();
|
resultsPanel = new System.Windows.Forms.Panel();
|
||||||
resultsTable = new System.Windows.Forms.TableLayoutPanel();
|
resultsTable = new System.Windows.Forms.TableLayoutPanel();
|
||||||
@@ -46,8 +41,6 @@ namespace OpenNest.Forms
|
|||||||
buttonPanel = new System.Windows.Forms.FlowLayoutPanel();
|
buttonPanel = new System.Windows.Forms.FlowLayoutPanel();
|
||||||
stopButton = new System.Windows.Forms.Button();
|
stopButton = new System.Windows.Forms.Button();
|
||||||
acceptButton = new System.Windows.Forms.Button();
|
acceptButton = new System.Windows.Forms.Button();
|
||||||
splitContainer = new System.Windows.Forms.SplitContainer();
|
|
||||||
previewPlateView = new OpenNest.Controls.PlateView();
|
|
||||||
statsPanel = new System.Windows.Forms.Panel();
|
statsPanel = new System.Windows.Forms.Panel();
|
||||||
resultsPanel.SuspendLayout();
|
resultsPanel.SuspendLayout();
|
||||||
resultsTable.SuspendLayout();
|
resultsTable.SuspendLayout();
|
||||||
@@ -55,10 +48,6 @@ namespace OpenNest.Forms
|
|||||||
statusPanel.SuspendLayout();
|
statusPanel.SuspendLayout();
|
||||||
statusTable.SuspendLayout();
|
statusTable.SuspendLayout();
|
||||||
buttonPanel.SuspendLayout();
|
buttonPanel.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)splitContainer).BeginInit();
|
|
||||||
splitContainer.Panel1.SuspendLayout();
|
|
||||||
splitContainer.Panel2.SuspendLayout();
|
|
||||||
splitContainer.SuspendLayout();
|
|
||||||
statsPanel.SuspendLayout();
|
statsPanel.SuspendLayout();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
@@ -365,74 +354,6 @@ namespace OpenNest.Forms
|
|||||||
acceptButton.UseVisualStyleBackColor = true;
|
acceptButton.UseVisualStyleBackColor = true;
|
||||||
acceptButton.Click += AcceptButton_Click;
|
acceptButton.Click += AcceptButton_Click;
|
||||||
//
|
//
|
||||||
// splitContainer
|
|
||||||
//
|
|
||||||
splitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
||||||
splitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
|
|
||||||
splitContainer.Location = new System.Drawing.Point(0, 0);
|
|
||||||
splitContainer.Name = "splitContainer";
|
|
||||||
//
|
|
||||||
// splitContainer.Panel1
|
|
||||||
//
|
|
||||||
splitContainer.Panel1.Controls.Add(previewPlateView);
|
|
||||||
//
|
|
||||||
// splitContainer.Panel2
|
|
||||||
//
|
|
||||||
splitContainer.Panel2.Controls.Add(statsPanel);
|
|
||||||
splitContainer.Size = new System.Drawing.Size(626, 341);
|
|
||||||
splitContainer.SplitterDistance = 356;
|
|
||||||
splitContainer.TabIndex = 0;
|
|
||||||
//
|
|
||||||
// previewPlateView
|
|
||||||
//
|
|
||||||
previewPlateView.ActiveWorkArea = null;
|
|
||||||
previewPlateView.AllowPan = true;
|
|
||||||
previewPlateView.AllowSelect = true;
|
|
||||||
previewPlateView.AllowZoom = true;
|
|
||||||
previewPlateView.BackColor = System.Drawing.Color.DarkGray;
|
|
||||||
colorScheme1.BackgroundColor = System.Drawing.Color.DarkGray;
|
|
||||||
colorScheme1.BoundingBoxColor = System.Drawing.Color.FromArgb(128, 128, 255);
|
|
||||||
colorScheme1.EdgeSpacingColor = System.Drawing.Color.FromArgb(180, 180, 180);
|
|
||||||
colorScheme1.LayoutFillColor = System.Drawing.Color.WhiteSmoke;
|
|
||||||
colorScheme1.LayoutOutlineColor = System.Drawing.Color.Gray;
|
|
||||||
colorScheme1.OriginColor = System.Drawing.Color.Gray;
|
|
||||||
colorScheme1.PreviewPartColor = System.Drawing.Color.FromArgb(255, 140, 0);
|
|
||||||
colorScheme1.RapidColor = System.Drawing.Color.DodgerBlue;
|
|
||||||
previewPlateView.ColorScheme = colorScheme1;
|
|
||||||
cutOffSettings1.CutDirection = CutDirection.AwayFromOrigin;
|
|
||||||
cutOffSettings1.MinSegmentLength = 0.05D;
|
|
||||||
cutOffSettings1.Overtravel = 0D;
|
|
||||||
cutOffSettings1.PartClearance = 0.02D;
|
|
||||||
previewPlateView.CutOffSettings = cutOffSettings1;
|
|
||||||
previewPlateView.DebugRemnantPriorities = null;
|
|
||||||
previewPlateView.DebugRemnants = null;
|
|
||||||
previewPlateView.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
||||||
previewPlateView.DrawBounds = true;
|
|
||||||
previewPlateView.DrawCutDirection = false;
|
|
||||||
previewPlateView.DrawOffset = false;
|
|
||||||
previewPlateView.DrawOrigin = true;
|
|
||||||
previewPlateView.DrawPiercePoints = false;
|
|
||||||
previewPlateView.DrawRapid = false;
|
|
||||||
previewPlateView.FillParts = true;
|
|
||||||
previewPlateView.Location = new System.Drawing.Point(0, 0);
|
|
||||||
previewPlateView.Name = "previewPlateView";
|
|
||||||
previewPlateView.OffsetIncrementDistance = 10D;
|
|
||||||
previewPlateView.OffsetTolerance = 0.001D;
|
|
||||||
plate1.CutOffs = observableList_11;
|
|
||||||
plate1.CuttingParameters = null;
|
|
||||||
plate1.GrainAngle = 0D;
|
|
||||||
plate1.Parts = observableList_12;
|
|
||||||
plate1.PartSpacing = 0D;
|
|
||||||
plate1.Quadrant = 1;
|
|
||||||
plate1.Quantity = 0;
|
|
||||||
previewPlateView.Plate = plate1;
|
|
||||||
previewPlateView.RotateIncrementAngle = 10D;
|
|
||||||
|
|
||||||
previewPlateView.ShowBendLines = false;
|
|
||||||
previewPlateView.Size = new System.Drawing.Size(356, 341);
|
|
||||||
previewPlateView.Status = "Select";
|
|
||||||
previewPlateView.TabIndex = 0;
|
|
||||||
//
|
|
||||||
// statsPanel
|
// statsPanel
|
||||||
//
|
//
|
||||||
statsPanel.AutoScroll = true;
|
statsPanel.AutoScroll = true;
|
||||||
@@ -450,12 +371,12 @@ namespace OpenNest.Forms
|
|||||||
//
|
//
|
||||||
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||||
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
ClientSize = new System.Drawing.Size(626, 341);
|
ClientSize = new System.Drawing.Size(266, 341);
|
||||||
Controls.Add(splitContainer);
|
Controls.Add(statsPanel);
|
||||||
FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
|
FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
|
||||||
MaximizeBox = false;
|
MaximizeBox = false;
|
||||||
MinimizeBox = false;
|
MinimizeBox = false;
|
||||||
MinimumSize = new System.Drawing.Size(550, 380);
|
MinimumSize = new System.Drawing.Size(320, 380);
|
||||||
Name = "NestProgressForm";
|
Name = "NestProgressForm";
|
||||||
ShowInTaskbar = false;
|
ShowInTaskbar = false;
|
||||||
StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
@@ -471,10 +392,6 @@ namespace OpenNest.Forms
|
|||||||
statusTable.ResumeLayout(false);
|
statusTable.ResumeLayout(false);
|
||||||
statusTable.PerformLayout();
|
statusTable.PerformLayout();
|
||||||
buttonPanel.ResumeLayout(false);
|
buttonPanel.ResumeLayout(false);
|
||||||
splitContainer.Panel1.ResumeLayout(false);
|
|
||||||
splitContainer.Panel2.ResumeLayout(false);
|
|
||||||
((System.ComponentModel.ISupportInitialize)splitContainer).EndInit();
|
|
||||||
splitContainer.ResumeLayout(false);
|
|
||||||
statsPanel.ResumeLayout(false);
|
statsPanel.ResumeLayout(false);
|
||||||
statsPanel.PerformLayout();
|
statsPanel.PerformLayout();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
@@ -506,8 +423,6 @@ namespace OpenNest.Forms
|
|||||||
private System.Windows.Forms.FlowLayoutPanel buttonPanel;
|
private System.Windows.Forms.FlowLayoutPanel buttonPanel;
|
||||||
private System.Windows.Forms.Button acceptButton;
|
private System.Windows.Forms.Button acceptButton;
|
||||||
private System.Windows.Forms.Button stopButton;
|
private System.Windows.Forms.Button stopButton;
|
||||||
private System.Windows.Forms.SplitContainer splitContainer;
|
|
||||||
private System.Windows.Forms.Panel statsPanel;
|
private System.Windows.Forms.Panel statsPanel;
|
||||||
private Controls.PlateView previewPlateView;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,23 +38,11 @@ namespace OpenNest.Forms
|
|||||||
set => acceptButton.Visible = value;
|
set => acceptButton.Visible = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Plate PreviewPlate
|
|
||||||
{
|
|
||||||
get => previewPlateView.Plate;
|
|
||||||
set
|
|
||||||
{
|
|
||||||
previewPlateView.Plate = value;
|
|
||||||
previewPlateView.ZoomToFit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public NestProgressForm(CancellationTokenSource cts, bool showPlateRow = true)
|
public NestProgressForm(CancellationTokenSource cts, bool showPlateRow = true)
|
||||||
{
|
{
|
||||||
this.cts = cts;
|
this.cts = cts;
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
previewPlateView.AllowSelect = false;
|
|
||||||
|
|
||||||
if (!showPlateRow)
|
if (!showPlateRow)
|
||||||
{
|
{
|
||||||
plateLabel.Visible = false;
|
plateLabel.Visible = false;
|
||||||
@@ -104,20 +92,6 @@ namespace OpenNest.Forms
|
|||||||
: progress.Phase.DisplayName();
|
: progress.Phase.DisplayName();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdatePreview(List<Part> 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()
|
public void ShowCompleted()
|
||||||
{
|
{
|
||||||
if (IsDisposed || !IsHandleCreated)
|
if (IsDisposed || !IsHandleCreated)
|
||||||
@@ -178,8 +152,6 @@ namespace OpenNest.Forms
|
|||||||
if (!cts.IsCancellationRequested)
|
if (!cts.IsCancellationRequested)
|
||||||
cts.Cancel();
|
cts.Cancel();
|
||||||
|
|
||||||
previewPlateView.Dispose();
|
|
||||||
|
|
||||||
base.OnFormClosing(e);
|
base.OnFormClosing(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user