Finished print leveling test – fixed reset to defaults

Moved more things to settings key
Disabled end-user license agreement on Mac for now
This commit is contained in:
Lars Brubaker 2016-09-27 12:47:15 -07:00
parent ebdf87f6cb
commit de12a5c8ba
23 changed files with 83 additions and 42 deletions

View file

@ -304,8 +304,8 @@ namespace MatterHackers.MatterControl.ActionBar
case PrinterConnectionAndCommunication.CommunicationStates.Connected:
PrintLevelingData levelingData = ActiveSliceSettings.Instance.Helpers.GetPrintLevelingData();
if (levelingData != null && ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_required_to_print")
&& !levelingData.HasBeenRun())
if (levelingData != null && ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_required_to_print)
&& !levelingData.HasBeenRunAndEnabled())
{
this.activePrintButtons.Add(configureButton);
}

View file

@ -252,16 +252,16 @@ namespace MatterHackers.MatterControl.ActionBar
autoLevelButton.Margin = new Agg.BorderDouble(top: 3);
autoLevelButton.ToolTipText = "Print leveling is enabled.".Localize();
autoLevelButton.Cursor = Cursors.Hand;
autoLevelButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled");
autoLevelButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled);
ActiveSliceSettings.ActivePrinterChanged.RegisterEvent((sender, e) =>
{
autoLevelButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled");
autoLevelButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled);
}, ref unregisterEvents);
PrinterSettings.PrintLevelingEnabledChanged.RegisterEvent((sender, e) =>
{
autoLevelButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled");
autoLevelButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled);
}, ref unregisterEvents);
return autoLevelButton;
@ -698,16 +698,16 @@ namespace MatterHackers.MatterControl.ActionBar
autoLevelButton.Cursor = Cursors.Hand;
autoLevelButton.Margin = new Agg.BorderDouble(top: 3);
autoLevelButton.ToolTipText = "Print leveling is enabled.".Localize();
autoLevelButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled");
autoLevelButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled);
ActiveSliceSettings.ActivePrinterChanged.RegisterEvent((sender, e) =>
{
autoLevelButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled");
autoLevelButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled);
}, ref unregisterEvents);
PrinterSettings.PrintLevelingEnabledChanged.RegisterEvent((sender, e) =>
{
autoLevelButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled");
autoLevelButton.Visible = ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled);
}, ref unregisterEvents);
return autoLevelButton;

View file

@ -578,7 +578,7 @@ namespace MatterHackers.MatterControl
}
}
if (OsInformation.OperatingSystem != OSType.Windows)
if (OsInformation.OperatingSystem == OSType.Android)
{
// show this last so it is on top
if (UserSettings.Instance.get("SoftwareLicenseAccepted") != "true")

View file

@ -114,7 +114,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage
buttonRow.AddChild(runPrintLevelingButton);
// put in the switch
CheckBox printLevelingSwitch = ImageButtonFactory.CreateToggleSwitch(ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled"));
CheckBox printLevelingSwitch = ImageButtonFactory.CreateToggleSwitch(ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled));
printLevelingSwitch.VAnchor = VAnchor.ParentCenter;
printLevelingSwitch.Margin = new BorderDouble(left: 16);
printLevelingSwitch.CheckedStateChanged += (sender, e) =>
@ -124,11 +124,11 @@ namespace MatterHackers.MatterControl.ConfigurationPage
PrinterSettings.PrintLevelingEnabledChanged.RegisterEvent((sender, e) =>
{
printLevelingSwitch.Checked = ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled");
printLevelingSwitch.Checked = ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled);
}, ref unregisterEvents);
// only show the switch if leveling can be turned off (it can't if it is required).
if (!ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_required_to_print"))
if (!ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_required_to_print))
{
buttonRow.AddChild(printLevelingSwitch);
}

View file

