Clear user baby stepping after new print leveling.

settings save on change
removed redundant expand_thin_walls setting
This commit is contained in:
Lars Brubaker 2017-02-01 13:38:14 -08:00
parent 19d22ce91d
commit 8d47359ad9
15 changed files with 92 additions and 136 deletions

View file

@ -52,7 +52,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public static RootedObjectEventHandler ActiveProfileModified = new RootedObjectEventHandler();
public static RootedObjectEventHandler SettingChanged = new RootedObjectEventHandler();
private static PrinterSettings activeInstance = PrinterSettings.Empty;
private static PrinterSettings activeInstance;
public static PrinterSettings Instance
{
get
@ -61,7 +61,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
set
{
if (activeInstance != value
if (activeInstance != value
&& value != null)
{
// If we have an active printer, run Disable
@ -92,11 +92,28 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
}
static public void OnSettingsChanged(SliceSettingData settingData)
{
SettingChanged.CallEvents(null, new StringEventArgs(settingData.SlicerConfigName));
public static List<SliceSettingData> SettingsData { get; private set; } = new List<SliceSettingData>();
private static Dictionary<string, SliceSettingData> settingsByName;
if (settingData.ReloadUiWhenChanged)
static ActiveSliceSettings()
{
string propertiesFileContents = StaticData.Instance.ReadAllText(Path.Combine("SliceSettings", "Properties.json"));
SettingsData = JsonConvert.DeserializeObject<List<SliceSettingData>>(propertiesFileContents) as List<SliceSettingData>;
settingsByName = new Dictionary<string, SliceSettingData>();
foreach (var settingsData in ActiveSliceSettings.SettingsData)
{
settingsByName.Add(settingsData.SlicerConfigName, settingsData);
}
activeInstance = PrinterSettings.Empty;
}
public static void OnSettingChanged(string slicerConfigName)
{
SettingChanged.CallEvents(null, new StringEventArgs(slicerConfigName));
SliceSettingData settingsData;
if (settingsByName.TryGetValue(slicerConfigName, out settingsData) && settingsData.ReloadUiWhenChanged)
{
UiThread.RunOnIdle(ApplicationController.Instance.ReloadAll);
}

View file

@ -621,7 +621,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 SliceSettingsOrganizer.Instance.SettingsData.Where(settingsItem => settingsItem.ShowAsOverride == false))
foreach (var item in ActiveSliceSettings.SettingsData.Where(settingsItem => settingsItem.ShowAsOverride == false))
{
switch (item.SlicerConfigName)
{
@ -1070,6 +1070,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
// Otherwise, set and save
persistenceLayer[settingsKey] = settingsValue;
Save();
ActiveSliceSettings.OnSettingChanged(settingsKey);
}
public string ToJson(Formatting formatting = Formatting.Indented)
@ -1091,6 +1093,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
Save();
ActiveSliceSettings.OnSettingChanged(settingsKey);
}
}
}

View file

@ -281,8 +281,12 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
return printLevelingData;
}
public void SetPrintLevelingData(PrintLevelingData data)
public void SetPrintLevelingData(PrintLevelingData data, bool clearUserZOffset)
{
if (clearUserZOffset)
{
ActiveSliceSettings.Instance.SetValue(SettingsKey.baby_step_z_offset, "0");
}
printLevelingData = data;
printerSettings.SetValue(SettingsKey.print_leveling_data, JsonConvert.SerializeObject(data));
}

View file

@ -258,18 +258,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
// Ensure that activated or deactivated user overrides are always persisted to disk
activeSettings.Save();
UiThread.RunOnIdle(() =>
{
ApplicationController.Instance.ReloadAdvancedControlsPanel();
foreach (var keyName in PrinterSettings.KnownSettings)
{
if(settingBeforeChange[keyName] != ActiveSliceSettings.Instance.GetValue(keyName))
{
ActiveSliceSettings.OnSettingsChanged(SliceSettingsOrganizer.Instance.GetSettingsData(keyName));
}
}
});
editButton.Enabled = item.Text != defaultMenuItemText;
}

View file

