|
@@ -25,16 +25,16 @@ namespace PixiEditor.Models.Layers
|
|
|
public void MoveLayerToFolder(Guid layerGuid, Guid? folderGuid)
|
|
|
{
|
|
|
GuidStructureItem oldFolder = GetFolderByLayer(layerGuid);
|
|
|
- if (oldFolder != null)
|
|
|
- {
|
|
|
- oldFolder.LayerGuids.Remove(layerGuid);
|
|
|
- }
|
|
|
-
|
|
|
- if (folderGuid != null)
|
|
|
- {
|
|
|
- var folder = GetFolderByGuid((Guid)folderGuid);
|
|
|
- folder.LayerGuids.Add(layerGuid);
|
|
|
- }
|
|
|
+ //if (oldFolder != null)
|
|
|
+ //{
|
|
|
+ // oldFolder.LayerGuids.Remove(layerGuid);
|
|
|
+ //}
|
|
|
+
|
|
|
+ //if (folderGuid != null)
|
|
|
+ //{
|
|
|
+ // var folder = GetFolderByGuid((Guid)folderGuid);
|
|
|
+ // folder.LayerGuids.Add(layerGuid);
|
|
|
+ //}
|
|
|
}
|
|
|
|
|
|
public GuidStructureItem GetFolderByLayer(Guid layerGuid)
|
|
@@ -46,88 +46,81 @@ namespace PixiEditor.Models.Layers
|
|
|
public void MoveFolder(Guid folderGuid, GuidStructureItem? parentFolder, int newIndex)
|
|
|
{
|
|
|
var folder = GetFolderByGuid(folderGuid);
|
|
|
- int oldFolderActualIndex = folder.ActualIndex;
|
|
|
- int oldFolderDisplayIndex = folder.FolderDisplayIndex;
|
|
|
bool reverseOrder = true;
|
|
|
|
|
|
- int indexToApply;
|
|
|
int difference;
|
|
|
|
|
|
- if (newIndex > oldFolderActualIndex)
|
|
|
- {
|
|
|
- indexToApply = newIndex;
|
|
|
- difference = indexToApply - oldFolderActualIndex;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- reverseOrder = false;
|
|
|
- difference = newIndex - oldFolderDisplayIndex;
|
|
|
- indexToApply = oldFolderActualIndex + difference;
|
|
|
- }
|
|
|
-
|
|
|
- MoveLayersInFolder(folder, difference, reverseOrder);
|
|
|
-
|
|
|
- folder.ActualIndex = indexToApply;
|
|
|
-
|
|
|
- if (folder.Parent == null)
|
|
|
- {
|
|
|
- Folders.Remove(folder);
|
|
|
- }
|
|
|
-
|
|
|
- if (parentFolder == null && !Folders.Contains(folder))
|
|
|
- {
|
|
|
- Folders.Add(folder);
|
|
|
- }
|
|
|
- else if (parentFolder != null)
|
|
|
- {
|
|
|
- parentFolder.Subfolders.Add(folder);
|
|
|
- }
|
|
|
+ //if (newIndex > oldFolderActualIndex)
|
|
|
+ //{
|
|
|
+ // difference = indexToApply - oldFolderActualIndex;
|
|
|
+ //}
|
|
|
+ //else
|
|
|
+ //{
|
|
|
+ // reverseOrder = false;
|
|
|
+ // difference = newIndex - oldFolderDisplayIndex;
|
|
|
+ //}
|
|
|
+
|
|
|
+ //MoveLayersInFolder(folder, difference, reverseOrder);
|
|
|
+
|
|
|
+ //if (folder.Parent == null)
|
|
|
+ //{
|
|
|
+ // Folders.Remove(folder);
|
|
|
+ //}
|
|
|
+
|
|
|
+ //if (parentFolder == null && !Folders.Contains(folder))
|
|
|
+ //{
|
|
|
+ // Folders.Add(folder);
|
|
|
+ //}
|
|
|
+ //else if (parentFolder != null)
|
|
|
+ //{
|
|
|
+ // parentFolder.Subfolders.Add(folder);
|
|
|
+ //}
|
|
|
}
|
|
|
|
|
|
private void MoveLayersInFolder(GuidStructureItem folder, int moveBy, bool reverseOrder)
|
|
|
{
|
|
|
- List<Guid> layersInOrder = GetLayersInOrder(folder);
|
|
|
+ //List<Guid> layersInOrder = GetLayersInOrder(folder);
|
|
|
|
|
|
- List<Guid> layerGuids = reverseOrder ? layersInOrder.Reverse<Guid>().ToList() : layersInOrder;
|
|
|
+ //List<Guid> layerGuids = reverseOrder ? layersInOrder.Reverse<Guid>().ToList() : layersInOrder;
|
|
|
|
|
|
- for (int i = 0; i < layersInOrder.Count; i++)
|
|
|
- {
|
|
|
- Guid layerGuid = layerGuids[i];
|
|
|
- var layer = Owner.Layers.First(x => x.LayerGuid == layerGuid);
|
|
|
- int layerIndex = Owner.Layers.IndexOf(layer);
|
|
|
- Owner.Layers.Move(layerIndex, layerIndex + moveBy);
|
|
|
- }
|
|
|
+ //for (int i = 0; i < layersInOrder.Count; i++)
|
|
|
+ //{
|
|
|
+ // Guid layerGuid = layerGuids[i];
|
|
|
+ // var layer = Owner.Layers.First(x => x.LayerGuid == layerGuid);
|
|
|
+ // int layerIndex = Owner.Layers.IndexOf(layer);
|
|
|
+ // Owner.Layers.Move(layerIndex, layerIndex + moveBy);
|
|
|
+ //}
|
|
|
}
|
|
|
|
|
|
- private List<Guid> GetLayersInOrder(GuidStructureItem folder)
|
|
|
- {
|
|
|
- List<Guid> layerGuids = new List<Guid>();
|
|
|
- int minIndex = folder.FolderDisplayIndex;
|
|
|
- int maxIndex = folder.ActualIndex;
|
|
|
+ //private List<Guid> GetLayersInOrder(GuidStructureItem folder)
|
|
|
+ //{
|
|
|
+ // List<Guid> layerGuids = new ();
|
|
|
+ // int minIndex = Owner.Layers.folder.FolderDisplayIndex;
|
|
|
+ // int maxIndex = folder.ActualIndex;
|
|
|
|
|
|
- for (int i = minIndex; i <= maxIndex; i++)
|
|
|
- {
|
|
|
- layerGuids.Add(Owner.Layers[i].LayerGuid);
|
|
|
- }
|
|
|
+ // for (int i = minIndex; i <= maxIndex; i++)
|
|
|
+ // {
|
|
|
+ // layerGuids.Add(Owner.Layers[i].LayerGuid);
|
|
|
+ // }
|
|
|
|
|
|
- return layerGuids;
|
|
|
- }
|
|
|
+ // return layerGuids;
|
|
|
+ //}
|
|
|
|
|
|
#nullable disable
|
|
|
private GuidStructureItem GetFolderByLayer(Guid layerGuid, IEnumerable<GuidStructureItem> folders)
|
|
|
{
|
|
|
- foreach (var folder in folders)
|
|
|
- {
|
|
|
- if (folder.LayerGuids.Contains(layerGuid))
|
|
|
- {
|
|
|
- return folder;
|
|
|
- }
|
|
|
-
|
|
|
- if (folder.Subfolders.Count > 0)
|
|
|
- {
|
|
|
- return GetFolderByLayer(layerGuid, folder.Subfolders);
|
|
|
- }
|
|
|
- }
|
|
|
+ //foreach (var folder in folders)
|
|
|
+ //{
|
|
|
+ // if (folder.LayerGuids.Contains(layerGuid))
|
|
|
+ // {
|
|
|
+ // return folder;
|
|
|
+ // }
|
|
|
+
|
|
|
+ // if (folder.Subfolders.Count > 0)
|
|
|
+ // {
|
|
|
+ // return GetFolderByLayer(layerGuid, folder.Subfolders);
|
|
|
+ // }
|
|
|
+ //}
|
|
|
|
|
|
return null;
|
|
|
}
|