@ -52,7 +52,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
public static string ApplyLeveling(string lineBeingSent, Vector3 currentDestination, PrinterMachineInstruction.MovementTypes movementMode)
{
var settings = ActiveSliceSettings.Instance;
if (settings?.GetValue<bool>("print_leveling_enabled") == true
if (settings?.GetValue<bool>(SettingsKey.print_leveling_enabled) == true
&& (lineBeingSent.StartsWith("G0 ") || lineBeingSent.StartsWith("G1 "))
&& lineBeingSent.Length > 2
&& lineBeingSent[2] == ' ')

View file

@ -117,7 +117,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
public static string ApplyLeveling(string lineBeingSent, Vector3 currentDestination, PrinterMachineInstruction.MovementTypes movementMode)
{
var settings = ActiveSliceSettings.Instance;
if (settings?.GetValue<bool>("print_leveling_enabled") == true
if (settings?.GetValue<bool>(SettingsKey.print_leveling_enabled) == true
&& (lineBeingSent.StartsWith("G0 ") || lineBeingSent.StartsWith("G1 ")))
{
lineBeingSent = PrintLevelingPlane.Instance.ApplyLeveling(currentDestination, movementMode, lineBeingSent);

View file

@ -102,7 +102,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
public static string ApplyLeveling(string lineBeingSent, Vector3 currentDestination, PrinterMachineInstruction.MovementTypes movementMode)
{
var settings = ActiveSliceSettings.Instance;
if (settings?.GetValue<bool>("print_leveling_enabled") == true
if (settings?.GetValue<bool>(SettingsKey.print_leveling_enabled) == true
&& (lineBeingSent.StartsWith("G0 ") || lineBeingSent.StartsWith("G1 ")))
{
lineBeingSent = PrintLevelingPlane.Instance.ApplyLeveling(currentDestination, movementMode, lineBeingSent);

View file

@ -261,7 +261,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
public static string ApplyLeveling(string lineBeingSent, Vector3 currentDestination, PrinterMachineInstruction.MovementTypes movementMode)
{
var settings = ActiveSliceSettings.Instance;
if (settings?.GetValue<bool>("print_leveling_enabled") == true
if (settings?.GetValue<bool>(SettingsKey.print_leveling_enabled) == true
&& (lineBeingSent.StartsWith("G0 ") || lineBeingSent.StartsWith("G1 "))
&& lineBeingSent.Length > 2
&& lineBeingSent[2] == ' ')

View file

@ -127,7 +127,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
LevelWizardBase.RuningState runningState = LevelWizardBase.RuningState.UserRequestedCalibration;
if (ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_required_to_print"))
if (ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_required_to_print))
{
// run in the first run state
runningState = LevelWizardBase.RuningState.InitialStartupCalibration;

View file

@ -161,8 +161,13 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
}
}
public bool HasBeenRun()
public bool HasBeenRunAndEnabled()
{
if(!ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled))
{
return false;
}
switch (CurrentPrinterLevelingSystem)
{
case PrintLevelingData.LevelingSystem.Probe2Points:

View file

@ -192,7 +192,7 @@ namespace MatterHackers.MatterControl
middleRowContainer.AddChild(new VerticalSpacer());
// If print leveling is enabled then add in a check box 'Apply Leveling During Export' and default checked.
if (showExportGCodeButton && ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled"))
if (showExportGCodeButton && ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled))
{
applyLeveling = new CheckBox(LocalizedString.Get(applyLevelingDuringExportString), ActiveTheme.Instance.PrimaryTextColor, 10);
applyLeveling.Checked = true;
@ -307,7 +307,7 @@ namespace MatterHackers.MatterControl
{
try
{
if (ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled"))
if (ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled))
{
if (applyLeveling.Checked)
{

View file

@ -146,10 +146,15 @@ namespace MatterHackers.MatterControl
if (topSystemWindow != null)
{
topSystemWindow.CloseOnIdle();
ApplicationController.Instance.ReloadAll(null, null);
}
}
public override void OnClosed(EventArgs e)
{
ApplicationController.Instance.ReloadAll(null, null);
base.OnClosed(e);
}
private void next_Click(object sender, EventArgs mouseEvent)
{
pageIndex = Math.Min(pages.Count - 1, pageIndex + 1);

View file

@ -128,7 +128,7 @@ namespace MatterHackers.MatterControl.DataStorage.ClassicDB
printer.PrintLevelingProbePositions);
layeredProfile.UserLayer[SettingsKey.print_leveling_data] = JsonConvert.SerializeObject(printLevelingData);
layeredProfile.UserLayer["print_leveling_enabled"] = printer.DoPrintLeveling ? "true" : "false";
layeredProfile.UserLayer[SettingsKey.print_leveling_enabled] = printer.DoPrintLeveling ? "true" : "false";
layeredProfile.UserLayer["manual_movement_speeds"] = printer.ManualMovementSpeeds;

View file

@ -52,7 +52,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io
string lineFromChild = base.ReadLine();
if (lineFromChild != null
&& PrinterConnectionAndCommunication.Instance.ActivePrinter.GetValue<bool>("print_leveling_enabled"))
&& PrinterConnectionAndCommunication.Instance.ActivePrinter.GetValue<bool>(SettingsKey.print_leveling_enabled))
{
if (LineIsMovement(lineFromChild))
{

View file

@ -1422,11 +1422,11 @@ namespace MatterHackers.MatterControl.PrinterCommunication
try
{
// If leveling is required or is currently on
if (ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_required_to_print")
|| ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled"))
if (ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_required_to_print)
|| ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled))
{
PrintLevelingData levelingData = ActiveSliceSettings.Instance.Helpers.GetPrintLevelingData();
if(levelingData?.HasBeenRun() != true)
if(levelingData?.HasBeenRunAndEnabled() != true)
{
LevelWizardBase.ShowPrintLevelWizard();
return;
@ -1723,11 +1723,11 @@ namespace MatterHackers.MatterControl.PrinterCommunication
UiThread.RunOnIdle(() => ConnectionSucceeded.CallEvents(this, null));
// run the print leveling wizard if we need to for this printer
if (ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_required_to_print")
|| ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled"))
if (ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_required_to_print)
|| ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled))
{
PrintLevelingData levelingData = ActiveSliceSettings.Instance.Helpers.GetPrintLevelingData();
if (levelingData?.HasBeenRun() != true)
if (levelingData?.HasBeenRunAndEnabled() != true)
{
UiThread.RunOnIdle(LevelWizardBase.ShowPrintLevelWizard);
}

View file

@ -191,7 +191,7 @@ namespace MatterHackers.MatterControl.PrintQueue
string outputFileName = Path.ChangeExtension(originalFileName, ".gcode");
string outputPathAndName = Path.Combine(exportPath, outputFileName);
if (ActiveSliceSettings.Instance.GetValue<bool>("print_leveling_enabled"))
if (ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled))
{
GCodeFileLoaded unleveledGCode = new GCodeFileLoaded(savedGcodeFileName);

View file

@ -493,6 +493,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
// Print leveling data has no SliceSettingsWidget editor but should be removed on 'Reset to Defaults'
keysToRetain.Remove(SettingsKey.print_leveling_data);
keysToRetain.Remove(SettingsKey.print_leveling_enabled);
// Iterate all items that have .ShowAsOverride = false and conditionally add to the retention list
foreach (var item in SliceSettingsOrganizer.Instance.SettingsData.Where(settingsItem => settingsItem.ShowAsOverride == false))
@ -706,7 +707,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
// If we have print leveling turned on then make sure we don't have any leveling commands in the start gcode.
if (GetValue<bool>("print_leveling_enabled"))
if (GetValue<bool>(SettingsKey.print_leveling_enabled))
{
string[] startGCode = GetValue("start_gcode").Replace("\\n", "\n").Split('\n');
foreach (string startGCodeLine in startGCode)

View file

@ -202,7 +202,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
break;
case "MatterControl.PrintLevelingEnabled":
layer.Add("print_leveling_enabled", item.Value);
layer.Add(SettingsKey.print_leveling_enabled, item.Value);
break;
case "MatterControl.ManualMovementSpeeds":

View file

@ -89,18 +89,20 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public const string pause_gcode = nameof(pause_gcode);
public const string perimeter_start_end_overlap = nameof(perimeter_start_end_overlap);
public const string print_center = nameof(print_center);
public const string print_leveling_data = nameof(print_leveling_data);
public const string print_leveling_enabled = nameof(print_leveling_enabled);
public const string print_leveling_required_to_print = nameof(print_leveling_required_to_print);
public const string printer_name = nameof(printer_name);
public const string publish_bed_image = nameof(publish_bed_image);
public const string resume_gcode = nameof(resume_gcode);
public const string recover_first_layer_speed = nameof(recover_first_layer_speed);
public const string recover_is_enabled = nameof(recover_is_enabled);
public const string recover_position_before_z_home = nameof(recover_position_before_z_home);
public const string recover_first_layer_speed = nameof(recover_first_layer_speed);
public const string resume_gcode = nameof(resume_gcode);
public const string show_reset_connection = nameof(show_reset_connection);
public const string spiral_vase = nameof(spiral_vase);
public const string start_gcode = nameof(start_gcode);
public const string windows_driver = nameof(windows_driver);
public const string z_homes_to_max = nameof(z_homes_to_max);
public const string print_leveling_data = nameof(print_leveling_data);
}
public class SettingsHelpers
@ -256,12 +258,12 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public void DoPrintLeveling(bool doLeveling)
{
// Early exit if already set
if (doLeveling == printerSettings.GetValue<bool>("print_leveling_enabled"))
if (doLeveling == printerSettings.GetValue<bool>(SettingsKey.print_leveling_enabled))
{
return;
}
printerSettings.SetValue("print_leveling_enabled", doLeveling ? "1" : "0");
printerSettings.SetValue(SettingsKey.print_leveling_enabled, doLeveling ? "1" : "0");
PrinterSettings.PrintLevelingEnabledChanged?.CallEvents(this, null);

View file

@ -106,6 +106,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
MenuAsWideAsItems = false,
AlignToRightEdge = true,
};
sliceOptionsMenuDropList.Name = "Slice Settings Options Menu";
sliceOptionsMenuDropList.VAnchor |= VAnchor.ParentCenter;
sliceOptionsMenuDropList.AddItem("Import".Localize()).Selected += (s, e) => { ImportSettingsMenu_Click(); };
@ -140,9 +141,24 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
{
if (revertSettings)
{
bool onlyReloadSliceSettings = true;
if (ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_required_to_print)
&& ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.print_leveling_enabled))
{
onlyReloadSliceSettings = false;
}
ActiveSliceSettings.Instance.ClearUserOverrides();
ActiveSliceSettings.Instance.Save();
ApplicationController.Instance.ReloadAdvancedControlsPanel();
if (onlyReloadSliceSettings)
{
ApplicationController.Instance.ReloadAdvancedControlsPanel();
}
else
{
ApplicationController.Instance.ReloadAll(null, null);
}
}
},
resetToDefaultsMessage,

View file

@ -62,7 +62,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
"manual_probe_paper_width",
SettingsKey.pause_gcode,
"print_leveling_method",
"print_leveling_required_to_print",
SettingsKey.print_leveling_required_to_print,
"print_leveling_solution",
SettingsKey.recover_first_layer_speed,
SettingsKey.recover_is_enabled,

@ -1 +1 @@
Subproject commit 3ed7bd36ba575703d660653053d2cefbedd7d489
Subproject commit 8f74a3cf71f55af66d50ba14d4c6651151aac3e0

View file

@ -83,13 +83,25 @@ namespace MatterHackers.MatterControl.Tests.Automation
resultsHarness.AddTestResult(testRunner.WaitForName("Start Print Button", .5), "Start Print showing");
resultsHarness.AddTestResult(!testRunner.WaitForName("Finish Setup Button", .5), "Finish Setup hidden");
// reset to defaults and make sure print leveling is cleared
MatterControlUtilities.SwitchToAdvancedSettings(testRunner, resultsHarness);
resultsHarness.AddTestResult(testRunner.ClickByName("Slice Settings Options Menu", 1), "Click Options" );
resultsHarness.AddTestResult(testRunner.ClickByName("Reset to defaults Menu Item", 1), "Select Reset to defaults");
resultsHarness.AddTestResult(testRunner.ClickByName("Yes Button", .5), "Click yes to revert");
testRunner.Wait(1);
// make sure it is showing the correct button
resultsHarness.AddTestResult(!testRunner.WaitForName("Start Print Button", .5), "Start Print hidden");
resultsHarness.AddTestResult(testRunner.WaitForName("Finish Setup Button", .5), "Finish Setup showing");
MatterControlUtilities.CloseMatterControl(testRunner);
}
};
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, overrideHeight: 800);
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);
Assert.IsTrue(testHarness.AllTestsPassed(5));
Assert.IsTrue(testHarness.AllTestsPassed(7));
}
}
}