diff --git a/Source/LibationAvalonia/App.axaml.cs b/Source/LibationAvalonia/App.axaml.cs index 90a1ea43..aa7e104a 100644 --- a/Source/LibationAvalonia/App.axaml.cs +++ b/Source/LibationAvalonia/App.axaml.cs @@ -17,12 +17,16 @@ namespace LibationAvalonia { public class App : Application { - public static bool IsWindows => PlatformID is PlatformID.Win32NT; + public static readonly bool IsWindows; + public static readonly bool IsLinux; + public static readonly bool IsMacOs; + static App() + { + IsWindows = OperatingSystem.IsWindows(); + IsLinux = OperatingSystem.IsLinux(); + IsMacOs = OperatingSystem.IsMacOS(); + } - //This is trye for both linux and mac. We'll need a way to dintinguis between those two after we get mac to actually run. - public static bool IsUnix => PlatformID is PlatformID.Unix; - - public static readonly PlatformID PlatformID = Environment.OSVersion.Platform; public static IBrush ProcessQueueBookFailedBrush { get; private set; } public static IBrush ProcessQueueBookCompletedBrush { get; private set; } public static IBrush ProcessQueueBookCancelledBrush { get; private set; } @@ -31,20 +35,20 @@ namespace LibationAvalonia public static IAssetLoader AssetLoader { get; private set; } - public static readonly Uri AssetUriBase = new Uri("avares://Libation/Assets/"); + public static readonly Uri AssetUriBase = new("avares://Libation/Assets/"); public static Stream OpenAsset(string assetRelativePath) => AssetLoader.Open(new Uri(AssetUriBase, assetRelativePath)); public static bool GoToFile(string path) - => PlatformID is PlatformID.Win32NT ? Go.To.File(path) + => IsWindows ? Go.To.File(path) : GoToFolder(path is null ? string.Empty : Path.GetDirectoryName(path)); public static bool GoToFolder(string path) { - if (PlatformID is PlatformID.Win32NT) + if (IsWindows) return Go.To.Folder(path); - else + else if (IsLinux) { var startInfo = new System.Diagnostics.ProcessStartInfo() { @@ -58,6 +62,8 @@ namespace LibationAvalonia System.Diagnostics.Process.Start(startInfo); return true; } + //Don't know how to do this for mac yet + else return true; } public override void Initialize() diff --git a/Source/LibationAvalonia/Dialogs/ImageDisplayDialog.axaml.cs b/Source/LibationAvalonia/Dialogs/ImageDisplayDialog.axaml.cs index 5ca1722b..b9c5d5e4 100644 --- a/Source/LibationAvalonia/Dialogs/ImageDisplayDialog.axaml.cs +++ b/Source/LibationAvalonia/Dialogs/ImageDisplayDialog.axaml.cs @@ -51,7 +51,7 @@ namespace LibationAvalonia.Dialogs saveFileDialog.Filters.Add(new FileDialogFilter { Name = "Jpeg", Extensions = new System.Collections.Generic.List() { "jpg" } }); saveFileDialog.InitialFileName = PictureFileName; saveFileDialog.Directory - = App.IsUnix ? null + = !App.IsWindows ? null : Directory.Exists(BookSaveDirectory) ? BookSaveDirectory : Path.GetDirectoryName(BookSaveDirectory); diff --git a/Source/LibationAvalonia/FormSaveExtension.cs b/Source/LibationAvalonia/FormSaveExtension.cs index 5464ec82..3b041e92 100644 --- a/Source/LibationAvalonia/FormSaveExtension.cs +++ b/Source/LibationAvalonia/FormSaveExtension.cs @@ -113,7 +113,7 @@ namespace LibationAvalonia public static void HideMinMaxBtns(this Window form) { - if (Design.IsDesignMode || App.PlatformID is not PlatformID.Win32NT) + if (Design.IsDesignMode || !App.IsWindows) return; var handle = form.PlatformImpl.Handle.Handle; var currentStyle = GetWindowLong(handle, GWL_STYLE); diff --git a/Source/LibationAvalonia/Program.cs b/Source/LibationAvalonia/Program.cs index d762f379..9129ece1 100644 --- a/Source/LibationAvalonia/Program.cs +++ b/Source/LibationAvalonia/Program.cs @@ -32,8 +32,11 @@ namespace LibationAvalonia if (App.IsWindows) AppScaffolding.LibationScaffolding.SetReleaseIdentifier(AppScaffolding.ReleaseIdentifier.WindowsAvalonia); - else if (App.IsUnix) + else if (App.IsLinux) AppScaffolding.LibationScaffolding.SetReleaseIdentifier(AppScaffolding.ReleaseIdentifier.LinuxAvalonia); + else if (App.IsMacOs) + AppScaffolding.LibationScaffolding.SetReleaseIdentifier(AppScaffolding.ReleaseIdentifier.MacOSAvalonia); + else return; if (!App.SetupRequired)