Browse Source

Fixed undo of move layers and removed treeviewitem selected colors

flabbet 4 years ago
parent
commit
37e06cbd1b

+ 22 - 4
PixiEditor/Models/DataHolders/Document/Document.Layers.cs

@@ -97,14 +97,21 @@ namespace PixiEditor.Models.DataHolders
             }
         }
 
-        public void MoveLayerInStructure(Guid layer, Guid referenceLayer, bool above = false)
+        public void MoveLayerInStructure(Guid layerGuid, Guid referenceLayer, bool above = false)
         {
-            var args = new object[] { layer, referenceLayer, above };
+            var args = new object[] { layerGuid, referenceLayer, above };
+
+            Layer layer = Layers.First(x => x.LayerGuid == layerGuid);
+
+            int oldIndex = Layers.IndexOf(layer);
+
+            Guid? oldLayerFolder = LayerStructure.GetFolderByLayer(layerGuid)?.FolderGuid;
+
             MoveLayerInStructureProcess(args);
 
             UndoManager.AddUndoChange(new Change(
-                MoveLayerInStructureProcess,
-                new object[] { layer, referenceLayer, !above },
+                ReverseMoveLayerInStructureProcess,
+                new object[] { oldIndex, layerGuid, oldLayerFolder },
                 MoveLayerInStructureProcess,
                 args,
                 "Move layer"));
@@ -333,6 +340,17 @@ namespace PixiEditor.Models.DataHolders
             return layer;
         }
 
+        private void ReverseMoveLayerInStructureProcess(object[] props)
+        {
+            int indexTo = (int)props[0];
+            Guid layerGuid = (Guid)props[1];
+            Guid? folder = (Guid?)props[2];
+
+            Layers.Move(Layers.IndexOf(Layers.First(x => x.LayerGuid == layerGuid)), indexTo);
+
+            LayerStructure.MoveLayerToFolder(layerGuid, folder);
+        }
+
         private void InjectRemoveActiveLayersUndo(object[] guidArgs, StorageBasedChange change)
         {
             Action<Layer[], UndoLayer[]> undoAction = RestoreLayersProcess;

+ 8 - 0
PixiEditor/Styles/TreeViewStyle.xaml

@@ -21,6 +21,14 @@
     </Style>
 
 
+    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
+                      Color="Transparent" />
+    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"
+                      Color="Black" />
+    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"
+                      Color="Transparent" />
+    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}"
+                      Color="Black" />
     <SolidColorBrush x:Key="TreeViewItem.TreeArrow.Static.Checked.Fill" Color="#FF595959"/>
     <SolidColorBrush x:Key="TreeViewItem.TreeArrow.Static.Checked.Stroke" Color="#FF262626"/>
     <SolidColorBrush x:Key="TreeViewItem.TreeArrow.MouseOver.Stroke" Color="#FF27C7F7"/>