Move settings dictionary into PrinterSettings

This commit is contained in:
John Lewin 2019-01-06 13:19:01 -08:00
parent d52feb58e4
commit b327b95e4a
12 changed files with 27 additions and 31 deletions

View file

@ -56,6 +56,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
// Year|month|day|versionForDay (to support multiple revisions on a given day)
public static int LatestVersion { get; } = 201606271;
public static Dictionary<string, SliceSettingData> SettingsData { get; }
public static event EventHandler<StringEventArgs> AnyPrinterSettingChanged;
public event EventHandler<StringEventArgs> SettingChanged;
@ -91,9 +93,17 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public PrinterSettingsLayer StagedUserSettings { get; set; } = new PrinterSettingsLayer();
static PrinterSettings()
{
string propertiesFileContents = AggContext.StaticData.ReadAllText(Path.Combine("SliceSettings", "Properties.json"));
var propertiesJsonData = JsonConvert.DeserializeObject<List<SliceSettingData>>(propertiesFileContents);
SettingsData = new Dictionary<string, SliceSettingData>();
foreach (var settingsData in propertiesJsonData)
{
SettingsData.Add(settingsData.SlicerConfigName, settingsData);
}
Empty = new PrinterSettings() { ID = "EmptyProfile" };
Empty.UserLayer[SettingsKey.printer_name] = "Empty Printer";
}
@ -650,7 +660,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
keysToRetain.Remove(SettingsKey.print_leveling_enabled);
// Iterate all items that have .ShowAsOverride = false and conditionally add to the retention list
foreach (var item in SettingsOrganizer.SettingsData.Values.Where(settingsItem => settingsItem.ShowAsOverride == false))
foreach (var item in PrinterSettings.SettingsData.Values.Where(settingsItem => settingsItem.ShowAsOverride == false))
{
switch (item.SlicerConfigName)
{
@ -855,7 +865,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
foreach (var keyValue in this.BaseLayer)
{
// Add key/value to accumulating string for hash
SliceSettingData data = SettingsOrganizer.SettingsData[keyValue.Key];
SliceSettingData data = PrinterSettings.SettingsData[keyValue.Key];
if (data?.RebuildGCodeOnChange == true)
{
bigStringForHashCode.Append(keyValue.Key);
@ -940,7 +950,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
RestoreUserOverride(layer, settingsKey);
}
if (SettingsOrganizer.SettingsData.TryGetValue(settingsKey, out SliceSettingData settingData))
if (PrinterSettings.SettingsData.TryGetValue(settingsKey, out SliceSettingData settingData))
{
if (settingData.DataEditType == SliceSettingData.DataEditTypes.CHECK_BOX)
{

View file

@ -45,20 +45,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
private static SettingsOrganizer instance = null;
public static Dictionary<string, SliceSettingData> SettingsData { get; }
static SettingsOrganizer()
{
string propertiesFileContents = AggContext.StaticData.ReadAllText(Path.Combine("SliceSettings", "Properties.json"));
var propertiesJsonData = JsonConvert.DeserializeObject<List<SliceSettingData>>(propertiesFileContents);
SettingsData = new Dictionary<string, SliceSettingData>();
foreach (var settingsData in propertiesJsonData)
{
SettingsData.Add(settingsData.SlicerConfigName, settingsData);
}
}
public static SettingsOrganizer Instance
{
get
@ -122,7 +108,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
break;
case 8:
if (SettingsData.TryGetValue(sanitizedLine, out SliceSettingData data))
if (PrinterSettings.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.SettingsData[SettingsKey.bed_temperature];
var settingsData = PrinterSettings.SettingsData[SettingsKey.bed_temperature];
var temperatureRow = SliceSettingsTabView.CreateItemRow(settingsData, settingsContext, printer, menuTheme, ref tabIndex, allUiFields);
container.AddChild(temperatureRow);

View file

@ -271,7 +271,7 @@ namespace MatterHackers.MatterControl.ActionBar
var settingsContext = new SettingsContext(printer, null, NamedSettingsLayers.All);
// TODO: Add guards around computed settings key to handle invalid/missing keys
var settingsData = SettingsOrganizer.SettingsData[TemperatureKey];
var settingsData = PrinterSettings.SettingsData[TemperatureKey];
var temperatureRow = SliceSettingsTabView.CreateItemRow(settingsData, settingsContext, printer, menuTheme, ref tabIndex, allUiFields);
container.AddChild(temperatureRow);

View file

@ -265,7 +265,7 @@ namespace MatterHackers.MatterControl
bool valueIsClear = currentValue == "0" | currentValue == "";
SliceSettingData data = SettingsOrganizer.SettingsData[keyValue.Key];
SliceSettingData data = PrinterSettings.SettingsData[keyValue.Key];
if (data?.ResetAtEndOfPrint == true && !valueIsClear)
{
this.Settings.ClearValue(keyValue.Key);
@ -372,7 +372,7 @@ namespace MatterHackers.MatterControl
if (stringEvent != null)
{
// Fire ReloadAll if changed setting marked with ReloadUiWhenChanged
if (SettingsOrganizer.SettingsData.TryGetValue(stringEvent.Data, out SliceSettingData settingsData)
if (PrinterSettings.SettingsData.TryGetValue(stringEvent.Data, out SliceSettingData settingsData)
&& settingsData.ReloadUiWhenChanged)
{
UiThread.RunOnIdle(() =>

View file

@ -308,7 +308,7 @@ namespace MatterHackers.MatterControl
private static string GetSettingsName(string settingsKey)
{
var settingData = SettingsOrganizer.SettingsData[settingsKey];
var settingData = PrinterSettings.SettingsData[settingsKey];
return settingData.PresentationName.Localize();
}

View file

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

View file

@ -98,7 +98,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
foreach (var key in new[] { SettingsKey.layer_height, SettingsKey.fill_density, SettingsKey.create_raft })
{
var settingsData = SettingsOrganizer.SettingsData[key];
var settingsData = PrinterSettings.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.SettingsData[key],
PrinterSettings.SettingsData[key],
settingsContext,
printer,
menuTheme,

View file

@ -339,7 +339,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
};
if (settingValue.Contains("%")
&& SettingsOrganizer.SettingsData.TryGetValue(percentReference.ReferencedSetting, out SliceSettingData referencedSettingData))
&& PrinterSettings.SettingsData.TryGetValue(percentReference.ReferencedSetting, out SliceSettingData referencedSettingData))
{
column.AddChild(
new TextWidget(

View file

@ -396,7 +396,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
if (toggleSwitchSectionKeys.TryGetValue(group.Name, out string toggleFieldKey))
{
var settingData = SettingsOrganizer.SettingsData[toggleFieldKey];
var settingData = PrinterSettings.SettingsData[toggleFieldKey];
uiField = CreateToggleFieldForSection(settingData);
}

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.SettingsData[settingToChange];
var settingsData = PrinterSettings.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.SettingsData[slicerConfigName];
var settingData = PrinterSettings.SettingsData[slicerConfigName];
var subGroup = settingData.OrganizerSubGroup;