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; SpacingBox.Text = settings.QtcCwFieldSpacing; TimeAgainBox.Text = settings.QtcCwTimeAgain; CallAgainBox.Text = settings.QtcCwCallAgain; NumberAgainBox.Text = settings.QtcCwNumberAgain; TuBox.Text = settings.QtcCwTu; RttySpacingBox.Text = settings.QtcRttySpacing; SendAllHeadingBox.Text = settings.QtcRttySendAllHeading; SendAllEndingBox.Text = settings.QtcRttySendAllEnding; RttyAreYouReadyBox.Text = settings.QtcRttyAreYouReady; RttySendSaveBox.Text = settings.QtcRttySendSave; RttyReadyBox.Text = settings.QtcRttyReady; RttyAllAgainBox.Text = settings.QtcRttyAllAgain; RttyLineAgainBox.Text = settings.QtcRttyLineAgain; RttySaveBox.Text = settings.QtcRttySave; } 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, QtcCwFieldSpacing = SpacingBox.Text ?? "", QtcCwTimeAgain = TimeAgainBox.Text ?? "", QtcCwCallAgain = CallAgainBox.Text ?? "", QtcCwNumberAgain = NumberAgainBox.Text ?? "", QtcCwTu = TuBox.Text ?? "", QtcRttySpacing = RttySpacingBox.Text ?? "", QtcRttySendAllHeading = SendAllHeadingBox.Text ?? "", QtcRttySendAllEnding = SendAllEndingBox.Text ?? "", QtcRttyAreYouReady = RttyAreYouReadyBox.Text ?? "", QtcRttySendSave = RttySendSaveBox.Text ?? "", QtcRttyReady = RttyReadyBox.Text ?? "", QtcRttyAllAgain = RttyAllAgainBox.Text ?? "", QtcRttyLineAgain = RttyLineAgainBox.Text ?? "", QtcRttySave = RttySaveBox.Text ?? "", }); private void OnCancel(object? sender, RoutedEventArgs e) => Close(null); }