diff --git a/RomRepoMgr/ViewModels/MainWindowViewModel.cs b/RomRepoMgr/ViewModels/MainWindowViewModel.cs index 72bdf3e..fd34bbe 100644 --- a/RomRepoMgr/ViewModels/MainWindowViewModel.cs +++ b/RomRepoMgr/ViewModels/MainWindowViewModel.cs @@ -157,30 +157,34 @@ public class MainWindowViewModel : ViewModelBase async Task ExecuteImportDatCommandAsync() { - var dlgOpen = new OpenFileDialog + var datFileType = new FilePickerFileType(Localization.DatFilesDialogLabel) { - AllowMultiple = false, - Title = Localization.ImportDatFileDialogTitle + Patterns = new[] + { + "*.dat", "*.xml" + }, + AppleUniformTypeIdentifiers = new[] + { + "public.xml", "public.json" + }, + MimeTypes = new[] + { + "application/xml", "text/*" + } }; - dlgOpen.Filters.Add(new FileDialogFilter + IReadOnlyList result = await _view.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions { - Extensions = ["dat", "xml"], - Name = Localization.DatFilesDialogLabel + Title = Localization.ImportDatFileDialogTitle, + AllowMultiple = false, + SuggestedStartLocation = await _view.StorageProvider.TryGetWellKnownFolderAsync(WellKnownFolder.Documents), + FileTypeFilter = [datFileType, FilePickerFileTypes.All] }); - dlgOpen.Filters.Add(new FileDialogFilter - { - Extensions = ["*"], - Name = Localization.AllFilesDialogLabel - }); - - string[] result = await dlgOpen.ShowAsync(_view); - - if(result?.Length != 1) return; + if(result.Count != 1) return; var dialog = new ImportDat(); - var importDatViewModel = new ImportDatViewModel(dialog, result[0]); + var importDatViewModel = new ImportDatViewModel(dialog, result[0].Path.LocalPath); importDatViewModel.RomSetAdded += ImportDatViewModelOnRomSetAdded; dialog.DataContext = importDatViewModel; _ = dialog.ShowDialog(_view); diff --git a/RomRepoMgr/ViewModels/SettingsViewModel.cs b/RomRepoMgr/ViewModels/SettingsViewModel.cs index f77e579..36218df 100644 --- a/RomRepoMgr/ViewModels/SettingsViewModel.cs +++ b/RomRepoMgr/ViewModels/SettingsViewModel.cs @@ -170,20 +170,20 @@ public sealed class SettingsViewModel : ViewModelBase async Task ExecuteUnArCommandAsync() { - var dlgFile = new OpenFileDialog + IReadOnlyList result = await _view.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions { Title = Localization.ChooseUnArExecutable, - AllowMultiple = false - }; + AllowMultiple = false, + SuggestedStartLocation = + !string.IsNullOrWhiteSpace(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)) + ? await _view.StorageProvider.TryGetFolderFromPathAsync(Environment.GetFolderPath(Environment + .SpecialFolder.ProgramFiles)) + : await _view.StorageProvider.TryGetWellKnownFolderAsync(WellKnownFolder.Desktop) + }); - if(!string.IsNullOrWhiteSpace(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles))) - dlgFile.Directory = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); + if(result.Count != 1) return; - string[] result = await dlgFile.ShowAsync(_view); - - if(result?.Length != 1) return; - - UnArPath = result[0]; + UnArPath = result[0].Path.LocalPath; CheckUnAr(); }