diff --git a/OpenNest/Forms/MainForm.cs b/OpenNest/Forms/MainForm.cs index 61706dd..d8d5796 100644 --- a/OpenNest/Forms/MainForm.cs +++ b/OpenNest/Forms/MainForm.cs @@ -848,7 +848,6 @@ namespace OpenNest.Forms } var finder = RemnantFinder.FromPlate(plate); - var tiered = finder.FindTieredRemnants(minDim); if (remnantViewer == null || remnantViewer.IsDisposed) { @@ -862,7 +861,7 @@ namespace OpenNest.Forms Top); } - remnantViewer.LoadRemnants(tiered, activeForm.PlateView); + remnantViewer.LoadRemnants(finder, minDim, activeForm.PlateView); remnantViewer.Show(); remnantViewer.BringToFront(); } diff --git a/OpenNest/Forms/RemnantViewerForm.cs b/OpenNest/Forms/RemnantViewerForm.cs index 805b315..cd9d11a 100644 --- a/OpenNest/Forms/RemnantViewerForm.cs +++ b/OpenNest/Forms/RemnantViewerForm.cs @@ -11,7 +11,10 @@ namespace OpenNest.Forms public class RemnantViewerForm : Form { private ListView listView; + private CheckBox filterCheckBox; private PlateView plateView; + private RemnantFinder finder; + private double minDim; private List remnants = new(); private int selectedIndex = -1; @@ -24,6 +27,15 @@ namespace OpenNest.Forms ShowInTaskbar = false; TopMost = true; + filterCheckBox = new CheckBox + { + Text = "Filter by part size", + Checked = true, + Dock = DockStyle.Top, + Padding = new Padding(4, 2, 0, 2), + }; + filterCheckBox.CheckedChanged += FilterCheckBox_CheckedChanged; + listView = new ListView { Dock = DockStyle.Fill, @@ -42,6 +54,7 @@ namespace OpenNest.Forms listView.SelectedIndexChanged += ListView_SelectedIndexChanged; Controls.Add(listView); + Controls.Add(filterCheckBox); } protected override bool ProcessDialogKey(Keys keyData) @@ -54,10 +67,25 @@ namespace OpenNest.Forms return base.ProcessDialogKey(keyData); } - public void LoadRemnants(List tieredRemnants, PlateView view) + public void LoadRemnants(RemnantFinder finder, double minDim, PlateView view) { plateView = view; - remnants = tieredRemnants; + this.finder = finder; + this.minDim = minDim; + + Refresh(); + } + + private void FilterCheckBox_CheckedChanged(object sender, EventArgs e) + { + if (finder != null) + Refresh(); + } + + private new void Refresh() + { + var dim = filterCheckBox.Checked ? minDim : 0; + remnants = finder.FindTieredRemnants(dim); selectedIndex = -1; listView.BeginUpdate();