diff --git a/OpenNest/Forms/MainForm.Designer.cs b/OpenNest/Forms/MainForm.Designer.cs
index c3aa3fe3..296e4191 100644
--- a/OpenNest/Forms/MainForm.Designer.cs
+++ b/OpenNest/Forms/MainForm.Designer.cs
@@ -326,7 +326,6 @@ namespace OpenNest.Forms
mnuEditPaste.Size = new System.Drawing.Size(164, 22);
mnuEditPaste.Text = "Paste";
mnuEditPaste.Visible = false;
- mnuEditPaste.Click += EditPaste_Click;
//
// toolStripMenuItem4
//
@@ -865,28 +864,28 @@ namespace OpenNest.Forms
mnuPlateAlignLeft.Name = "mnuPlateAlignLeft";
mnuPlateAlignLeft.Size = new System.Drawing.Size(209, 22);
mnuPlateAlignLeft.Text = "Left";
- mnuPlateAlignLeft.Click += AlignLeft_Click;
+ mnuPlateAlignLeft.Click += Align_Click;
//
// mnuPlateAlignRight
//
mnuPlateAlignRight.Name = "mnuPlateAlignRight";
mnuPlateAlignRight.Size = new System.Drawing.Size(209, 22);
mnuPlateAlignRight.Text = "Right";
- mnuPlateAlignRight.Click += AlignRight_Click;
+ mnuPlateAlignRight.Click += Align_Click;
//
// mnuPlateAlignTop
//
mnuPlateAlignTop.Name = "mnuPlateAlignTop";
mnuPlateAlignTop.Size = new System.Drawing.Size(209, 22);
mnuPlateAlignTop.Text = "Top";
- mnuPlateAlignTop.Click += AlignTop_Click;
+ mnuPlateAlignTop.Click += Align_Click;
//
// mnuPlateAlignBottom
//
mnuPlateAlignBottom.Name = "mnuPlateAlignBottom";
mnuPlateAlignBottom.Size = new System.Drawing.Size(209, 22);
mnuPlateAlignBottom.Text = "Bottom";
- mnuPlateAlignBottom.Click += AlignBottom_Click;
+ mnuPlateAlignBottom.Click += Align_Click;
//
// toolStripMenuItem11
//
@@ -898,14 +897,14 @@ namespace OpenNest.Forms
mnuPlateAlignHorizontal.Name = "mnuPlateAlignHorizontal";
mnuPlateAlignHorizontal.Size = new System.Drawing.Size(209, 22);
mnuPlateAlignHorizontal.Text = "Horizontally";
- mnuPlateAlignHorizontal.Click += AlignHorizontal_Click;
+ mnuPlateAlignHorizontal.Click += Align_Click;
//
// mnuPlateAlignVertically
//
mnuPlateAlignVertically.Name = "mnuPlateAlignVertically";
mnuPlateAlignVertically.Size = new System.Drawing.Size(209, 22);
mnuPlateAlignVertically.Text = "Vertically";
- mnuPlateAlignVertically.Click += AlignVertical_Click;
+ mnuPlateAlignVertically.Click += Align_Click;
//
// toolStripMenuItem8
//
@@ -917,14 +916,14 @@ namespace OpenNest.Forms
mnuPlateEvenlySpaceHorizontal.Name = "mnuPlateEvenlySpaceHorizontal";
mnuPlateEvenlySpaceHorizontal.Size = new System.Drawing.Size(209, 22);
mnuPlateEvenlySpaceHorizontal.Text = "Evenly Space Horizontally";
- mnuPlateEvenlySpaceHorizontal.Click += EvenlySpaceHorizontally_Click;
+ mnuPlateEvenlySpaceHorizontal.Click += Align_Click;
//
// mnuPlateEvenlySpaceVertical
//
mnuPlateEvenlySpaceVertical.Name = "mnuPlateEvenlySpaceVertical";
mnuPlateEvenlySpaceVertical.Size = new System.Drawing.Size(209, 22);
mnuPlateEvenlySpaceVertical.Text = "Evenly Space Vertically";
- mnuPlateEvenlySpaceVertical.Click += EvenlySpaceVertically_Click;
+ mnuPlateEvenlySpaceVertical.Click += Align_Click;
//
// toolStripMenuItem23
//
@@ -936,7 +935,7 @@ namespace OpenNest.Forms
centerPartsToolStripMenuItem.Name = "centerPartsToolStripMenuItem";
centerPartsToolStripMenuItem.Size = new System.Drawing.Size(209, 22);
centerPartsToolStripMenuItem.Text = "Center Parts";
- centerPartsToolStripMenuItem.Click += centerPartsToolStripMenuItem_Click;
+ centerPartsToolStripMenuItem.Click += CenterParts_Click;
//
// toolStripMenuItem24
//
diff --git a/OpenNest/Forms/MainForm.File.cs b/OpenNest/Forms/MainForm.File.cs
index ebde8a1e..1671585d 100644
--- a/OpenNest/Forms/MainForm.File.cs
+++ b/OpenNest/Forms/MainForm.File.cs
@@ -144,19 +144,9 @@ namespace OpenNest.Forms
}
}
- private void Export_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.Export();
- }
+ private void Export_Click(object sender, EventArgs e) => WithActive(f => f.Export());
- private void ExportAll_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.ExportAll();
- }
+ private void ExportAll_Click(object sender, EventArgs e) => WithActive(f => f.ExportAll());
private void ExportNestReport_Click(object sender, EventArgs e)
{
diff --git a/OpenNest/Forms/MainForm.Nest.cs b/OpenNest/Forms/MainForm.Nest.cs
index 0af7145b..0812073a 100644
--- a/OpenNest/Forms/MainForm.Nest.cs
+++ b/OpenNest/Forms/MainForm.Nest.cs
@@ -13,20 +13,15 @@ namespace OpenNest.Forms
{
#region Nest Menu Events
- private void Import_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.Import();
- }
+ private void Import_Click(object sender, EventArgs e) => WithActive(f => f.Import());
private void ShapeLibrary_Click(object sender, EventArgs e)
{
if (activeForm == null)
return;
- var form = new ShapeLibraryForm(activeForm.Nest.Drawings.Select(d => d.Name));
- form.ShowDialog();
+ using var form = new ShapeLibraryForm(activeForm.Nest.Drawings.Select(d => d.Name));
+ form.ShowDialog(this);
var drawings = form.GetDrawings();
if (drawings.Count == 0)
@@ -50,12 +45,7 @@ namespace OpenNest.Forms
mnuNestDrawingLibrary.ToolTipText = databaseMode ? "" : NestStorage.DatabaseModeOnly;
}
- private void EditNest_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.ShowNestInfoEditor();
- }
+ private void EditNest_Click(object sender, EventArgs e) => WithActive(f => f.ShowNestInfoEditor());
private void Clamps_Click(object sender, EventArgs e)
{
@@ -87,40 +77,15 @@ namespace OpenNest.Forms
view.Invalidate();
}
- private void RemoveEmptyPlates_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.Nest.Plates.RemoveEmptyPlates();
- }
+ private void RemoveEmptyPlates_Click(object sender, EventArgs e) => WithActive(f => f.Nest.Plates.RemoveEmptyPlates());
- private void LoadFirstPlate_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateManager.LoadFirst();
- }
+ private void LoadFirstPlate_Click(object sender, EventArgs e) => WithActive(f => f.PlateManager.LoadFirst());
- private void LoadLastPlate_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateManager.LoadLast();
- }
+ private void LoadLastPlate_Click(object sender, EventArgs e) => WithActive(f => f.PlateManager.LoadLast());
- private void LoadPreviousPlate_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateManager.LoadPrevious();
- }
+ private void LoadPreviousPlate_Click(object sender, EventArgs e) => WithActive(f => f.PlateManager.LoadPrevious());
- private void LoadNextPlate_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateManager.LoadNext();
- }
+ private void LoadNextPlate_Click(object sender, EventArgs e) => WithActive(f => f.PlateManager.LoadNext());
private RemnantViewerForm remnantViewer;
@@ -193,13 +158,7 @@ namespace OpenNest.Forms
}
}
- private void SequenceAllPlates_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
-
- activeForm.AutoSequenceAllPlates();
- }
+ private void SequenceAllPlates_Click(object sender, EventArgs e) => WithActive(f => f.AutoSequenceAllPlates());
private void ValidateNest_Click(object sender, EventArgs e)
{
@@ -239,27 +198,11 @@ namespace OpenNest.Forms
new PostCommand(this, editForm.Nest, postProcessor).Run();
}
- private void CalculateNestCutTime_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
+ private void CalculateNestCutTime_Click(object sender, EventArgs e) => WithActive(f => f.CalculateNestCutTime());
- activeForm.CalculateNestCutTime();
- }
+ private void NestAssignLeadIns_Click(object sender, EventArgs e) => WithActive(f => f.AssignLeadInsAllPlates());
- private void NestAssignLeadIns_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.AssignLeadInsAllPlates();
- }
-
- private void NestRemoveLeadIns_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.RemoveLeadInsAllPlates();
- }
+ private void NestRemoveLeadIns_Click(object sender, EventArgs e) => WithActive(f => f.RemoveLeadInsAllPlates());
#endregion Nest Menu Events
}
diff --git a/OpenNest/Forms/MainForm.Plate.cs b/OpenNest/Forms/MainForm.Plate.cs
index 3dcbda81..b8fdb70b 100644
--- a/OpenNest/Forms/MainForm.Plate.cs
+++ b/OpenNest/Forms/MainForm.Plate.cs
@@ -9,12 +9,7 @@ namespace OpenNest.Forms
{
#region Plate Menu Events
- private void SetAsNestDefault_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.SetCurrentPlateAsNestDefault();
- }
+ private void SetAsNestDefault_Click(object sender, EventArgs e) => WithActive(f => f.SetCurrentPlateAsNestDefault());
private void AddPlate_Click(object sender, EventArgs e)
{
@@ -24,19 +19,9 @@ namespace OpenNest.Forms
NavigationEnableCheck();
}
- private void EditPlate_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.EditPlate();
- }
+ private void EditPlate_Click(object sender, EventArgs e) => WithActive(f => f.EditPlate());
- private void RemovePlate_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.RemoveCurrentPlate();
- }
+ private void RemovePlate_Click(object sender, EventArgs e) => WithActive(f => f.RemoveCurrentPlate());
private void ResizeToFitParts_Click(object sender, EventArgs e)
{
@@ -46,49 +31,17 @@ namespace OpenNest.Forms
statusBar.UpdatePlate();
}
- private void RotateCw_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.RotateCw();
- }
+ private void RotateCw_Click(object sender, EventArgs e) => WithActive(f => f.RotateCw());
- private void RotateCcw_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.RotateCcw();
- }
+ private void RotateCcw_Click(object sender, EventArgs e) => WithActive(f => f.RotateCcw());
- private void Rotate180_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.Rotate180();
- }
+ private void Rotate180_Click(object sender, EventArgs e) => WithActive(f => f.Rotate180());
- private void OpenInExternalCad_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.OpenCurrentPlate();
- }
+ private void OpenInExternalCad_Click(object sender, EventArgs e) => WithActive(f => f.OpenCurrentPlate());
- private void CalculatePlateCutTime_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
+ private void CalculatePlateCutTime_Click(object sender, EventArgs e) => WithActive(f => f.CalculateCurrentPlateCutTime());
- activeForm.CalculateCurrentPlateCutTime();
- }
-
- private void AutoSequenceCurrentPlate_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
-
- activeForm.AutoSequenceCurrentPlate();
- }
+ private void AutoSequenceCurrentPlate_Click(object sender, EventArgs e) => WithActive(f => f.AutoSequenceCurrentPlate());
private void ManualSequenceParts_Click(object sender, EventArgs e)
{
@@ -98,13 +51,7 @@ namespace OpenNest.Forms
activeForm.PlateView.SetAction(typeof(ActionSetSequence));
}
- private void CutOff_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
-
- activeForm.PlateView.SetAction(typeof(ActionCutOff));
- }
+ private void CutOff_Click(object sender, EventArgs e) => WithActive(f => f.PlateView.SetAction(typeof(ActionCutOff)));
private void AutomaticCutOff_Click(object sender, EventArgs e) => ShowAutomaticCutOff(allPlates: false);
@@ -191,26 +138,11 @@ namespace OpenNest.Forms
}
}
- private void PlateAssignLeadIns_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.AssignLeadIns_Click(sender, e);
- }
+ private void PlateAssignLeadIns_Click(object sender, EventArgs e) => WithActive(f => f.AssignLeadIns_Click(sender, e));
- private void PlatePlaceLeadIn_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlaceLeadIn_Click(sender, e);
- }
+ private void PlatePlaceLeadIn_Click(object sender, EventArgs e) => WithActive(f => f.PlaceLeadIn_Click(sender, e));
- private void PlateRemoveLeadIns_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.RemoveLeadIns_Click(sender, e);
- }
+ private void PlateRemoveLeadIns_Click(object sender, EventArgs e) => WithActive(f => f.RemoveLeadIns_Click(sender, e));
#endregion Plate Menu Events
}
diff --git a/OpenNest/Forms/MainForm.Tools.cs b/OpenNest/Forms/MainForm.Tools.cs
index 7f09b75f..30837a40 100644
--- a/OpenNest/Forms/MainForm.Tools.cs
+++ b/OpenNest/Forms/MainForm.Tools.cs
@@ -11,13 +11,7 @@ namespace OpenNest.Forms
{
#region Tools Menu Events
- private void MeasureArea_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
-
- activeForm.PlateView.SetAction(typeof(ActionSelectArea));
- }
+ private void MeasureArea_Click(object sender, EventArgs e) => WithActive(f => f.PlateView.SetAction(typeof(ActionSelectArea)));
private void BestFitViewer_Click(object sender, EventArgs e)
{
@@ -148,11 +142,11 @@ namespace OpenNest.Forms
{
if (activeForm == null)
return;
- var form = new SetValueForm();
+ using var form = new SetValueForm();
form.Text = "Set Offset Increment";
form.Value = activeForm.PlateView.OffsetIncrementDistance;
- if (form.ShowDialog() == DialogResult.OK)
+ if (form.ShowDialog(this) == DialogResult.OK)
activeForm.PlateView.OffsetIncrementDistance = form.Value;
}
@@ -160,19 +154,19 @@ namespace OpenNest.Forms
{
if (activeForm == null)
return;
- var form = new SetValueForm();
+ using var form = new SetValueForm();
form.Text = "Set Rotation Increment";
form.Value = activeForm.PlateView.RotateIncrementAngle;
form.Maximum = 360;
- if (form.ShowDialog() == DialogResult.OK)
+ if (form.ShowDialog(this) == DialogResult.OK)
activeForm.PlateView.RotateIncrementAngle = form.Value;
}
private void Options_Click(object sender, EventArgs e)
{
- var form = new OptionsForm();
- form.ShowDialog();
+ using var form = new OptionsForm();
+ form.ShowDialog(this);
}
private void NestDefaults_Click(object sender, EventArgs e)
@@ -209,77 +203,41 @@ namespace OpenNest.Forms
}
}
- private void AlignLeft_Click(object sender, EventArgs e)
+ private void InitializeAlignMenu()
{
- if (activeForm == null)
- return;
- activeForm.PlateView.AlignSelected(AlignType.Left);
+ mnuPlateAlignLeft.Tag = AlignType.Left;
+ mnuPlateAlignRight.Tag = AlignType.Right;
+ mnuPlateAlignTop.Tag = AlignType.Top;
+ mnuPlateAlignBottom.Tag = AlignType.Bottom;
+ mnuPlateAlignHorizontal.Tag = AlignType.Horizontally;
+ mnuPlateAlignVertically.Tag = AlignType.Vertically;
+ mnuPlateEvenlySpaceHorizontal.Tag = AlignType.EvenlySpaceHorizontally;
+ mnuPlateEvenlySpaceVertical.Tag = AlignType.EvenlySpaceVertically;
}
- private void AlignRight_Click(object sender, EventArgs e)
+ private void Align_Click(object sender, EventArgs e)
{
- if (activeForm == null)
- return;
- activeForm.PlateView.AlignSelected(AlignType.Right);
- }
-
- private void AlignTop_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateView.AlignSelected(AlignType.Top);
- }
-
- private void AlignBottom_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateView.AlignSelected(AlignType.Bottom);
- }
-
- private void AlignVertical_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateView.AlignSelected(AlignType.Vertically);
- }
-
- private void AlignHorizontal_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateView.AlignSelected(AlignType.Horizontally);
- }
-
- private void EvenlySpaceHorizontally_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateView.AlignSelected(AlignType.EvenlySpaceHorizontally);
- }
-
- private void EvenlySpaceVertically_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateView.AlignSelected(AlignType.EvenlySpaceVertically);
+ if (((ToolStripItem)sender).Tag is AlignType type)
+ WithActive(f => f.PlateView.AlignSelected(type));
}
#endregion Tools Menu Events
- private void centerPartsToolStripMenuItem_Click(object sender, EventArgs e)
+ private void CenterParts_Click(object sender, EventArgs e)
{
- var plateCenter = this.activeForm.PlateView.Plate.BoundingBox(false).Center;
- var partsCenter = this.activeForm.PlateView.Parts.GetBoundingBox().Center;
+ var view = activeForm?.PlateView;
+ if (view?.Plate == null || view.Parts.Count == 0)
+ return;
+
+ var plateCenter = view.Plate.BoundingBox(false).Center;
+ var partsCenter = view.Parts.GetBoundingBox().Center;
var offset = plateCenter - partsCenter;
- foreach (var part in this.activeForm.PlateView.Parts)
- {
+ foreach (var part in view.Parts)
part.Offset(offset);
- }
- activeForm.PlateView.Invalidate();
+ view.Invalidate();
}
}
}
diff --git a/OpenNest/Forms/MainForm.View.cs b/OpenNest/Forms/MainForm.View.cs
index 896be863..68a51dba 100644
--- a/OpenNest/Forms/MainForm.View.cs
+++ b/OpenNest/Forms/MainForm.View.cs
@@ -27,8 +27,6 @@ namespace OpenNest.Forms
}
}
- private void EditPaste_Click(object sender, EventArgs e) { }
-
private void EditCopy_Click(object sender, EventArgs e)
{
if (activeForm == null)
@@ -43,12 +41,7 @@ namespace OpenNest.Forms
}
}
- private void EditSelectAll_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.SelectAllParts();
- }
+ private void EditSelectAll_Click(object sender, EventArgs e) => WithActive(f => f.SelectAllParts());
#endregion Edit Menu Events
@@ -147,33 +140,13 @@ namespace OpenNest.Forms
mnuViewDrawCutDirection.Checked = activeForm.PlateView.DrawCutDirection;
}
- private void ZoomToArea_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateView.SetAction(typeof(ActionZoomWindow));
- }
+ private void ZoomToArea_Click(object sender, EventArgs e) => WithActive(f => f.PlateView.SetAction(typeof(ActionZoomWindow)));
- private void ZoomToFit_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateView.ZoomToFit();
- }
+ private void ZoomToFit_Click(object sender, EventArgs e) => WithActive(f => f.PlateView.ZoomToFit());
- private void ZoomToPlate_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateView.ZoomToPlate();
- }
+ private void ZoomToPlate_Click(object sender, EventArgs e) => WithActive(f => f.PlateView.ZoomToPlate());
- private void ZoomToSelected_Click(object sender, EventArgs e)
- {
- if (activeForm == null)
- return;
- activeForm.PlateView.ZoomToSelected();
- }
+ private void ZoomToSelected_Click(object sender, EventArgs e) => WithActive(f => f.PlateView.ZoomToSelected());
private void ZoomIn_Click(object sender, EventArgs e)
{
diff --git a/OpenNest/Forms/MainForm.cs b/OpenNest/Forms/MainForm.cs
index 54ff7dfb..d6b22321 100644
--- a/OpenNest/Forms/MainForm.cs
+++ b/OpenNest/Forms/MainForm.cs
@@ -64,6 +64,13 @@ namespace OpenNest.Forms
Dispose();
}
+ /// Runs on the active nest document, if there is one.
+ private void WithActive(Action action)
+ {
+ if (activeForm != null)
+ action(activeForm);
+ }
+
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
var inspection = MdiChildren.OfType()
@@ -109,6 +116,7 @@ namespace OpenNest.Forms
exportNestMenu.Click += ExportNest_Click;
mnuFile.DropDownItems.Insert(mnuFile.DropDownItems.IndexOf(mnuFileExport), exportNestMenu);
mnuFile.DropDownItems.Insert(mnuFile.DropDownItems.IndexOf(mnuFileExit), storageModeMenu);
+ InitializeAlignMenu();
UpdateOverlapMenu();
MainWindowSettings.Load(this);