Browse Source

Changed logic of SaveToolbarSettings and LoadSharedSettings

ArtemK123 4 years ago
parent
commit
883f2a9ecb
1 changed files with 12 additions and 9 deletions
  1. 12 9
      PixiEditor/Models/Tools/ToolSettings/Toolbars/Toolbar.cs

+ 12 - 9
PixiEditor/Models/Tools/ToolSettings/Toolbars/Toolbar.cs

@@ -44,11 +44,8 @@ namespace PixiEditor.Models.Tools.ToolSettings.Toolbars
         /// </summary>
         public void SaveToolbarSettings()
         {
-            SharedSettings.Clear();
             foreach (Setting setting in Settings)
-            {
-                SharedSettings.Add(setting);
-            }
+                AddSettingToCollection(SharedSettings, setting);
         }
 
         /// <summary>
@@ -56,11 +53,17 @@ namespace PixiEditor.Models.Tools.ToolSettings.Toolbars
         /// </summary>
         public void LoadSharedSettings()
         {
-            Settings.Clear();
-            foreach (Setting setting in SharedSettings)
-            {
-                Settings.Add(setting);
-            }
+            foreach (Setting sharedSetting in SharedSettings)
+                AddSettingToCollection(Settings, sharedSetting);
+        }
+
+        private static void AddSettingToCollection(ICollection<Setting> collection, Setting setting)
+        {
+            Setting storedSetting = collection.FirstOrDefault(currentSetting => currentSetting.Name == setting.Name);
+            if (storedSetting != null)
+                collection.Remove(storedSetting);
+
+            collection.Add(setting);
         }
     }
 }