From 8fce34c8a5540efa2dfa7f191adc3edb71064ae6 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Sun, 6 Jan 2019 13:28:37 -0800 Subject: [PATCH] Remove SettingsLayout.Instance, move to PrinterSettings.Layout --- .../Settings/PrinterSettings.cs | 4 ++++ .../Settings/SettingsLayout.cs | 15 +----------- .../CustomWidgets/ConfigurePrinterWidget.cs | 2 +- .../SliceSettingsWidget.cs | 2 +- .../PrintingTests.cs | 4 ++-- .../SliceSettingsTests.cs | 24 +++++++++---------- 6 files changed, 21 insertions(+), 30 deletions(-) diff --git a/MatterControl.Printing/Settings/PrinterSettings.cs b/MatterControl.Printing/Settings/PrinterSettings.cs index 0e92ffc65..01dc7754e 100644 --- a/MatterControl.Printing/Settings/PrinterSettings.cs +++ b/MatterControl.Printing/Settings/PrinterSettings.cs @@ -58,6 +58,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration public static Dictionary SettingsData { get; } + public static SettingsLayout Layout { get; } + public static event EventHandler AnyPrinterSettingChanged; public event EventHandler SettingChanged; @@ -104,6 +106,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration SettingsData.Add(settingsData.SlicerConfigName, settingsData); } + PrinterSettings.Layout = new SettingsLayout(); + Empty = new PrinterSettings() { ID = "EmptyProfile" }; Empty.UserLayer[SettingsKey.printer_name] = "Empty Printer"; } diff --git a/MatterControl.Printing/Settings/SettingsLayout.cs b/MatterControl.Printing/Settings/SettingsLayout.cs index e40a692f8..d2cdd7a28 100644 --- a/MatterControl.Printing/Settings/SettingsLayout.cs +++ b/MatterControl.Printing/Settings/SettingsLayout.cs @@ -45,20 +45,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration private static SettingsLayout instance = null; - public static SettingsLayout Instance - { - get - { - if (instance == null) - { - instance = new SettingsLayout(); - } - - return instance; - } - } - - private SettingsLayout() + internal SettingsLayout() { LoadAndParseSettingsFiles(); } diff --git a/MatterControlLib/CustomWidgets/ConfigurePrinterWidget.cs b/MatterControlLib/CustomWidgets/ConfigurePrinterWidget.cs index a3445156f..76b4c543a 100644 --- a/MatterControlLib/CustomWidgets/ConfigurePrinterWidget.cs +++ b/MatterControlLib/CustomWidgets/ConfigurePrinterWidget.cs @@ -51,7 +51,7 @@ namespace MatterHackers.MatterControl settingsContext, "ConfigurePrinter", printer, - SettingsLayout.Instance.Printer, + PrinterSettings.Layout.Printer, theme, isPrimarySettingsView: true, justMySettingsTitle: "My Modified Settings (Printer)".Localize(), diff --git a/MatterControlLib/SlicerConfiguration/SliceSettingsWidget.cs b/MatterControlLib/SlicerConfiguration/SliceSettingsWidget.cs index 96ddb7a6a..cb318a545 100644 --- a/MatterControlLib/SlicerConfiguration/SliceSettingsWidget.cs +++ b/MatterControlLib/SlicerConfiguration/SliceSettingsWidget.cs @@ -71,7 +71,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration settingsContext, "SliceSettings", printer, - SettingsLayout.Instance.SliceSettings, + PrinterSettings.Layout.SliceSettings, theme, isPrimarySettingsView: true, justMySettingsTitle: "My Modified Settings".Localize(), diff --git a/Tests/MatterControl.AutomationTests/PrintingTests.cs b/Tests/MatterControl.AutomationTests/PrintingTests.cs index 50d106c32..835820fa7 100644 --- a/Tests/MatterControl.AutomationTests/PrintingTests.cs +++ b/Tests/MatterControl.AutomationTests/PrintingTests.cs @@ -27,13 +27,13 @@ namespace MatterHackers.MatterControl.Tests.Automation { Assert.AreEqual(1, ApplicationController.Instance.ActivePrinters.Count(), "One printer should be defined after add"); - testRunner.SelectSliceSettingsField(SettingsLayout.Instance.Printer, "end_gcode"); + testRunner.SelectSliceSettingsField(PrinterSettings.Layout.Printer, "end_gcode"); testRunner.Type("^a"); testRunner.Type("{BACKSPACE}"); testRunner.Type("G28"); - testRunner.SelectSliceSettingsField(SettingsLayout.Instance.Printer, "start_gcode"); + testRunner.SelectSliceSettingsField(PrinterSettings.Layout.Printer, "start_gcode"); var printer = testRunner.FirstPrinter(); diff --git a/Tests/MatterControl.AutomationTests/SliceSettingsTests.cs b/Tests/MatterControl.AutomationTests/SliceSettingsTests.cs index c1afd1b03..148a674ef 100644 --- a/Tests/MatterControl.AutomationTests/SliceSettingsTests.cs +++ b/Tests/MatterControl.AutomationTests/SliceSettingsTests.cs @@ -30,7 +30,7 @@ namespace MatterHackers.MatterControl.Tests.Automation testRunner.AddItemToBedplate("", "Row Item Rook"); testRunner.SwitchToSliceSettings(); - testRunner.SelectSliceSettingsField(SettingsLayout.Instance.SliceSettings, SettingsKey.create_raft); + testRunner.SelectSliceSettingsField(PrinterSettings.Layout.SliceSettings, SettingsKey.create_raft); testRunner.Delay(.5); testRunner.StartSlicing(); @@ -302,7 +302,7 @@ namespace MatterHackers.MatterControl.Tests.Automation // Switch back to the general tab testRunner.ClickByName("General Tab"); - testRunner.SelectSliceSettingsField(SettingsLayout.Instance.Printer, SettingsKey.extruder_count); + testRunner.SelectSliceSettingsField(PrinterSettings.Layout.Printer, SettingsKey.extruder_count); testRunner.Type("2"); testRunner.Type("{Enter}"); @@ -333,7 +333,7 @@ namespace MatterHackers.MatterControl.Tests.Automation { AggContext.StaticData = new FileSystemStaticData(TestContext.CurrentContext.ResolveProjectPath(5, "MatterControl", "StaticData")); - var organizer = SettingsLayout.Instance; + var organizer = PrinterSettings.Layout; var userLevel = organizer.SliceSettings; Assert.IsNotNull(userLevel); @@ -374,7 +374,7 @@ namespace MatterHackers.MatterControl.Tests.Automation testRunner.SwitchToSliceSettings(); // Navigate to General Tab -> Layers / Surface Tab - testRunner.SelectSliceSettingsField(SettingsLayout.Instance.SliceSettings, "layer_height"); + testRunner.SelectSliceSettingsField(PrinterSettings.Layout.SliceSettings, "layer_height"); Assert.AreEqual(0, layerHeightChangedCount, "No change to layer height yet."); testRunner.ClickByName("Quality"); @@ -424,7 +424,7 @@ namespace MatterHackers.MatterControl.Tests.Automation //testRunner.ScrollIntoView(checkBoxName); //testRunner.ClickByName(checkBoxName); - testRunner.SelectSliceSettingsField(SettingsLayout.Instance.Printer, settingToChange); + testRunner.SelectSliceSettingsField(PrinterSettings.Layout.Printer, settingToChange); // give some time for the ui to update if necessary testRunner.Delay(2); @@ -444,7 +444,7 @@ namespace MatterHackers.MatterControl.Tests.Automation Assert.IsTrue(printer.Settings.UserLayer.ContainsKey(settingToChange)); // make sure the setting is still open in case of a reload all - testRunner.NavigateToSliceSettingsField(SettingsLayout.Instance.Printer, settingToChange); + testRunner.NavigateToSliceSettingsField(PrinterSettings.Layout.Printer, settingToChange); // Click the cancel user override button testRunner.ClickByName("Restore " + settingToChange); testRunner.Delay(2); @@ -466,17 +466,17 @@ namespace MatterHackers.MatterControl.Tests.Automation // Navigate to Settings Tab and make sure Bed Temp Text box is visible testRunner.SwitchToSliceSettings(); - testRunner.SelectSliceSettingsField(SettingsLayout.Instance.SliceSettings, SettingsKey.bed_temperature); - testRunner.SelectSliceSettingsField(SettingsLayout.Instance.SliceSettings, SettingsKey.temperature); + testRunner.SelectSliceSettingsField(PrinterSettings.Layout.SliceSettings, SettingsKey.bed_temperature); + testRunner.SelectSliceSettingsField(PrinterSettings.Layout.SliceSettings, SettingsKey.temperature); // Uncheck Has Heated Bed checkbox and make sure Bed Temp Textbox is not visible testRunner.SwitchToPrinterSettings(); - testRunner.SelectSliceSettingsField(SettingsLayout.Instance.Printer, SettingsKey.has_heated_bed); + testRunner.SelectSliceSettingsField(PrinterSettings.Layout.Printer, SettingsKey.has_heated_bed); testRunner.Delay(.5); testRunner.SwitchToSliceSettings(); - testRunner.NavigateToSliceSettingsField(SettingsLayout.Instance.SliceSettings, SettingsKey.temperature); + testRunner.NavigateToSliceSettingsField(PrinterSettings.Layout.SliceSettings, SettingsKey.temperature); Assert.IsFalse(testRunner.WaitForName("Bed Temperature Textbox", .5), "Filament -> Bed Temp should not be visible after Heated Bed unchecked"); // Make sure Bed Temperature Options are not visible in printer controls @@ -501,11 +501,11 @@ namespace MatterHackers.MatterControl.Tests.Automation var printer = testRunner.FirstPrinter(); - testRunner.SelectSliceSettingsField(SettingsLayout.Instance.SliceSettings, "layer_height"); + testRunner.SelectSliceSettingsField(PrinterSettings.Layout.SliceSettings, "layer_height"); testRunner.Type(".5"); // Force lose focus - testRunner.SelectSliceSettingsField(SettingsLayout.Instance.SliceSettings, "first_layer_height"); + testRunner.SelectSliceSettingsField(PrinterSettings.Layout.SliceSettings, "first_layer_height"); testRunner.WaitFor(() => printer.Settings.GetValue(SettingsKey.layer_height) == 0.5); Assert.AreEqual(printer.Settings.GetValue(SettingsKey.layer_height).ToString(), "0.5", "Layer height is what we set it to");