Browse Source

Removed deselct from undo and improved readabilty

CPKreuz 4 years ago
parent
commit
0dbe703be4

+ 19 - 11
PixiEditor/Helpers/SelectionHelpers.cs

@@ -6,30 +6,38 @@ using PixiEditor.Models.Undo;
 
 namespace PixiEditor.Helpers
 {
-    public class SelectionHelpers
+    public static class SelectionHelpers
     {
-        public static void SelectionSet(object[] arguments)
-        {
-            Document document = (Document)arguments[0];
-
-            document.ActiveSelection.SetSelection((IEnumerable<Coordinates>)arguments[1], SelectionType.New);
-        }
-
         public static void AddSelectionUndoStep(Document document, IEnumerable<Coordinates> oldPoints, SelectionType mode)
         {
+#pragma warning disable SA1117 // Parameters should be on same line or separate lines. Justification: Making it readable
             if (mode == SelectionType.New && document.ActiveSelection.SelectedPoints.Count != 0)
             {
                 // Add empty selection as the old one get's fully deleted first
                 document.UndoManager.AddUndoChange(
-                    new Change(SelectionSet, new object[] { document, new List<Coordinates>(oldPoints) }, SelectionSet, new object[] { document, new List<Coordinates>() }));
+                    new Change(
+                        SetSelectionProcess, new object[] { document, new List<Coordinates>(oldPoints) },
+                        SetSelectionProcess, new object[] { document, new List<Coordinates>() }));
                 document.UndoManager.AddUndoChange(
-                    new Change(SelectionSet, new object[] { document, new List<Coordinates>() }, SelectionSet, new object[] { document, new List<Coordinates>(document.ActiveSelection.SelectedPoints) }));
+                    new Change(
+                        SetSelectionProcess, new object[] { document, new List<Coordinates>() },
+                        SetSelectionProcess, new object[] { document, new List<Coordinates>(document.ActiveSelection.SelectedPoints) }));
             }
             else
             {
                 document.UndoManager.AddUndoChange(
-                    new Change(SelectionSet, new object[] { document, new List<Coordinates>(oldPoints) }, SelectionSet, new object[] { document, new List<Coordinates>(document.ActiveSelection.SelectedPoints) }));
+                    new Change(
+                        SetSelectionProcess, new object[] { document, new List<Coordinates>(oldPoints) },
+                        SetSelectionProcess, new object[] { document, new List<Coordinates>(document.ActiveSelection.SelectedPoints) }));
+#pragma warning restore SA1117 // Parameters should be on same line or separate lines
             }
         }
+
+        private static void SetSelectionProcess(object[] arguments)
+        {
+            Document document = (Document)arguments[0];
+
+            document.ActiveSelection.SetSelection((IEnumerable<Coordinates>)arguments[1], SelectionType.New);
+        }
     }
 }

+ 1 - 9
PixiEditor/ViewModels/SubViewModels/Main/SelectionViewModel.cs

@@ -32,20 +32,12 @@ namespace PixiEditor.ViewModels.SubViewModels.Main
         }
 
         public void Deselect(object parameter)
-        {
-            Deselect();
-        }
-
-        public void Deselect(bool addUndo = true)
         {
             var oldSelection = new List<Coordinates>(Owner.BitmapManager.ActiveDocument.ActiveSelection.SelectedPoints);
 
             Owner.BitmapManager.ActiveDocument.ActiveSelection?.Clear();
 
-            if (addUndo)
-            {
-                SelectionHelpers.AddSelectionUndoStep(Owner.BitmapManager.ActiveDocument, oldSelection, SelectionType.New);
-            }
+            SelectionHelpers.AddSelectionUndoStep(Owner.BitmapManager.ActiveDocument, oldSelection, SelectionType.New);
         }
 
         public bool SelectionIsNotEmpty(object property)

+ 0 - 1
PixiEditor/ViewModels/SubViewModels/Main/UndoViewModel.cs

@@ -75,7 +75,6 @@ namespace PixiEditor.ViewModels.SubViewModels.Main
         /// <param name="parameter">CommandParameter.</param>
         public void Undo(object parameter)
         {
-            Owner.SelectionSubViewModel.Deselect(false);
             Owner.BitmapManager.ActiveDocument.UndoManager.Undo();
         }