feat: add filter toggle to remnant viewer for showing all remnants
The remnant viewer previously always filtered by smallest part dimension, hiding large remnants that were narrower than the smallest part. Added a "Filter by part size" checkbox (on by default) so users can toggle this off to see all remnants regardless of size. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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<TieredRemnant> 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<TieredRemnant> 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();
|
||||
|
||||
Reference in New Issue
Block a user