|
@@ -1,13 +1,17 @@
|
|
-using System.Collections;
|
|
|
|
|
|
+using System;
|
|
|
|
+using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Collections.ObjectModel;
|
|
using System.Linq;
|
|
using System.Linq;
|
|
using PixiEditor.Helpers;
|
|
using PixiEditor.Helpers;
|
|
|
|
+using PixiEditor.ViewModels;
|
|
|
|
|
|
namespace PixiEditor.Models.Layers
|
|
namespace PixiEditor.Models.Layers
|
|
{
|
|
{
|
|
public class LayerFolder : NotifyableObject
|
|
public class LayerFolder : NotifyableObject
|
|
{
|
|
{
|
|
|
|
+ public Guid FolderGuid { get; init; }
|
|
|
|
+
|
|
public ObservableCollection<Layer> Layers { get; set; } = new ObservableCollection<Layer>();
|
|
public ObservableCollection<Layer> Layers { get; set; } = new ObservableCollection<Layer>();
|
|
|
|
|
|
public ObservableCollection<LayerFolder> Subfolders { get; set; } = new ObservableCollection<LayerFolder>();
|
|
public ObservableCollection<LayerFolder> Subfolders { get; set; } = new ObservableCollection<LayerFolder>();
|
|
@@ -26,11 +30,37 @@ namespace PixiEditor.Models.Layers
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private bool isExpanded = false;
|
|
|
|
+
|
|
|
|
+ public bool IsExpanded
|
|
|
|
+ {
|
|
|
|
+ get => isExpanded;
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ isExpanded = value;
|
|
|
|
+ UpdateIsExpandedInDocument(value);
|
|
|
|
+ RaisePropertyChanged(nameof(IsExpanded));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void UpdateIsExpandedInDocument(bool value)
|
|
|
|
+ {
|
|
|
|
+ var folder = ViewModelMain.Current.BitmapManager.ActiveDocument.LayerStructure.GetFolderByGuid(FolderGuid);
|
|
|
|
+ if(folder != null)
|
|
|
|
+ {
|
|
|
|
+ folder.IsExpanded = value;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
public LayerFolder(IEnumerable<Layer> layers, IEnumerable<LayerFolder> subfolders, string name)
|
|
public LayerFolder(IEnumerable<Layer> layers, IEnumerable<LayerFolder> subfolders, string name)
|
|
|
|
+ : this(layers, subfolders, name, Guid.NewGuid()) { }
|
|
|
|
+
|
|
|
|
+ public LayerFolder(IEnumerable<Layer> layers, IEnumerable<LayerFolder> subfolders, string name, Guid guid)
|
|
{
|
|
{
|
|
Layers = new ObservableCollection<Layer>(layers);
|
|
Layers = new ObservableCollection<Layer>(layers);
|
|
Subfolders = new ObservableCollection<LayerFolder>(subfolders);
|
|
Subfolders = new ObservableCollection<LayerFolder>(subfolders);
|
|
Name = name;
|
|
Name = name;
|
|
|
|
+ FolderGuid = guid;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|