Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sn4k3/UVtools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'PrusaSL1Viewer/FrmRepairLayers.cs')
-rw-r--r--PrusaSL1Viewer/FrmRepairLayers.cs182
1 files changed, 182 insertions, 0 deletions
diff --git a/PrusaSL1Viewer/FrmRepairLayers.cs b/PrusaSL1Viewer/FrmRepairLayers.cs
new file mode 100644
index 0000000..9da2e63
--- /dev/null
+++ b/PrusaSL1Viewer/FrmRepairLayers.cs
@@ -0,0 +1,182 @@
+/*
+ * GNU AFFERO GENERAL PUBLIC LICENSE
+ * Version 3, 19 November 2007
+ * Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ * Everyone is permitted to copy and distribute verbatim copies
+ * of this license document, but changing it is not allowed.
+ */
+using System;
+using System.Windows.Forms;
+
+namespace PrusaSL1Viewer
+{
+ public partial class FrmRepairLayers : Form
+ {
+ #region Properties
+
+ public uint LayerRangeStart
+ {
+ get => (uint) nmLayerRangeStart.Value;
+ set => nmLayerRangeStart.Value = value;
+ }
+
+ public uint LayerRangeEnd
+ {
+ get => (uint)Math.Min(nmLayerRangeEnd.Value, Program.SlicerFile.LayerCount-1);
+ set => nmLayerRangeEnd.Value = value;
+ }
+
+ public uint ClosingIterations
+ {
+ get => (uint) numClosingIterations.Value;
+ set => numClosingIterations.Value = value;
+ }
+
+ public uint OpeningIterations
+ {
+ get => (uint)numOpeningIterations.Value;
+ set => numOpeningIterations.Value = value;
+ }
+
+ public bool RepairIslands
+ {
+ get => cbRepairIslands.Checked;
+ set => cbRepairIslands.Checked = value;
+ }
+ #endregion
+
+ #region Constructors
+ public FrmRepairLayers(uint defaultClosingIterations = 1, uint defaultOpeningIterations = 1)
+ {
+ InitializeComponent();
+ DialogResult = DialogResult.Cancel;
+
+
+ ClosingIterations = defaultClosingIterations;
+ OpeningIterations = defaultOpeningIterations;
+ numClosingIterations.Select();
+
+ nmLayerRangeEnd.Value = Program.SlicerFile.LayerCount-1;
+
+ }
+ #endregion
+
+ #region Overrides
+ protected override void OnKeyUp(KeyEventArgs e)
+ {
+ base.OnKeyUp(e);
+ if (e.KeyCode == Keys.Enter)
+ {
+ btnRepair.PerformClick();
+ e.Handled = true;
+ return;
+ }
+
+ if ((ModifierKeys & Keys.Shift) == Keys.Shift && (ModifierKeys & Keys.Control) == Keys.Control)
+ {
+ if (e.KeyCode == Keys.A)
+ {
+ btnLayerRangeAllLayers.PerformClick();
+ e.Handled = true;
+ return;
+ }
+
+ if (e.KeyCode == Keys.C)
+ {
+ btnLayerRangeCurrentLayer.PerformClick();
+ e.Handled = true;
+ return;
+ }
+
+ if (e.KeyCode == Keys.B)
+ {
+ btnLayerRangeBottomLayers.PerformClick();
+ e.Handled = true;
+ return;
+ }
+
+ if (e.KeyCode == Keys.N)
+ {
+ btnLayerRangeNormalLayers.PerformClick();
+ e.Handled = true;
+ return;
+ }
+ }
+ }
+
+ #endregion
+
+ #region Events
+ private void ItemClicked(object sender, EventArgs e)
+ {
+ if (ReferenceEquals(sender, btnLayerRangeAllLayers))
+ {
+ nmLayerRangeStart.Value = 0;
+ nmLayerRangeEnd.Value = Program.SlicerFile.LayerCount-1;
+ return;
+ }
+
+ if (ReferenceEquals(sender, btnLayerRangeCurrentLayer))
+ {
+ nmLayerRangeStart.Value = Program.FrmMain.ActualLayer;
+ nmLayerRangeEnd.Value = Program.FrmMain.ActualLayer;
+ return;
+ }
+
+ if (ReferenceEquals(sender, btnLayerRangeBottomLayers))
+ {
+ nmLayerRangeStart.Value = 0;
+ nmLayerRangeEnd.Value = Program.SlicerFile.InitialLayerCount-1;
+ return;
+ }
+
+ if (ReferenceEquals(sender, btnLayerRangeNormalLayers))
+ {
+ nmLayerRangeStart.Value = Program.SlicerFile.InitialLayerCount - 1;
+ nmLayerRangeEnd.Value = Program.SlicerFile.LayerCount - 1;
+ return;
+ }
+
+ if (ReferenceEquals(sender, btnRepair))
+ {
+ if (!btnRepair.Enabled) return;
+ if (LayerRangeStart > LayerRangeEnd)
+ {
+ MessageBox.Show("Layer range start can't be higher than layer end.\nPlease fix and try again.", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ nmLayerRangeStart.Select();
+ return;
+ }
+
+ if (OpeningIterations == 0 && ClosingIterations == 0)
+ {
+ MessageBox.Show("Any of opening and closing iterations must be non 0.", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
+ numClosingIterations.Select();
+ return;
+ }
+ if (MessageBox.Show("Are you sure you want to attempt this repair?", Text, MessageBoxButtons.YesNo,
+ MessageBoxIcon.Question) == DialogResult.Yes)
+ {
+ DialogResult = DialogResult.OK;
+ if (ClosingIterations <= 0) // Should never happen!
+ {
+ DialogResult = DialogResult.Cancel;
+ }
+ Close();
+ }
+
+ return;
+ }
+
+ if (ReferenceEquals(sender, btnCancel))
+ {
+ DialogResult = DialogResult.Cancel;
+ return;
+ }
+ }
+
+
+ #endregion
+
+
+ }
+}