diff --git a/src/Nonemm.App/AppSession.cs b/src/Nonemm.App/AppSession.cs index f79d150..4a14aea 100644 --- a/src/Nonemm.App/AppSession.cs +++ b/src/Nonemm.App/AppSession.cs @@ -19,7 +19,7 @@ public sealed class AppSession : IDisposable { private LogStore? store; private readonly List radios = []; - private readonly List positions = []; + private readonly List positions = []; private int activeRadio; private ClusterClient? cluster; private StationNetwork? network; @@ -88,15 +88,15 @@ public sealed class AppSession : IDisposable /// The radio the operator is not on, or null at a one-radio station. The /// message macros that pass a station to the other band need it. - public RadioPosition? Other(RadioPosition position) => + public OperatingPosition? Other(OperatingPosition position) => positions.FirstOrDefault(p => p.RadioNumber != position.RadioNumber); /// One per radio, in radio-number order. There is always at least one, so /// the program works with no radio connected. - public IReadOnlyList Positions => positions; + public IReadOnlyList Positions => positions; /// The radio the operator is on. - public RadioPosition? Position => + public OperatingPosition? Position => activeRadio < positions.Count ? positions[activeRadio] : null; public CheckWindowSources? Check { get; private set; } @@ -185,7 +185,7 @@ public sealed class AppSession : IDisposable positions.Clear(); for (int number = 1; number <= PositionCount; number++) { - positions.Add(new RadioPosition(Logging, number)); + positions.Add(new OperatingPosition(Logging, number)); } activeRadio = Math.Min(activeRadio, positions.Count - 1); Logging.Changed += (_, _) => Changed?.Invoke(this, EventArgs.Empty); @@ -370,7 +370,7 @@ public sealed class AppSession : IDisposable /// alternating CQ; the operator's own F1 goes through the entry window. private async Task CallCqOnAsync(int radioNumber) { - RadioPosition position = positions.FirstOrDefault(p => p.RadioNumber == radioNumber) + OperatingPosition position = positions.FirstOrDefault(p => p.RadioNumber == radioNumber) ?? throw new InvalidOperationException($"there is no radio {radioNumber}"); if (keyer is null) { @@ -438,7 +438,7 @@ public sealed class AppSession : IDisposable /// but it must not drag the entry window off the contact being worked. private void RadioMoved(Radio moved, RadioState state) { - RadioPosition? position = positions.FirstOrDefault(p => p.RadioNumber == moved.Number); + OperatingPosition? position = positions.FirstOrDefault(p => p.RadioNumber == moved.Number); if (position is null) { return; diff --git a/src/Nonemm.App/Dialogs/EditContactDialog.axaml b/src/Nonemm.App/Dialogs/EditContactDialog.axaml index d41fdd6..cfdc625 100644 --- a/src/Nonemm.App/Dialogs/EditContactDialog.axaml +++ b/src/Nonemm.App/Dialogs/EditContactDialog.axaml @@ -5,9 +5,9 @@ WindowStartupLocation="CenterOwner" CanResize="False"> -