Remove GetSettingsData method, use SettingsData dictionary

- Issue MatterHackers/MCCentral#4821
Consider removing SettingsOrganizer.Instance.GetSettingsData
This commit is contained in:
John Lewin 2019-01-06 11:38:12 -08:00
parent e70bfc9977
commit ae2da3b29c
10 changed files with 24 additions and 40 deletions

View file

@ -855,7 +855,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
foreach (var keyValue in this.BaseLayer)
{
// Add key/value to accumulating string for hash
SliceSettingData data = SettingsOrganizer.Instance.GetSettingsData(keyValue.Key);
SliceSettingData data = SettingsOrganizer.SettingsData[keyValue.Key];
if (data?.RebuildGCodeOnChange == true)
{
bigStringForHashCode.Append(keyValue.Key);

View file

@ -87,16 +87,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
return false;
}
public SliceSettingData GetSettingsData(string slicerConfigName)
{
if (SettingsOrganizer.SettingsData.TryGetValue(slicerConfigName, out SliceSettingData settingsData))
{
return settingsData;
}
return null;
}
private void LoadAndParseSettingsFiles()
{
SettingsSection sectionToAddTo = null;
@ -132,8 +122,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
break;
case 8:
SliceSettingData data = GetSettingsData(sanitizedLine);
if (data != null)
if (SettingsData.TryGetValue(sanitizedLine, out SliceSettingData data))
{
subGroupToAddTo.Settings.Add(data);
data.OrganizerSubGroup = subGroupToAddTo;

View file

@ -117,7 +117,7 @@ namespace MatterHackers.MatterControl.ActionBar
int tabIndex = 0;
var settingsContext = new SettingsContext(printer, null, NamedSettingsLayers.All);
var settingsData = SettingsOrganizer.Instance.GetSettingsData(SettingsKey.bed_temperature);
var settingsData = SettingsOrganizer.SettingsData[SettingsKey.bed_temperature];
var temperatureRow = SliceSettingsTabView.CreateItemRow(settingsData, settingsContext, printer, menuTheme, ref tabIndex, allUiFields);
container.AddChild(temperatureRow);

View file

@ -269,7 +269,9 @@ namespace MatterHackers.MatterControl.ActionBar
int tabIndex = 0;
var settingsContext = new SettingsContext(printer, null, NamedSettingsLayers.All);
var settingsData = SettingsOrganizer.Instance.GetSettingsData(TemperatureKey);
// TODO: Add guards around computed settings key to handle invalid/missing keys
var settingsData = SettingsOrganizer.SettingsData[TemperatureKey];
var temperatureRow = SliceSettingsTabView.CreateItemRow(settingsData, settingsContext, printer, menuTheme, ref tabIndex, allUiFields);
container.AddChild(temperatureRow);
@ -293,7 +295,7 @@ namespace MatterHackers.MatterControl.ActionBar
{
graph.AddData(this.ActualTemperature);
}, 1);
var valueField = temperatureRow.Descendants<MHNumberEdit>().FirstOrDefault();
valueField.Name = "Temperature Input";

View file

@ -265,7 +265,7 @@ namespace MatterHackers.MatterControl
bool valueIsClear = currentValue == "0" | currentValue == "";
SliceSettingData data = SettingsOrganizer.Instance.GetSettingsData(keyValue.Key);
SliceSettingData data = SettingsOrganizer.SettingsData[keyValue.Key];
if (data?.ResetAtEndOfPrint == true && !valueIsClear)
{
this.Settings.ClearValue(keyValue.Key);

View file

@ -308,7 +308,7 @@ namespace MatterHackers.MatterControl
private static string GetSettingsName(string settingsKey)
{
var settingData = SettingsOrganizer.Instance.GetSettingsData(settingsKey);
var settingData = SettingsOrganizer.SettingsData[settingsKey];
return settingData.PresentationName.Localize();
}
@ -321,17 +321,14 @@ namespace MatterHackers.MatterControl
var length = trimedLine.Length;
if (length > 100)
{
SliceSettingData data = SettingsOrganizer.Instance.GetSettingsData(settingsKey);
if (data != null)
{
var details = "Found a line that is {0} characters long.\n{1}...".Localize().FormatWith(length, trimedLine.Substring(0, 20));
errors.Add(
new SettingsValidationError(settingsKey)
{
Error = "All G-Code lines mush be shorter than 100 characters (excluding comments).".Localize().FormatWith(data.PresentationName),
Details = details,
});
}
var details = "Found a line that is {0} characters long.\n{1}...".Localize().FormatWith(length, trimedLine.Substring(0, 20));
errors.Add(
new SettingsValidationError(settingsKey)
{
Error = "All G-Code lines mush be shorter than 100 characters (excluding comments).".Localize().FormatWith(
GetSettingsName(settingsKey)),
Details = details,
});
return false;
}
@ -360,16 +357,12 @@ namespace MatterHackers.MatterControl
|| (printer.EngineMappingsMatterSlice.MapContains(settingsKey)
&& speedToCheck <= 0))
{
SliceSettingData data = SettingsOrganizer.Instance.GetSettingsData(settingsKey);
if (data != null)
{
errors.Add(
new SettingsValidationError(settingsKey)
{
Error = "The {0} must be greater than 0.".Localize().FormatWith(data.PresentationName),
Error = "The {0} must be greater than 0.".Localize().FormatWith(GetSettingsName(settingsKey)),
Details = "It is currently set to {0}.".Localize().FormatWith(actualSpeedValueString),
});
}
}
}
}

