Remove SetValue, ClearValue overloads, prefer params defaults

- On setter, only persist profile if settings change
This commit is contained in:
John Lewin 2016-06-17 10:38:22 -07:00
parent 858da9d09b
commit a5548bd786
2 changed files with 20 additions and 31 deletions

View file

@ -267,31 +267,30 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
}
internal void SetValue(string sliceSetting, string sliceValue)
internal void SetValue(string settingsKey, string settingsValue, PrinterSettingsLayer layer = null)
{
SetValue(sliceSetting, sliceValue, UserLayer);
}
var persistenceLayer = layer ?? UserLayer;
internal void SetValue(string sliceSetting, string sliceValue, PrinterSettingsLayer layer)
{
layer[sliceSetting] = sliceValue;
Save();
}
internal void ClearValue(string sliceSetting)
{
ClearValue(sliceSetting, UserLayer);
}
internal void ClearValue(string sliceSetting, PrinterSettingsLayer layer)
{
if(layer.ContainsKey(sliceSetting))
// If the setting exists and is set the requested value, exit without setting or saving
string existingValue;
if (persistenceLayer.TryGetValue(settingsKey, out existingValue) && existingValue == settingsValue)
{
layer.Remove(sliceSetting);
return;
}
// TODO: Reconsider this frequency
// Otherwise, set and save
persistenceLayer[settingsKey] = settingsValue;
Save();
}
internal void ClearValue(string sliceSetting, PrinterSettingsLayer layer = null)
{
var persistenceLayer = layer ?? UserLayer;
if (persistenceLayer.ContainsKey(sliceSetting))
{
persistenceLayer.Remove(sliceSetting);
Save();
}
}
}
}

View file

@ -128,22 +128,12 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
return layeredProfile.GetValue(sliceSetting, layerCascade);
}
public void SetActiveValue(string sliceSetting, string sliceValue)
{
layeredProfile.SetValue(sliceSetting, sliceValue);
}
public void SetActiveValue(string sliceSetting, string sliceValue, PrinterSettingsLayer persistenceLayer)
public void SetActiveValue(string sliceSetting, string sliceValue, PrinterSettingsLayer persistenceLayer = null)
{
layeredProfile.SetValue(sliceSetting, sliceValue, persistenceLayer);
}
public void ClearValue(string sliceSetting)
{
layeredProfile.ClearValue(sliceSetting);
}
public void ClearValue(string sliceSetting, PrinterSettingsLayer persistenceLayer)
public void ClearValue(string sliceSetting, PrinterSettingsLayer persistenceLayer = null)
{
layeredProfile.ClearValue(sliceSetting, persistenceLayer);
}