Browse Source

Added open from clipboard to menu

Krzysztof Krysiński 2 months ago
parent
commit
840fa8013b

+ 25 - 5
src/PixiEditor/ViewModels/SubViewModels/ClipboardViewModel.cs

@@ -575,31 +575,51 @@ internal class ClipboardViewModel : SubViewModel<ViewModelMain>
     private void QueueHasImageInClipboard()
     {
         QueueClipboardTask("HasImageInClipboard", ClipboardController.IsImageInClipboard, hasImageInClipboard,
-            x => hasImageInClipboard = x);
+            x =>
+            {
+                hasImageInClipboard = x;
+                CommandController.CanExecuteChanged("PixiEditor.Clipboard.HasImageInClipboard");
+            });
     }
 
     private void QueueCheckCanPasteImage()
     {
         QueueClipboardTask("CheckCanPasteImage", ClipboardController.IsImageInClipboard, canPasteImage,
-            x => canPasteImage = x);
+            x =>
+            {
+                canPasteImage = x;
+                CommandController.CanExecuteChanged("PixiEditor.Clipboard.CanPaste");
+            });
     }
 
     private void QueueFetchTextFromClipboard()
     {
         QueueClipboardTask("FetchTextFromClipboard", ClipboardController.GetTextFromClipboard, lastTextInClipboard,
-            x => lastTextInClipboard = x);
+            x =>
+            {
+                lastTextInClipboard = x;
+                CommandController.CanExecuteChanged("PixiEditor.Clipboard.CanPasteColor");
+            });
     }
 
     private void QueueCheckNodesInClipboard()
     {
         QueueClipboardTask("CheckNodesInClipboard", ClipboardController.AreNodesInClipboard, areNodesInClipboard,
-            x => areNodesInClipboard = x);
+            x =>
+            {
+                areNodesInClipboard = x;
+                CommandController.CanExecuteChanged("PixiEditor.Clipboard.CanPasteNodes");
+            });
     }
 
     private void QueueCheckCelsInClipboard()
     {
         QueueClipboardTask("CheckCelsInClipboard", ClipboardController.AreCelsInClipboard, areCelsInClipboard,
-            x => areCelsInClipboard = x);
+            x =>
+            {
+                areCelsInClipboard = x;
+                CommandController.CanExecuteChanged("PixiEditor.Clipboard.CanPasteCels");
+            });
     }
 
     private void SetHasImageInClipboard()

+ 2 - 0
src/PixiEditor/ViewModels/SubViewModels/FileViewModel.cs

@@ -197,6 +197,8 @@ internal class FileViewModel : SubViewModel<ViewModelMain>
 
     [Command.Basic("PixiEditor.File.OpenFileFromClipboard", "OPEN_FILE_FROM_CLIPBOARD",
         "OPEN_FILE_FROM_CLIPBOARD_DESCRIPTIVE", CanExecute = "PixiEditor.Clipboard.HasImageInClipboard",
+        Icon = PixiPerfectIcons.PasteAsNewLayer,
+        MenuItemPath = "FILE/OPEN_FILE_FROM_CLIPBOARD", MenuItemOrder = 2,
         AnalyticsTrack = true)]
     public void OpenFromClipboard()
     {