using Avalonia.Controls; using Avalonia.Interactivity; using Nonemm.App.Configuration; namespace Nonemm.App.Dialogs; /// The QTC window's own settings, on its right-click menu as N1MM keeps them on /// the window's Setup tab. public sealed partial class QtcSetupDialog : Window { private readonly Settings settings; public QtcSetupDialog(Settings settings) { this.settings = settings; InitializeComponent(); CountBox.Text = settings.QtcLinesPerSeries.ToString(); SkipReadyBox.IsChecked = settings.QtcSkipReady; SkipConfirmBox.IsChecked = settings.QtcSkipConfirm; HeaderAgainClearsBox.IsChecked = settings.QtcHeaderAgainClears; AgainClearsBox.IsChecked = settings.QtcAgainClearsLine; } private void OnSave(object? sender, RoutedEventArgs e) => Close(settings with { QtcLinesPerSeries = int.TryParse(CountBox.Text, out int count) ? Math.Clamp(count, 1, 10) : settings.QtcLinesPerSeries, QtcSkipReady = SkipReadyBox.IsChecked == true, QtcSkipConfirm = SkipConfirmBox.IsChecked == true, QtcHeaderAgainClears = HeaderAgainClearsBox.IsChecked == true, QtcAgainClearsLine = AgainClearsBox.IsChecked == true, }); private void OnCancel(object? sender, RoutedEventArgs e) => Close(null); }