From a47866b6f71c0280c4a01efa05bd4b13ba44b3af Mon Sep 17 00:00:00 2001 From: Robert McRackan Date: Tue, 2 Aug 2022 12:56:52 -0400 Subject: [PATCH] Open file/folder is now cross platform --- Source/AppScaffolding/AppScaffolding.csproj | 2 +- .../AudibleUtilities/AudibleUtilities.csproj | 2 +- Source/DataLayer/DataLayer.csproj | 2 +- Source/FileManager/FileManager.csproj | 2 +- Source/LibationAvalonia/App.axaml.cs | 27 ------------------- .../MessageBoxAlertAdminDialog.axaml.cs | 2 +- .../Dialogs/SettingsDialog.axaml.cs | 2 +- .../MainWindow.ProcessQueue.axaml.cs | 2 +- 8 files changed, 7 insertions(+), 34 deletions(-) diff --git a/Source/AppScaffolding/AppScaffolding.csproj b/Source/AppScaffolding/AppScaffolding.csproj index 30beb2ce..03c01856 100644 --- a/Source/AppScaffolding/AppScaffolding.csproj +++ b/Source/AppScaffolding/AppScaffolding.csproj @@ -2,7 +2,7 @@ net6.0 - 8.3.4.1 + 8.3.5.1 diff --git a/Source/AudibleUtilities/AudibleUtilities.csproj b/Source/AudibleUtilities/AudibleUtilities.csproj index 71bff3f4..82c2b69e 100644 --- a/Source/AudibleUtilities/AudibleUtilities.csproj +++ b/Source/AudibleUtilities/AudibleUtilities.csproj @@ -5,7 +5,7 @@ - + diff --git a/Source/DataLayer/DataLayer.csproj b/Source/DataLayer/DataLayer.csproj index 63ae3f0b..4b903e3d 100644 --- a/Source/DataLayer/DataLayer.csproj +++ b/Source/DataLayer/DataLayer.csproj @@ -10,7 +10,7 @@ - + all diff --git a/Source/FileManager/FileManager.csproj b/Source/FileManager/FileManager.csproj index be54abea..5eb1cbb2 100644 --- a/Source/FileManager/FileManager.csproj +++ b/Source/FileManager/FileManager.csproj @@ -5,7 +5,7 @@ - + diff --git a/Source/LibationAvalonia/App.axaml.cs b/Source/LibationAvalonia/App.axaml.cs index c32d82f4..b4e42ae0 100644 --- a/Source/LibationAvalonia/App.axaml.cs +++ b/Source/LibationAvalonia/App.axaml.cs @@ -29,33 +29,6 @@ namespace LibationAvalonia public static Stream OpenAsset(string assetRelativePath) => AssetLoader.Open(new Uri(AssetUriBase, assetRelativePath)); - - public static bool GoToFile(string path) - => AppScaffolding.LibationScaffolding.IsWindows ? Go.To.File(path) - : GoToFolder(path is null ? string.Empty : Path.GetDirectoryName(path)); - - public static bool GoToFolder(string path) - { - if (AppScaffolding.LibationScaffolding.IsWindows) - return Go.To.Folder(path); - else if (AppScaffolding.LibationScaffolding.IsLinux) - { - var startInfo = new System.Diagnostics.ProcessStartInfo() - { - FileName = "/bin/xdg-open", - Arguments = path is null ? string.Empty : $"\"{path}\"", - UseShellExecute = false, //Import in Linux environments - CreateNoWindow = false, - RedirectStandardOutput = true, - RedirectStandardError = true - }; - System.Diagnostics.Process.Start(startInfo); - return true; - } - //Don't know how to do this for mac yet - else return true; - } - public override void Initialize() { AvaloniaXamlLoader.Load(this); diff --git a/Source/LibationAvalonia/Dialogs/MessageBoxAlertAdminDialog.axaml.cs b/Source/LibationAvalonia/Dialogs/MessageBoxAlertAdminDialog.axaml.cs index b4d85f27..e139605b 100644 --- a/Source/LibationAvalonia/Dialogs/MessageBoxAlertAdminDialog.axaml.cs +++ b/Source/LibationAvalonia/Dialogs/MessageBoxAlertAdminDialog.axaml.cs @@ -52,7 +52,7 @@ namespace LibationAvalonia.Dialogs try { - App.GoToFolder(dir.ShortPathName); + Go.To.Folder(dir.ShortPathName); } catch { diff --git a/Source/LibationAvalonia/Dialogs/SettingsDialog.axaml.cs b/Source/LibationAvalonia/Dialogs/SettingsDialog.axaml.cs index cdf3dd54..0a44dc0b 100644 --- a/Source/LibationAvalonia/Dialogs/SettingsDialog.axaml.cs +++ b/Source/LibationAvalonia/Dialogs/SettingsDialog.axaml.cs @@ -45,7 +45,7 @@ namespace LibationAvalonia.Dialogs public void OpenLogFolderButton_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e) { - App.GoToFolder(((LongPath)Configuration.Instance.LibationFiles).ShortPathName); + Go.To.Folder(((LongPath)Configuration.Instance.LibationFiles).ShortPathName); } public async void EditFolderTemplateButton_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e) diff --git a/Source/LibationAvalonia/Views/MainWindow/MainWindow.ProcessQueue.axaml.cs b/Source/LibationAvalonia/Views/MainWindow/MainWindow.ProcessQueue.axaml.cs index 73151b2c..7b722a96 100644 --- a/Source/LibationAvalonia/Views/MainWindow/MainWindow.ProcessQueue.axaml.cs +++ b/Source/LibationAvalonia/Views/MainWindow/MainWindow.ProcessQueue.axaml.cs @@ -36,7 +36,7 @@ namespace LibationAvalonia.Views // liberated: open explorer to file var filePath = AudibleFileStorage.Audio.GetPath(libraryBook.Book.AudibleProductId); - if (!App.GoToFile(filePath?.ShortPathName)) + if (!Go.To.File(filePath?.ShortPathName)) { var suffix = string.IsNullOrWhiteSpace(filePath) ? "" : $":\r\n{filePath}"; await MessageBox.Show($"File not found" + suffix);