Another pass at scene settings

This commit is contained in:
Lars Brubaker 2022-09-16 18:22:38 -07:00
parent 007d9a49b3
commit 315e343007
2 changed files with 15 additions and 9 deletions

View file

@ -92,10 +92,9 @@ namespace MatterHackers.MatterControl
{
var undoBuffer = scene.UndoBuffer;
if (scene.Children.Count == 0
|| (undoBuffer != null
if (undoBuffer != null
&& undoBufferHashCode == undoBuffer.GetLongHashCode()
&& sceneChildrenCount == scene.Children.Count))
&& sceneChildrenCount == scene.Children.Count)
{
return;
}
@ -128,6 +127,7 @@ namespace MatterHackers.MatterControl
// if they are different
if (!same)
{
var settingsToUpdate = new HashSet<string>();
var settingsToRevert = new PrinterSettingsLayer();
var settingsToSet = new PrinterSettingsLayer();
@ -137,6 +137,7 @@ namespace MatterHackers.MatterControl
{
settingsToRevert[kvp.Key] = kvp.Value;
}
settingsToUpdate.Add(kvp.Key);
}
foreach (var kvp in newSceneOverrides)
@ -145,16 +146,21 @@ namespace MatterHackers.MatterControl
{
settingsToSet[kvp.Key] = newSceneOverrides[kvp.Key];
}
settingsToUpdate.Add(kvp.Key);
}
// store that current set
sceneOverrides = newSceneOverrides;
var storeSceneOverrides = new PrinterSettingsLayer();
ProfileManager.SaveOnSingleSettingChange = false;
Settings.RestoreConflictingUserOverrides(settingsToRevert);
foreach(var setting in newSceneOverrides)
{
Settings.SetValue(setting.Key, setting.Value, sceneOverrides);
Settings.SetValue(setting.Key, setting.Value, storeSceneOverrides);
}
sceneOverrides = storeSceneOverrides;
foreach (var setting in settingsToUpdate)
{
Settings.OnSettingChanged(setting);
}
ProfileManager.SaveOnSingleSettingChange = true;
ApplicationController.Instance.UpdateAllSettingsStyles(this);

@ -1 +1 @@
Subproject commit 3cebfe80cc0dbf687e6f2abb19a26538b77dcecf
Subproject commit 8dd82c825266791e6d51461bdf4de83df238dc6e