Browse Source

Some progress in terms of groups undo

flabbet 3 years ago
parent
commit
018d1f3b20

+ 3 - 1
PixiEditor/Models/DataHolders/Document/Document.Layers.cs

@@ -137,7 +137,7 @@ namespace PixiEditor.Models.DataHolders
             }
             }
         }
         }
 
 
-        public void MoveLayerInStructure(Guid layerGuid, Guid referenceLayer, bool above = false)
+        public void MoveLayerInStructure(Guid layerGuid, Guid referenceLayer, bool above = false, bool addToUndo = true)
         {
         {
             var args = new object[] { layerGuid, referenceLayer, above };
             var args = new object[] { layerGuid, referenceLayer, above };
 
 
@@ -151,6 +151,8 @@ namespace PixiEditor.Models.DataHolders
 
 
             AddLayerStructureToUndo(oldLayerStrcutureGroups);
             AddLayerStructureToUndo(oldLayerStrcutureGroups);
 
 
+            if (!addToUndo) return;
+
             UndoManager.AddUndoChange(new Change(
             UndoManager.AddUndoChange(new Change(
                 ReverseMoveLayerInStructureProcess,
                 ReverseMoveLayerInStructureProcess,
                 new object[] { oldIndex, layerGuid },
                 new object[] { oldIndex, layerGuid },

+ 2 - 0
PixiEditor/Models/Tools/BitmapOperationTool.cs

@@ -40,6 +40,8 @@ namespace PixiEditor.Models.Tools
             var document = ViewModels.ViewModelMain.Current.BitmapManager.ActiveDocument;
             var document = ViewModels.ViewModelMain.Current.BitmapManager.ActiveDocument;
             var args = new object[] { _change.Document };
             var args = new object[] { _change.Document };
             document.UndoManager.AddUndoChange(_change.ToChange(StorageBasedChange.BasicUndoProcess, args));
             document.UndoManager.AddUndoChange(_change.ToChange(StorageBasedChange.BasicUndoProcess, args));
+            document.AddLayerStructureToUndo(document.LayerStructure.Groups);
+            document.UndoManager.SquashUndoChanges(2);
             _change = null;
             _change = null;
         }
         }
     }
     }

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

@@ -1,6 +1,7 @@
 using PixiEditor.Helpers;
 using PixiEditor.Helpers;
 using PixiEditor.Models.Controllers;
 using PixiEditor.Models.Controllers;
 using PixiEditor.Models.Layers;
 using PixiEditor.Models.Layers;
+using PixiEditor.Models.Undo;
 using PixiEditor.Views.UserControls.Layers;
 using PixiEditor.Views.UserControls.Layers;
 using System;
 using System;
 using System.Linq;
 using System.Linq;