From 7bc6da07806a7887a9b2874bd6ac4e341dc34559 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Tue, 8 Jul 2025 00:58:21 +0100 Subject: [PATCH] [Refactor] Replace SaveFileDialog with StorageProvider for file saving --- RomRepoMgr/ViewModels/MainWindowViewModel.cs | 11 +++++------ RomRepoMgr/ViewModels/SettingsViewModel.cs | 16 ++++++++-------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/RomRepoMgr/ViewModels/MainWindowViewModel.cs b/RomRepoMgr/ViewModels/MainWindowViewModel.cs index fd34bbe..a8ac097 100644 --- a/RomRepoMgr/ViewModels/MainWindowViewModel.cs +++ b/RomRepoMgr/ViewModels/MainWindowViewModel.cs @@ -275,17 +275,16 @@ public class MainWindowViewModel : ViewModelBase { if(SelectedRomSet == null) return; - var dlgSave = new SaveFileDialog + IStorageFile result = await _view.StorageProvider.SaveFilePickerAsync(new FilePickerSaveOptions { - InitialFileName = SelectedRomSet.Filename - }; - - string result = await dlgSave.ShowAsync(_view); + SuggestedFileName = SelectedRomSet.Filename, + SuggestedStartLocation = await _view.StorageProvider.TryGetWellKnownFolderAsync(WellKnownFolder.Documents) + }); if(result == null) return; var dialog = new ExportDat(); - var viewModel = new ExportDatViewModel(dialog, SelectedRomSet.Sha384, result); + var viewModel = new ExportDatViewModel(dialog, SelectedRomSet.Sha384, result.Path.LocalPath); dialog.DataContext = viewModel; _ = dialog.ShowDialog(_view); } diff --git a/RomRepoMgr/ViewModels/SettingsViewModel.cs b/RomRepoMgr/ViewModels/SettingsViewModel.cs index 36218df..e9beadc 100644 --- a/RomRepoMgr/ViewModels/SettingsViewModel.cs +++ b/RomRepoMgr/ViewModels/SettingsViewModel.cs @@ -28,7 +28,6 @@ using System.Collections.Generic; using System.IO; using System.Reactive; using System.Threading.Tasks; -using Avalonia.Controls; using Avalonia.Platform.Storage; using Avalonia.Threading; using Microsoft.EntityFrameworkCore; @@ -216,16 +215,17 @@ public sealed class SettingsViewModel : ViewModelBase async Task ExecuteDatabaseCommandAsync() { - var dlgFile = new SaveFileDialog + IStorageFile resultFile = await _view.StorageProvider.SaveFilePickerAsync(new FilePickerSaveOptions { - InitialFileName = "romrepo.db", - Directory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), - Title = Localization.ChooseDatabaseFile - }; + SuggestedFileName = "romrepo.db", + SuggestedStartLocation = await _view.StorageProvider.TryGetWellKnownFolderAsync(WellKnownFolder.Documents), + Title = Localization.ChooseDatabaseFile, + ShowOverwritePrompt = true + }); - string result = await dlgFile.ShowAsync(_view); + if(resultFile == null) return; - if(result == null) return; + string result = resultFile.Path.LocalPath; if(File.Exists(result)) {