From 315e343007808231f66b0210727eecefcfea12e3 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Fri, 16 Sep 2022 18:22:38 -0700 Subject: [PATCH] Another pass at scene settings --- .../ApplicationView/Config/PrinterConfig.cs | 22 ++++++++++++------- Submodules/agg-sharp | 2 +- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/MatterControlLib/ApplicationView/Config/PrinterConfig.cs b/MatterControlLib/ApplicationView/Config/PrinterConfig.cs index 58ef1fc26..3e6be165c 100644 --- a/MatterControlLib/ApplicationView/Config/PrinterConfig.cs +++ b/MatterControlLib/ApplicationView/Config/PrinterConfig.cs @@ -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,7 +127,8 @@ namespace MatterHackers.MatterControl // if they are different if (!same) { - var settingsToRevert = new PrinterSettingsLayer(); + var settingsToUpdate = new HashSet(); + var settingsToRevert = new PrinterSettingsLayer(); var settingsToSet = new PrinterSettingsLayer(); foreach (var kvp in sceneOverrides) @@ -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; - - ProfileManager.SaveOnSingleSettingChange = false; + 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); diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 3cebfe80c..8dd82c825 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 3cebfe80cc0dbf687e6f2abb19a26538b77dcecf +Subproject commit 8dd82c825266791e6d51461bdf4de83df238dc6e