Remove SettingsLayout.Instance, move to PrinterSettings.Layout

This commit is contained in:
John Lewin 2019-01-06 13:28:37 -08:00
parent 0f792648de
commit 8fce34c8a5
6 changed files with 21 additions and 30 deletions

View file

@ -58,6 +58,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public static Dictionary<string, SliceSettingData> SettingsData { get; }
public static SettingsLayout Layout { get; }
public static event EventHandler<StringEventArgs> AnyPrinterSettingChanged;
public event EventHandler<StringEventArgs> 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";
}

View file

@ -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();
}

View file

@ -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(),

View file

@ -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(),

View file

@ -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();

View file

@ -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<double>(SettingsKey.layer_height) == 0.5);
Assert.AreEqual(printer.Settings.GetValue<double>(SettingsKey.layer_height).ToString(), "0.5", "Layer height is what we set it to");