Browse Source

Added delete selected

Krzysztof Krysiński 4 months ago
parent
commit
7b6750abf5

+ 2 - 2
src/PixiEditor/Data/Localization/Languages/en.json

@@ -152,8 +152,8 @@
   "ROT_LAYERS_-90": "Rotate Selected Layers -90 degrees",
   "TOGGLE_VERT_SYMMETRY_AXIS": "Toggle vertical symmetry axis",
   "TOGGLE_HOR_SYMMETRY_AXIS": "Toggle horizontal symmetry axis",
-  "DELETE_PIXELS": "Delete pixels",
-  "DELETE_PIXELS_DESCRIPTIVE": "Delete selected pixels",
+  "DELETE_SELECTED": "Delete selected",
+  "DELETE_SELECTED_DESCRIPTIVE": "Delete selected element (layer, pixels, etc.)",
   "RESIZE_DOCUMENT": "Resize document",
   "RESIZE_CANVAS": "Resize canvas",
   "CENTER_CONTENT": "Center content",

+ 1 - 1
src/PixiEditor/Data/ShortcutActionMaps/AsepriteShortcutMap.json

@@ -460,7 +460,7 @@
       "Parameters": []
     },
     "Clear": {
-      "Command": "PixiEditor.Document.DeletePixels",
+      "Command": "PixiEditor.Document.DeleteSelected",
       "DefaultShortcut": {
         "key": "Delete",
         "modifiers": null

+ 14 - 6
src/PixiEditor/ViewModels/Document/DocumentManagerViewModel.cs

@@ -185,15 +185,23 @@ internal class DocumentManagerViewModel : SubViewModel<ViewModelMain>, IDocument
         ActiveDocument.EventInlet.OnSymmetryDragEnded(dir);
     }
 
-    [Command.Basic("PixiEditor.Document.DeletePixels", "DELETE_PIXELS", "DELETE_PIXELS_DESCRIPTIVE",
-        CanExecute = "PixiEditor.Selection.IsNotEmpty", Key = Key.Delete,
+    [Command.Basic("PixiEditor.Document.DeleteSelected", "DELETE_SELECTED", "DELETE_SELECTED_DESCRIPTIVE",
+        Key = Key.Delete,
         ShortcutContexts = [typeof(ViewportWindowViewModel)],
         Icon = PixiPerfectIcons.Eraser,
-        MenuItemPath = "EDIT/DELETE_SELECTED_PIXELS", MenuItemOrder = 6, AnalyticsTrack = true)]
-    public void DeletePixels()
+        MenuItemPath = "EDIT/DELETE_SELECTED", MenuItemOrder = 6, AnalyticsTrack = true)]
+    public void DeleteSelected()
     {
-        Owner.DocumentManagerSubViewModel.ActiveDocument?.Operations.DeleteSelectedPixels(activeDocument
-            .AnimationDataViewModel.ActiveFrameBindable);
+        if (ActiveDocument.SelectionPathBindable is { IsEmpty: false })
+        {
+            Owner.DocumentManagerSubViewModel.ActiveDocument?.Operations.DeleteSelectedPixels(activeDocument
+                .AnimationDataViewModel.ActiveFrameBindable);
+        }
+        else
+        {
+            var selectedMembers = ActiveDocument?.GetSelectedMembers();
+            Owner.DocumentManagerSubViewModel.ActiveDocument?.Operations.DeleteStructureMembers(selectedMembers);
+        }
     }