View file

@ -47,7 +47,7 @@ namespace MatterHackers.MatterControl
private static string SettingsLocation(string settingsKey)
{
var settingData = SettingsOrganizer.Instance.GetSettingsData(settingsKey);
var settingData = SettingsOrganizer.SettingsData[settingsKey];
var setingsSectionName = settingData.OrganizerSubGroup.Group.Category.SettingsSection.Name;
if (setingsSectionName == "Advanced")

View file

@ -96,9 +96,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
};
column.AddChild(optionsPanel);
foreach (var key in new[] { "layer_height", "fill_density", SettingsKey.create_raft })
foreach (var key in new[] { SettingsKey.layer_height, SettingsKey.fill_density, SettingsKey.create_raft })
{
var settingsData = SettingsOrganizer.Instance.GetSettingsData(key);
var settingsData = SettingsOrganizer.SettingsData[key];
var row = SliceSettingsTabView.CreateItemRow(settingsData, settingsContext, printer, menuTheme, ref tabIndex, allUiFields);
if (row is SliceSettingsRow settingsRow)
@ -130,7 +130,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
foreach (var key in new[] { SettingsKey.spiral_vase, SettingsKey.layer_to_pause })
{
var advancedRow = SliceSettingsTabView.CreateItemRow(
SettingsOrganizer.Instance.GetSettingsData(key),
SettingsOrganizer.SettingsData[key],
settingsContext,
printer,
menuTheme,

View file

@ -417,7 +417,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
private static void SetCheckBoxSetting(AutomationRunner testRunner, PrinterConfig printer, string settingToChange, bool valueToSet)
{
var settingsData = SettingsOrganizer.Instance.GetSettingsData(settingToChange);
var settingsData = SettingsOrganizer.SettingsData[settingToChange];
string checkBoxName = $"{settingsData.PresentationName} Field";
Assert.IsTrue(printer.Settings.GetValue<bool>(settingToChange) != valueToSet);

View file

@ -1036,7 +1036,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
public static SliceSettingData NavigateToSliceSettingsField(this AutomationRunner testRunner, SettingsOrganizer.SettingsSection rootLevel, string slicerConfigName)
{
var settingData = SettingsOrganizer.Instance.GetSettingsData(slicerConfigName);
var settingData = SettingsOrganizer.SettingsData[slicerConfigName];
var subGroup = settingData.OrganizerSubGroup;