Skip Run QSOs on the bandmap and refocus the callsign box after Alt+W

A QSO logged in Run mode is no longer added to the bandmap as a local
spot, including when recent contacts are re-spotted at startup.

Releasing Alt moves focus to the menu bar. Alt+W now sets a flag, and
the Alt key-up handler puts focus back on the callsign box.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-24 13:30:12 +00:00
co-authored by Claude Sonnet 5.5
parent d22787fb66
commit 209c557112
2 changed files with 21 additions and 3 deletions
+4 -3
View File
@@ -326,8 +326,9 @@ public sealed partial class AppSession : IDisposable
Logging.Changed += (_, _) => Changed?.Invoke(this, EventArgs.Empty);
Logging.Logged += (_, qso) =>
{
// a WAE QTC row is traffic about a station, not a station on the air
if (contest.IsContact(qso))
// a WAE QTC row is traffic about a station, not a station on the air;
// a Run QSO is a station that called us, so it is not a spot to work
if (contest.IsContact(qso) && !qso.IsRunQso)
{
Bandmap.Add(new Spot(qso.Call, qso.Frequency, qso.TimestampUtc, SpotSource.Log));
}
@@ -696,7 +697,7 @@ public sealed partial class AppSession : IDisposable
DateTime since = DateTime.UtcNow - TimeSpan.FromMinutes(Settings.RecentContactSpotMinutes);
HashSet<(string, Band?)> held = [.. Bandmap.All().Select(s => (s.Call.Text, s.Band))];
List<Spot> spots = [];
foreach (Qso qso in contacts.Where(q => q.TimestampUtc >= since && Logging!.Contest.IsContact(q)))
foreach (Qso qso in contacts.Where(q => q.TimestampUtc >= since && !q.IsRunQso && Logging!.Contest.IsContact(q)))
{
Spot spot = new(qso.Call, qso.Frequency, qso.TimestampUtc, SpotSource.Log);
if (held.Add((spot.Call.Text, spot.Band)))