ソースを参照

Fixed recently opened

CPKreuz 4 年 前
コミット
35987de077

+ 4 - 0
PixiEditor/Helpers/SDKHelper.cs

@@ -29,6 +29,10 @@ namespace PixiEditor.Helpers
                 return GetCurrentManager().Parsers.CreateImageParser(extension, stream);
             }
 
+            public static bool HasDocumentParser(string extension) => GetCurrentManager().Parsers.SupportedDocumentExtensions.Contains(extension);
+
+            public static bool HasImageParser(string extension) => GetCurrentManager().Parsers.SupportedImageExtensions.Contains(extension);
+
             public static string GetFileFilter()
             {
                 FileFilterBuilder builder = new FileFilterBuilder();

+ 5 - 9
PixiEditor/Models/DataHolders/RecentlyOpenedDocument.cs

@@ -70,13 +70,13 @@ namespace PixiEditor.Models.DataHolders
 
         private WriteableBitmap LoadPreviewBitmap()
         {
-            if (FileExtension == ".pixi")
+            if (SDKHelper.FileParsers.HasDocumentParser(FileExtension))
             {
-                SerializableDocument serializableDocument = null;
+                SerializableDocument serializableDocument;
 
                 try
                 {
-                    serializableDocument = PixiParser.Deserialize(filePath);
+                    serializableDocument = Importer.ImportSerializeDocument(filePath);
                 }
                 catch
                 {
@@ -86,20 +86,16 @@ namespace PixiEditor.Models.DataHolders
 
                 return BitmapUtils.GeneratePreviewBitmap(serializableDocument.Layers, serializableDocument.Width, serializableDocument.Height, 80, 50);
             }
-            else if (FileExtension == ".png" || FileExtension == ".jpg" || FileExtension == ".jpeg")
+            else if (SDKHelper.FileParsers.HasImageParser(FileExtension))
             {
-                WriteableBitmap bitmap = null;
-
                 try
                 {
-                    bitmap = Importer.ImportImage(FilePath);
+                    return Importer.ImportImage(FilePath);
                 }
                 catch
                 {
                     corrupt = true;
                 }
-
-                return bitmap;
             }
 
             return null;

+ 10 - 3
PixiEditor/Models/IO/Importer.cs

@@ -49,14 +49,13 @@ namespace PixiEditor.Models.IO
             }
         }
 
-        public static Document ImportDocument(string path)
+        public static SerializableDocument ImportSerializeDocument(string path)
         {
             FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read);
 
             try
             {
-                Document document = SDKHelper.FileParsers.CreateDocumentParser(Path.GetExtension(path), stream).Parse().ToDocument();
-                document.DocumentFilePath = path;
+                var document = SDKHelper.FileParsers.CreateDocumentParser(Path.GetExtension(path), stream).Parse();
 
                 return document;
             }
@@ -66,6 +65,14 @@ namespace PixiEditor.Models.IO
             }
         }
 
+        public static Document ImportDocument(string path)
+        {
+            Document document = ImportSerializeDocument(path).ToDocument();
+            document.DocumentFilePath = path;
+
+            return document;
+        }
+
         public static bool IsSupportedFile(string path)
         {
             return SDKHelper.GetCurrentManager().Parsers.SupportedExtensions.Contains(Path.GetExtension(path));