mirror of
https://github.com/claunia/romrepomgr.git
synced 2025-12-16 19:24:51 +00:00
[Refactor] Replace OpenFileDialog with StorageProvider for file selection
This commit is contained in:
@@ -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<IStorageFile> 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);
|
||||
|
||||
@@ -170,20 +170,20 @@ public sealed class SettingsViewModel : ViewModelBase
|
||||
|
||||
async Task ExecuteUnArCommandAsync()
|
||||
{
|
||||
var dlgFile = new OpenFileDialog
|
||||
IReadOnlyList<IStorageFile> 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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user