Keep the Check window's lists and columns between key presses
Tracing key presses with a busy feed showed the Check window rebuilding the distinct call lists of the log, the call history and every spot, and all five columns of controls, on each press. - ContestLog.Revision goes up with every change to the contacts. The Check sources keep each call list until its source changes. - The Check window builds a column again only when what it shows differs. UI thread time while typing with eight windows open went from 14.6% to 9.3%. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -50,6 +50,10 @@ public sealed class ContestLog
|
||||
|
||||
public Contest Contest => contest;
|
||||
|
||||
/// Goes up with every change to the contacts, so something worked out
|
||||
/// from the log can be kept until this changes.
|
||||
public int Revision { get; private set; }
|
||||
|
||||
public IReadOnlyList<Qso> Qsos => qsos;
|
||||
|
||||
/// The contacts alone. In WAE the log also holds QTC traffic, and a QTC
|
||||
@@ -123,6 +127,7 @@ public sealed class ContestLog
|
||||
Qso scored = ApplyVerdict(qso, verdict);
|
||||
qsos.Add(scored);
|
||||
Index(scored, verdict);
|
||||
Revision++;
|
||||
return scored;
|
||||
}
|
||||
}
|
||||
@@ -342,6 +347,7 @@ public sealed class ContestLog
|
||||
|
||||
private void Rebuild()
|
||||
{
|
||||
Revision++;
|
||||
workedKeys.Clear();
|
||||
trafficWith.Clear();
|
||||
claimedMultipliers.Clear();
|
||||
|
||||
Reference in New Issue
Block a user