Browse Source

Fixed default value not updating brush shape

Krzysztof Krysiński 6 ngày trước cách đây
mục cha
commit
0d9632b571

+ 0 - 4
src/PixiEditor.ChangeableDocument/Changeables/Brushes/BrushEngine.cs

@@ -259,10 +259,6 @@ public class BrushEngine : IDisposable
         if (target == null)
         if (target == null)
         {
         {
             brushData.BrushGraph.Execute(brushNode, context);
             brushData.BrushGraph.Execute(brushNode, context);
-            if (brushNode.VectorShape.Value == null)
-                return;
-
-            using var shape = brushNode.VectorShape.Value.ToPath(true);
             return;
             return;
         }
         }
 
 

+ 2 - 1
src/PixiEditor/Data/Configs/ToolSetsConfig.json

@@ -99,7 +99,8 @@
           "Settings": {
           "Settings": {
             "AntiAliasing": true,
             "AntiAliasing": true,
             "ExposeSpacing": true,
             "ExposeSpacing": true,
-            "PixelPerfectEnabled": false
+            "PixelPerfectEnabled": false,
+            "DefaultBrush": "Basic"
           }
           }
         },
         },
         "Select",
         "Select",

+ 4 - 4
src/PixiEditor/ViewModels/Tools/ToolSettings/Settings/Setting.cs

@@ -171,12 +171,12 @@ internal abstract class Setting : ObservableObject
         OnPropertyChanged(nameof(IsExposed));
         OnPropertyChanged(nameof(IsExposed));
     }
     }
 
 
-    public void SetDefaultValue(object defaultValue)
+    public void SetDefaultValue(object defaultValue, string toolset)
     {
     {
-        if (!defaultValuesSet.GetValueOrDefault(currentToolset, false))
+        if (!defaultValuesSet.GetValueOrDefault(toolset, false))
         {
         {
-            toolsetValues[currentToolset] = defaultValue;
-            defaultValuesSet[currentToolset] = true;
+            toolsetValues[toolset] = defaultValue;
+            defaultValuesSet[toolset] = true;
             OnPropertyChanged(nameof(Value));
             OnPropertyChanged(nameof(Value));
         }
         }
     }
     }

+ 20 - 9
src/PixiEditor/ViewModels/Tools/ToolViewModel.cs

@@ -238,12 +238,30 @@ internal abstract class ToolViewModel : ObservableObject, IToolHandler
             IconOverwrite = icon;
             IconOverwrite = icon;
         }
         }
 
 
+        if (ToolSetSettings.TryGetValue(toolset, out var settings))
+        {
+            foreach (var setting in settings)
+            {
+                if (IsDefaultSetting(setting, out object defaultValue))
+                {
+                    string settingName = setting.Key.Replace("Default", string.Empty);
+                    var foundSetting = TryGetSettingByName(settingName, setting);
+                    if (foundSetting is null)
+                    {
+                        continue;
+                    }
+
+                    foundSetting.SetDefaultValue(defaultValue, toolset.Name);
+                }
+            }
+        }
+
         foreach (var toolbarSetting in toolbarSettings)
         foreach (var toolbarSetting in toolbarSettings)
         {
         {
             toolbarSetting.SetCurrentToolset(toolset.Name);
             toolbarSetting.SetCurrentToolset(toolset.Name);
         }
         }
 
 
-        if (!ToolSetSettings.TryGetValue(toolset, out var settings))
+        if (settings is null)
         {
         {
             return;
             return;
         }
         }
@@ -263,14 +281,7 @@ internal abstract class ToolViewModel : ObservableObject, IToolHandler
             }
             }
             else if (IsDefaultSetting(setting, out object defaultValue))
             else if (IsDefaultSetting(setting, out object defaultValue))
             {
             {
-                string settingName = setting.Key.Replace("Default", string.Empty);
-                var foundSetting = TryGetSettingByName(settingName, setting);
-                if (foundSetting is null)
-                {
-                    continue;
-                }
-
-                foundSetting.SetDefaultValue(defaultValue);
+                continue;
             }
             }
             else
             else
             {
             {