Making xy wizard only have one instance during calibration

This commit is contained in:
Lars Brubaker 2019-03-21 17:23:54 -07:00
parent 1a43bfb81b
commit 0096b12baa
5 changed files with 47 additions and 64 deletions

View file

@ -40,17 +40,16 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
private int extruderToCalibrateIndex;
XyCalibrationData xyCalibrationData;
private bool startPrint;
public XyCalibrationWizard(PrinterConfig printer, int extruderToCalibrateIndex, XyCalibrationData xyCalibrationData = null, bool startPrint = false)
public XyCalibrationWizard(PrinterConfig printer, int extruderToCalibrateIndex)
: base(printer)
{
this.extruderToCalibrateIndex = extruderToCalibrateIndex;
this.xyCalibrationData = xyCalibrationData;
this.startPrint = startPrint;
this.WindowTitle = $"{ApplicationController.Instance.ProductName} - " + "Nozzle Calibration Wizard".Localize();
this.WindowSize = new Vector2(600 * GuiWidget.DeviceScale, 700 * GuiWidget.DeviceScale);
this.xyCalibrationData = new XyCalibrationData(extruderToCalibrateIndex);
pages = this.GetPages();
pages.MoveNext();
}
@ -77,19 +76,14 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
private IEnumerator<WizardPage> GetPages()
{
if (xyCalibrationData == null)
{
xyCalibrationData = new XyCalibrationData(extruderToCalibrateIndex);
yield return new XyCalibrationSelectPage(this, printer, xyCalibrationData);
yield return new XyCalibrationStartPrintPage(this, printer, xyCalibrationData);
}
else if(startPrint)
yield return new XyCalibrationSelectPage(this, printer, xyCalibrationData);
yield return new XyCalibrationStartPrintPage(this, printer, xyCalibrationData);
yield return new XyCalibrationCollectDataPage(this, printer, xyCalibrationData);
yield return new XyCalibrationDataRecieved(this, printer, xyCalibrationData);
// loop untile we are done calibrating
while (xyCalibrationData.PrintAgain)
{
yield return new XyCalibrationStartPrintPage(this, printer, xyCalibrationData);
}
else // we are returning to the wizard and need to collect the data
{
yield return new XyCalibrationCollectDataPage(this, printer, xyCalibrationData);
yield return new XyCalibrationDataRecieved(this, printer, xyCalibrationData);
}
@ -112,5 +106,6 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
public int XPick { get; set; } = -1;
public int YPick { get; set; } = -1;
public double Offset { get; set; } = .1;
public bool PrintAgain { get; set; }
}
}