Krzysztof Krysiński пре 4 месеци
родитељ
комит
c1b9561b48

+ 7 - 1
src/PixiEditor/ViewModels/Document/DocumentManagerViewModel.cs

@@ -19,7 +19,10 @@ namespace PixiEditor.ViewModels.Document;
 internal class DocumentManagerViewModel : SubViewModel<ViewModelMain>, IDocumentManagerHandler
 {
     public ObservableCollection<DocumentViewModel> Documents { get; } = new ObservableCollection<DocumentViewModel>();
-    public ObservableCollection<LazyDocumentViewModel> LazyDocuments { get; } = new ObservableCollection<LazyDocumentViewModel>();
+
+    public ObservableCollection<LazyDocumentViewModel> LazyDocuments { get; } =
+        new ObservableCollection<LazyDocumentViewModel>();
+
     public event EventHandler<DocumentChangedEventArgs>? ActiveDocumentChanged;
 
     private DocumentViewModel? activeDocument;
@@ -274,6 +277,9 @@ internal class DocumentManagerViewModel : SubViewModel<ViewModelMain>, IDocument
     [Command.Internal("PixiEditor.Document.LoadLazyDocument")]
     public void LoadLazyDocument(LazyDocumentViewModel lazyDocument)
     {
+        if (lazyDocument == null)
+            return;
+
         Owner.FileSubViewModel.LoadLazyDocument(lazyDocument);
         LazyDocuments.Remove(lazyDocument);
         Owner.WindowSubViewModel.CloseViewportForLazyDocument(lazyDocument);

+ 4 - 1
src/PixiEditor/ViewModels/SubViewModels/FileViewModel.cs

@@ -150,7 +150,7 @@ internal class FileViewModel : SubViewModel<ViewModelMain>
         }
         else if (!args.Contains("--crash") && !args.Contains("--openedInExisting"))
         {
-            if(preferences.GetLocalPreference("OnboardingShown", false) == false)
+            if (preferences.GetLocalPreference("OnboardingShown", false) == false)
             {
                 preferences.UpdateLocalPreference("OnboardingShown", true);
                 Owner.WindowSubViewModel.OpenOnboardingWindow();
@@ -902,6 +902,9 @@ internal class FileViewModel : SubViewModel<ViewModelMain>
 
     public void LoadLazyDocument(LazyDocumentViewModel lazyDocument)
     {
+        if (lazyDocument == null || lazyDocument.Path == null)
+            return;
+
         var document = OpenFromPath(lazyDocument.Path, lazyDocument.AssociatePath);
 
         if (document is null)

+ 3 - 0
src/PixiEditor/ViewModels/SubViewModels/WindowViewModel.cs

@@ -206,6 +206,9 @@ internal class WindowViewModel : SubViewModel<ViewModelMain>, IWindowHandler
 
     public void CloseViewportForLazyDocument(LazyDocumentViewModel lazyDoc)
     {
+        if (lazyDoc is null)
+            return;
+
         var viewport = LazyViewports.FirstOrDefault(vp => vp.LazyDocument == lazyDoc);
         if (viewport is not null)
         {