|
@@ -42,7 +42,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.DeleteSelected", "Delete active layer/folder", "Delete active layer or folder", CanExecute = "PixiEditor.Layer.CanDeleteSelected", IconPath = "Trash.png")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.DeleteSelected", "LAYER_DELETE_SELECTED", "LAYER_DELETE_SELECTED_DESCRIPTIVE", CanExecute = "PixiEditor.Layer.CanDeleteSelected", IconPath = "Trash.png")]
|
|
public void DeleteSelected()
|
|
public void DeleteSelected()
|
|
{
|
|
{
|
|
var member = Owner.DocumentManagerSubViewModel.ActiveDocument?.SelectedStructureMember;
|
|
var member = Owner.DocumentManagerSubViewModel.ActiveDocument?.SelectedStructureMember;
|
|
@@ -84,7 +84,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
return members;
|
|
return members;
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.DeleteAllSelected", "Delete all selected layers/folders", "Delete all selected layers and/or folders", CanExecute = "PixiEditor.Layer.HasSelectedMembers", IconPath = "Trash.png")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.DeleteAllSelected", "LAYER_DELETE_ALL_SELECTED", "LAYER_DELETE_ALL_SELECTED_DESCRIPTIVE", CanExecute = "PixiEditor.Layer.HasSelectedMembers", IconPath = "Trash.png")]
|
|
public void DeleteAllSelected()
|
|
public void DeleteAllSelected()
|
|
{
|
|
{
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
@@ -95,7 +95,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
doc.Operations.DeleteStructureMembers(selected);
|
|
doc.Operations.DeleteStructureMembers(selected);
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.NewFolder", "New Folder", "Create new folder", CanExecute = "PixiEditor.Layer.CanCreateNewMember", IconPath = "Folder-add.png")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.NewFolder", "NEW_FOLDER", "CREATE_NEW_FOLDER", CanExecute = "PixiEditor.Layer.CanCreateNewMember", IconPath = "Folder-add.png")]
|
|
public void NewFolder()
|
|
public void NewFolder()
|
|
{
|
|
{
|
|
if (Owner.DocumentManagerSubViewModel.ActiveDocument is not { } doc)
|
|
if (Owner.DocumentManagerSubViewModel.ActiveDocument is not { } doc)
|
|
@@ -103,7 +103,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
doc.Operations.CreateStructureMember(StructureMemberType.Folder);
|
|
doc.Operations.CreateStructureMember(StructureMemberType.Folder);
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.NewLayer", "New Layer", "Create new layer", CanExecute = "PixiEditor.Layer.CanCreateNewMember", Key = Key.N, Modifiers = ModifierKeys.Control | ModifierKeys.Shift, IconPath = "Layer-add.png")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.NewLayer", "NEW_LAYER", "CREATE_NEW_LAYER", CanExecute = "PixiEditor.Layer.CanCreateNewMember", Key = Key.N, Modifiers = ModifierKeys.Control | ModifierKeys.Shift, IconPath = "Layer-add.png")]
|
|
public void NewLayer()
|
|
public void NewLayer()
|
|
{
|
|
{
|
|
if (Owner.DocumentManagerSubViewModel.ActiveDocument is not { } doc)
|
|
if (Owner.DocumentManagerSubViewModel.ActiveDocument is not { } doc)
|
|
@@ -156,7 +156,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.DuplicateSelectedLayer", "Duplicate selected layer", "Duplicate selected layer", CanExecute = "PixiEditor.Layer.SelectedMemberIsLayer")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.DuplicateSelectedLayer", "DUPLICATE_SELECTED_LAYER", "DUPLICATE_SELECTED_LAYER", CanExecute = "PixiEditor.Layer.SelectedMemberIsLayer")]
|
|
public void DuplicateLayer()
|
|
public void DuplicateLayer()
|
|
{
|
|
{
|
|
var member = Owner.DocumentManagerSubViewModel.ActiveDocument?.SelectedStructureMember;
|
|
var member = Owner.DocumentManagerSubViewModel.ActiveDocument?.SelectedStructureMember;
|
|
@@ -221,7 +221,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
[Evaluator.CanExecute("PixiEditor.Layer.ActiveLayerHasNoMask")]
|
|
[Evaluator.CanExecute("PixiEditor.Layer.ActiveLayerHasNoMask")]
|
|
public bool ActiveLayerHasNoMask() => !Owner.DocumentManagerSubViewModel.ActiveDocument?.SelectedStructureMember?.HasMaskBindable ?? false;
|
|
public bool ActiveLayerHasNoMask() => !Owner.DocumentManagerSubViewModel.ActiveDocument?.SelectedStructureMember?.HasMaskBindable ?? false;
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.CreateMask", "Create mask", "Create mask", CanExecute = "PixiEditor.Layer.ActiveLayerHasNoMask", IconPath = "Create-mask.png")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.CreateMask", "CREATE_MASK", "CREATE_MASK", CanExecute = "PixiEditor.Layer.ActiveLayerHasNoMask", IconPath = "Create-mask.png")]
|
|
public void CreateMask()
|
|
public void CreateMask()
|
|
{
|
|
{
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
@@ -231,7 +231,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
doc!.Operations.CreateMask(member);
|
|
doc!.Operations.CreateMask(member);
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.DeleteMask", "Delete mask", "Delete mask", CanExecute = "PixiEditor.Layer.ActiveLayerHasMask", IconPath = "Trash.png")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.DeleteMask", "DELETE_MASK", "DELETE_MASK", CanExecute = "PixiEditor.Layer.ActiveLayerHasMask", IconPath = "Trash.png")]
|
|
public void DeleteMask()
|
|
public void DeleteMask()
|
|
{
|
|
{
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
@@ -241,7 +241,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
doc!.Operations.DeleteMask(member);
|
|
doc!.Operations.DeleteMask(member);
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.ToggleMask", "Toggle mask", "Toggle mask", CanExecute = "PixiEditor.Layer.ActiveLayerHasMask")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.ToggleMask", "TOGGLE_MASK", "TOGGLE_MASK", CanExecute = "PixiEditor.Layer.ActiveLayerHasMask")]
|
|
public void ToggleMask()
|
|
public void ToggleMask()
|
|
{
|
|
{
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
@@ -252,7 +252,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
member.MaskIsVisibleBindable = !member.MaskIsVisibleBindable;
|
|
member.MaskIsVisibleBindable = !member.MaskIsVisibleBindable;
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.ApplyMask", "Apply mask", "Apply mask", CanExecute = "PixiEditor.Layer.ActiveLayerHasMask")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.ApplyMask", "APPLY_MASK", "APPLY_MASK", CanExecute = "PixiEditor.Layer.ActiveLayerHasMask")]
|
|
public void ApplyMask()
|
|
public void ApplyMask()
|
|
{
|
|
{
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
@@ -263,7 +263,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
doc!.Operations.ApplyMask(member);
|
|
doc!.Operations.ApplyMask(member);
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.ToggleVisible", "Toggle visibility", "Toggle visibility", CanExecute = "PixiEditor.HasDocument")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.ToggleVisible", "TOGGLE_VISIBILITY", "TOGGLE_VISIBILITY", CanExecute = "PixiEditor.HasDocument")]
|
|
public void ToggleVisible()
|
|
public void ToggleVisible()
|
|
{
|
|
{
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
@@ -279,12 +279,12 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
[Evaluator.CanExecute("PixiEditor.Layer.HasMemberBelow")]
|
|
[Evaluator.CanExecute("PixiEditor.Layer.HasMemberBelow")]
|
|
public bool HasMemberBelow(object property) => HasSelectedMember(false);
|
|
public bool HasMemberBelow(object property) => HasSelectedMember(false);
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.MoveSelectedMemberUpwards", "Move selected layer upwards", "Move selected layer or folder upwards", CanExecute = "PixiEditor.Layer.HasMemberAbove")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.MoveSelectedMemberUpwards", "MOVE_MEMBER_UP", "MOVE_MEMBER_UP_DESCRIPTIVE", CanExecute = "PixiEditor.Layer.HasMemberAbove")]
|
|
public void MoveSelectedMemberUpwards() => MoveSelectedMember(true);
|
|
public void MoveSelectedMemberUpwards() => MoveSelectedMember(true);
|
|
- [Command.Basic("PixiEditor.Layer.MoveSelectedMemberDownwards", "Move selected layer downwards", "Move selected layer or folder downwards", CanExecute = "PixiEditor.Layer.HasMemberBelow")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.MoveSelectedMemberDownwards", "MOVE_MEMBER_DOWN", "MOVE_MEMBER_DOWN_DESCRIPTIVE", CanExecute = "PixiEditor.Layer.HasMemberBelow")]
|
|
public void MoveSelectedMemberDownwards() => MoveSelectedMember(false);
|
|
public void MoveSelectedMemberDownwards() => MoveSelectedMember(false);
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.MergeSelected", "Merge all selected layers", "Merge all selected layers", CanExecute = "PixiEditor.Layer.HasMultipleSelectedMembers")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.MergeSelected", "MERGE_ALL_SELECTED_LAYERS", "MERGE_ALL_SELECTED_LAYERS", CanExecute = "PixiEditor.Layer.HasMultipleSelectedMembers")]
|
|
public void MergeSelected()
|
|
public void MergeSelected()
|
|
{
|
|
{
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
@@ -313,10 +313,10 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
doc.Operations.MergeStructureMembers(new List<Guid> { member.GuidValue, above ? parent.Children[index + 1].GuidValue : parent.Children[index - 1].GuidValue });
|
|
doc.Operations.MergeStructureMembers(new List<Guid> { member.GuidValue, above ? parent.Children[index + 1].GuidValue : parent.Children[index - 1].GuidValue });
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.MergeWithAbove", "Merge selected layer with the one above it", "Merge selected layer with the one above it", CanExecute = "PixiEditor.Layer.HasMemberAbove")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.MergeWithAbove", "MERGE_WITH_ABOVE", "MERGE_WITH_ABOVE_DESCRIPTIVE", CanExecute = "PixiEditor.Layer.HasMemberAbove")]
|
|
public void MergeWithAbove() => MergeSelectedWith(true);
|
|
public void MergeWithAbove() => MergeSelectedWith(true);
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.MergeWithBelow", "Merge selected layer with the one below it", "Merge selected layer with the one below it", CanExecute = "PixiEditor.Layer.HasMemberBelow", IconPath = "Merge-downwards.png")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.MergeWithBelow", "MERGE_WITH_BELOW", "MERGE_WITH_BELOW_DESCRIPTIVE", CanExecute = "PixiEditor.Layer.HasMemberBelow", IconPath = "Merge-downwards.png")]
|
|
public void MergeWithBelow() => MergeSelectedWith(false);
|
|
public void MergeWithBelow() => MergeSelectedWith(false);
|
|
|
|
|
|
[Evaluator.CanExecute("PixiEditor.Layer.ReferenceLayerExists")]
|
|
[Evaluator.CanExecute("PixiEditor.Layer.ReferenceLayerExists")]
|
|
@@ -341,7 +341,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
return Owner.ClipboardSubViewModel.CanPaste();
|
|
return Owner.ClipboardSubViewModel.CanPaste();
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.ImportReferenceLayer", "Add reference layer", "Add reference layer", CanExecute = "PixiEditor.Layer.ReferenceLayerDoesntExist")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.ImportReferenceLayer", "ADD_REFERENCE_LAYER", "ADD_REFERENCE_LAYER", CanExecute = "PixiEditor.Layer.ReferenceLayerDoesntExist")]
|
|
public void ImportReferenceLayer()
|
|
public void ImportReferenceLayer()
|
|
{
|
|
{
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
@@ -386,7 +386,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
return (bool)dialog.ShowDialog() ? dialog.FileName : null;
|
|
return (bool)dialog.ShowDialog() ? dialog.FileName : null;
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.DeleteReferenceLayer", "Delete reference layer", "Delete reference layer", CanExecute = "PixiEditor.Layer.ReferenceLayerExists", IconPath = "Trash.png")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.DeleteReferenceLayer", "DELETE_REFERENCE_LAYER", "DELETE_REFERENCE_LAYER", CanExecute = "PixiEditor.Layer.ReferenceLayerExists", IconPath = "Trash.png")]
|
|
public void DeleteReferenceLayer()
|
|
public void DeleteReferenceLayer()
|
|
{
|
|
{
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
@@ -396,7 +396,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
doc.Operations.DeleteReferenceLayer();
|
|
doc.Operations.DeleteReferenceLayer();
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.TransformReferenceLayer", "Transform reference layer", "Transform reference layer", CanExecute = "PixiEditor.Layer.ReferenceLayerExists", IconPath = "crop.png")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.TransformReferenceLayer", "TRANSFORM_REFERENCE_LAYER", "TRANSFORM_REFERENCE_LAYER", CanExecute = "PixiEditor.Layer.ReferenceLayerExists", IconPath = "crop.png")]
|
|
public void TransformReferenceLayer()
|
|
public void TransformReferenceLayer()
|
|
{
|
|
{
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
@@ -406,7 +406,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
doc.Operations.TransformReferenceLayer();
|
|
doc.Operations.TransformReferenceLayer();
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.ToggleReferenceLayerTopMost", "Toggle reference layer position", "Toggle reference layer between highest/lowest", CanExecute = "PixiEditor.Layer.ReferenceLayerExists", IconEvaluator = "PixiEditor.Layer.ToggleReferenceLayerTopMostIcon")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.ToggleReferenceLayerTopMost", "TOGGLE_REFERENCE_LAYER_POS", "TOGGLE_REFERENCE_LAYER_POS_DESCRIPTIVE", CanExecute = "PixiEditor.Layer.ReferenceLayerExists", IconEvaluator = "PixiEditor.Layer.ToggleReferenceLayerTopMostIcon")]
|
|
public void ToggleReferenceLayerTopMost()
|
|
public void ToggleReferenceLayerTopMost()
|
|
{
|
|
{
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
@@ -416,7 +416,7 @@ internal class LayersViewModel : SubViewModel<ViewModelMain>
|
|
doc.ReferenceLayerViewModel.IsTopMost = !doc.ReferenceLayerViewModel.IsTopMost;
|
|
doc.ReferenceLayerViewModel.IsTopMost = !doc.ReferenceLayerViewModel.IsTopMost;
|
|
}
|
|
}
|
|
|
|
|
|
- [Command.Basic("PixiEditor.Layer.ResetReferenceLayerPosition", "Reset reference layer position", "Reset reference layer position", CanExecute = "PixiEditor.Layer.ReferenceLayerExists", IconPath = "Layout.png")]
|
|
|
|
|
|
+ [Command.Basic("PixiEditor.Layer.ResetReferenceLayerPosition", "RESET_REFERENCE_LAYER_POS", "RESET_REFERENCE_LAYER_POS", CanExecute = "PixiEditor.Layer.ReferenceLayerExists", IconPath = "Layout.png")]
|
|
public void ResetReferenceLayerPosition()
|
|
public void ResetReferenceLayerPosition()
|
|
{
|
|
{
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|
|
var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
|