diff --git a/src/App.axaml b/src/App.axaml index f917010..3e63c9d 100644 --- a/src/App.axaml +++ b/src/App.axaml @@ -106,6 +106,9 @@ + + + diff --git a/src/ViewModels/MainViewModel.cs b/src/ViewModels/MainViewModel.cs index d622f0f..a89144f 100644 --- a/src/ViewModels/MainViewModel.cs +++ b/src/ViewModels/MainViewModel.cs @@ -257,6 +257,17 @@ class MainViewModel : BaseViewModel, IFontResolver, ICanCheckShutdown DialogHost.Show(new AboutViewModel()); } + public async Task ShowSettings() + { + var updatedSettings = await DialogHost.Show(new SettingsViewModel(_settings)); + if (updatedSettings != null) + { + _settings = (Settings)updatedSettings; + await _settings.SaveSettingsAsync(); + LogInfo("Saved updated settings!"); + } + } + public void RemoveFile(object f) => RemoveFileImpl((ReportFile)f); public async void RemoveFileImpl(ReportFile file) diff --git a/src/ViewModels/SettingsViewModel.cs b/src/ViewModels/SettingsViewModel.cs new file mode 100644 index 0000000..04e0afa --- /dev/null +++ b/src/ViewModels/SettingsViewModel.cs @@ -0,0 +1,58 @@ +#nullable enable + +using System; +using System.Collections.ObjectModel; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using Avalonia.Platform.Storage; +using Avalonia.Themes.Fluent; +using DialogHostAvalonia; +using ImageMagick; +using MigraDoc.DocumentObjectModel; +using MigraDoc.Rendering; +using PdfSharp.Fonts; +using PdfSharp.Pdf.IO; +using PdfSharp.Snippets.Font; +using MayShow.Interfaces; +using MayShow.Models; +using MayShow.Helpers; + +namespace MayShow.ViewModels; + +class SettingsViewModel: ChangeNotifier +{ + private Settings _previousSettings; + private Settings _settings; + + public SettingsViewModel(Settings settingsToEdit) + { + _previousSettings = settingsToEdit; + _settings = new Settings + { + LastUsedPath = _previousSettings.LastUsedPath, + UseDocnetPFDImageRendering = _previousSettings.UseDocnetPFDImageRendering + }; + } + + public bool UseDocnetPDFImageRendering + { + get => _settings.UseDocnetPFDImageRendering; + set + { + _settings.UseDocnetPFDImageRendering = value; + NotifyPropertyChanged(); + } + } + + public void Cancel() + { + DialogHost.Close("DialogHost", null); + } + + public void Save() + { + DialogHost.Close("DialogHost", _settings); + } +} \ No newline at end of file diff --git a/src/Views/MainView.axaml b/src/Views/MainView.axaml index 3399c18..40be5ec 100644 --- a/src/Views/MainView.axaml +++ b/src/Views/MainView.axaml @@ -12,15 +12,23 @@ x:DataType="vm:MainViewModel"> + + Spacing="2" + Margin="0,4,0,0">