From 18946415549a90266aaca24cdfd4af86ddcba985 Mon Sep 17 00:00:00 2001 From: Not Officer Date: Sat, 24 Jul 2021 23:49:06 +0200 Subject: [PATCH] refactoring --- FModel/ViewModels/TabControlViewModel.cs | 48 +++++++++++++----------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/FModel/ViewModels/TabControlViewModel.cs b/FModel/ViewModels/TabControlViewModel.cs index f8bfc006..71018a9e 100644 --- a/FModel/ViewModels/TabControlViewModel.cs +++ b/FModel/ViewModels/TabControlViewModel.cs @@ -1,5 +1,18 @@ -using FModel.Framework; +using FModel.Extensions; +using FModel.Framework; +using FModel.Settings; using FModel.ViewModels.Commands; +using FModel.Views.Resources.Controls; + +using ICSharpCode.AvalonEdit.Document; +using ICSharpCode.AvalonEdit.Highlighting; + +using Microsoft.Win32; + +using Serilog; + +using SkiaSharp; + using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; @@ -7,14 +20,6 @@ using System.Linq; using System.Windows; using System.Windows.Media; using System.Windows.Media.Imaging; -using FModel.Extensions; -using FModel.Settings; -using FModel.Views.Resources.Controls; -using ICSharpCode.AvalonEdit.Document; -using ICSharpCode.AvalonEdit.Highlighting; -using Microsoft.Win32; -using Serilog; -using SkiaSharp; namespace FModel.ViewModels { @@ -187,8 +192,8 @@ namespace FModel.ViewModels InitialDirectory = Path.Combine(UserSettings.Default.OutputDirectory, "Saves"), Filter = "JSON Files (*.json)|*.json|INI Files (*.ini)|*.ini|XML Files (*.xml)|*.xml|All Files (*.*)|*.*" }; - - if (!(bool) saveFileDialog.ShowDialog()) return; + var result = saveFileDialog.ShowDialog(); + if (!result.HasValue || !result.Value) return; directory = saveFileDialog.FileName; } else @@ -202,7 +207,7 @@ namespace FModel.ViewModels public void SetImage(SKImage img) { - using var data = img.Encode(); + using var data = img.Encode(SKEncodedImageFormat.Png, 100); using var stream = new MemoryStream(ImageBuffer = data.ToArray(), false); var image = new BitmapImage(); image.BeginInit(); @@ -221,7 +226,7 @@ namespace FModel.ViewModels if (!HasImage) return; var fileName = Path.ChangeExtension(Header, ".png"); var directory = Path.Combine(UserSettings.Default.OutputDirectory, "Textures", - UserSettings.Default.KeepDirectoryStructure == EEnabledDisabled.Enabled ? Directory : "", fileName).Replace('\\', '/'); + UserSettings.Default.KeepDirectoryStructure == EEnabledDisabled.Enabled ? Directory : "", fileName!).Replace('\\', '/'); if (!autoSave) { @@ -232,8 +237,8 @@ namespace FModel.ViewModels InitialDirectory = Path.Combine(UserSettings.Default.OutputDirectory, "Textures"), Filter = "PNG Files (*.png)|*.png|All Files (*.*)|*.*" }; - - if (!(bool) saveFileDialog.ShowDialog()) return; + var result = saveFileDialog.ShowDialog(); + if (!result.HasValue || !result.Value) return; directory = saveFileDialog.FileName; } else @@ -241,14 +246,15 @@ namespace FModel.ViewModels System.IO.Directory.CreateDirectory(directory.SubstringBeforeLast('/')); } - using var fileStream = new FileStream(directory, FileMode.Create); - var encoder = new PngBitmapEncoder(); - encoder.Frames.Add(BitmapFrame.Create(Image)); - encoder.Save(fileStream); + using (var fs = new FileStream(directory, FileMode.Create, FileAccess.Write, FileShare.Read)) + { + fs.Write(ImageBuffer, 0, ImageBuffer.Length); + } + SaveCheck(directory, fileName); } - private void SaveCheck(string path, string fileName) + private static void SaveCheck(string path, string fileName) { if (File.Exists(path)) { @@ -343,7 +349,7 @@ namespace FModel.ViewModels }); } - private IEnumerable EnumerateTabs() + private static IEnumerable EnumerateTabs() { yield return new TabItem("New Tab", string.Empty); }