@ -219,8 +219,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
set { userLevels = value; }
}
public List<SliceSettingData> SettingsData { get; private set; } = new List<SliceSettingData>();
private static SliceSettingsOrganizer instance = null;
public static SliceSettingsOrganizer Instance
@ -275,7 +273,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public SliceSettingData GetSettingsData(string slicerConfigName)
{
foreach (SliceSettingData settingData in SettingsData)
foreach (SliceSettingData settingData in ActiveSliceSettings.SettingsData)
{
if (settingData.SlicerConfigName == slicerConfigName)
{
@ -289,9 +287,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
private void LoadAndParseSettingsFiles()
{
string propertiesFileContents = StaticData.Instance.ReadAllText(Path.Combine("SliceSettings", "Properties.json"));
SettingsData = JsonConvert.DeserializeObject<List<SliceSettingData>>(propertiesFileContents) as List<SliceSettingData>;
OrganizerUserLevel userLevelToAddTo = null;
OrganizerCategory categoryToAddTo = null;
OrganizerGroup groupToAddTo = null;
@ -355,7 +350,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
if (defaultSettings == null)
{
var settingsDictionary = new Dictionary<string, string>();
foreach (var sliceSettingsData in this.SettingsData)
foreach (var sliceSettingsData in ActiveSliceSettings.SettingsData)
{
settingsDictionary[sliceSettingsData.SlicerConfigName] = sliceSettingsData.DefaultValue;
}

View file

@ -863,8 +863,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
{
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, ((NumberEdit)sender).Value.ToString(), persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
content.AddChild(intEditWidget);
@ -900,8 +898,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
{
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, ((NumberEdit)sender).Value.ToString(), persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
dataArea.AddChild(doubleEditWidget);
unitsArea.AddChild(GetExtraSettingsWidget(settingData));
@ -975,7 +971,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
// also always save to the local setting
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, numberEdit.Value.ToString(), persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
content.AddChild(doubleEditWidget);
unitsArea.AddChild(GetExtraSettingsWidget(settingData));
@ -1012,7 +1007,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
{
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, ((NumberEdit)sender).Value.ToString(), persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
dataArea.AddChild(doubleEditWidget);
unitsArea.AddChild(GetExtraSettingsWidget(settingData));
@ -1055,8 +1049,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
textEditWidget.Text = text;
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, textEditWidget.Text, persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
stringEdit.ActualTextEditWidget.InternalTextEditWidget.AllSelected += (sender, e) =>
@ -1130,7 +1122,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, textEditWidget.Text, persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
// make sure we are still looking for the final validation before saving.
if (textEditWidget.ContainsFocus)
@ -1200,8 +1191,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
}
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
dataArea.AddChild(checkBoxWidget);
@ -1225,8 +1214,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
{
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, ((TextEditWidget)sender).Text, persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
dataArea.AddChild(stringEdit);
@ -1252,8 +1239,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
{
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, ((TextEditWidget)sender).Text.Replace("\n", "\\n"), persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
nameArea.HAnchor = HAnchor.AbsolutePosition;
@ -1323,8 +1308,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, menuItem.Text, persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
}
@ -1354,8 +1337,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, isChecked ? "1" : "0", persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
dataArea.AddChild(checkBoxWidget);
@ -1399,8 +1380,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, xEditWidget.ActuallNumberEdit.Value.ToString() + "," + yEditWidget.ActuallNumberEdit.Value.ToString(), persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
dataArea.AddChild(xEditWidget);
dataArea.AddChild(new TextWidget("X", pointSize: 10, textColor: ActiveTheme.Instance.PrimaryTextColor)
@ -1414,8 +1393,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, xEditWidget.ActuallNumberEdit.Value.ToString() + "," + yEditWidget.ActuallNumberEdit.Value.ToString(), persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
dataArea.AddChild(yEditWidget);
var yLabel = new GuiWidget(HAnchor.ParentLeftRight, VAnchor.FitToChildren | VAnchor.ParentCenter)
@ -1468,8 +1445,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
SaveCommaSeparatedIndexSetting(extruderIndexLocal, layerCascade, settingData.SlicerConfigName, xEditWidget.ActuallNumberEdit.Value.ToString() + "x" + yEditWidget.ActuallNumberEdit.Value.ToString(), persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
dataArea.AddChild(xEditWidget);
dataArea.AddChild(new TextWidget("X", pointSize: 10, textColor: ActiveTheme.Instance.PrimaryTextColor)
@ -1484,8 +1459,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
SaveCommaSeparatedIndexSetting(extruderIndexLocal, layerCascade, settingData.SlicerConfigName, xEditWidget.ActuallNumberEdit.Value.ToString() + "x" + yEditWidget.ActuallNumberEdit.Value.ToString(), persistenceLayer);
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
dataArea.AddChild(yEditWidget);
var yLabel = new GuiWidget(HAnchor.ParentLeftRight, VAnchor.FitToChildren | VAnchor.ParentCenter)
@ -1540,7 +1513,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
settingsRow.RefreshValue(layerCascade);
ActiveSliceSettings.OnSettingsChanged(settingData);
};
restoreArea.AddChild(restoreButton);
@ -1626,8 +1598,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
settingsRow.UpdateStyle();
ActiveSliceSettings.OnSettingsChanged(settingData);
};
}
}
@ -1665,7 +1635,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
newItem.Selected += (sender, e) =>
{
ActiveSliceSettings.Instance.SetValue(settingData.SlicerConfigName, valueLocal, persistenceLayer);
ActiveSliceSettings.OnSettingsChanged(settingData);
internalTextWidget.Text = valueLocal;
internalTextWidget.OnEditComplete(null);
};