Write what N1MM needs before it will open a log

Checked by opening a log this program wrote in N1MM 1.0.11031. Three things it
rejected:

- a log naming a contest with no row in the Contest table throws "No current
  row" in Contest.FromRow, so the definition row is written whenever a contest
  is opened;
- an empty overlay category is answered with "Invalid Overlay Category:", so an
  entry with no overlay now says "N/A", and the dialog offers N1MM's list;
- the sent exchange omits the report, which is what N1MM's own contest dialog
  asks for.

With those three fixed N1MM opens the log and shows the contacts.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Erik
2026-08-27 11:15:48 +00:00
parent 2834f63c8e
commit d96cbe146b
17 changed files with 196 additions and 15 deletions

View File

@@ -24,7 +24,7 @@
<ComboBox Name="TransmitterBox" Grid.Row="5" Grid.Column="2" HorizontalAlignment="Stretch" />
<TextBlock Grid.Row="6" Text="Overlay" FontSize="11" Opacity="0.7" Margin="0,6,0,0" />
<TextBox Name="OverlayBox" Grid.Row="7" />
<ComboBox Name="OverlayBox" Grid.Row="7" HorizontalAlignment="Stretch" />
<TextBlock Grid.Row="6" Grid.Column="2" Text="Operators" FontSize="11" Opacity="0.7" Margin="0,6,0,0" />
<TextBox Name="OperatorsBox" Grid.Row="7" Grid.Column="2" />
</Grid>

View File

@@ -31,6 +31,11 @@ public sealed partial class ContestSetupDialog : Window
AssistedBox.SelectedIndex = 0;
TransmitterBox.ItemsSource = new[] { "ONE", "TWO", "LIMITED", "UNLIMITED", "SWL" };
TransmitterBox.SelectedIndex = 0;
OverlayBox.ItemsSource = new[]
{
"N/A", "ROOKIE", "BAND-LIMITED", "TB-WIRES", "OVER-50", "HQ", "NOVICE-TECH", "EXPERT",
};
OverlayBox.SelectedIndex = 0;
OperatorsBox.Text = session.Settings.Station.Callsign;
ShowChosen();
}
@@ -67,7 +72,7 @@ public sealed partial class ContestSetupDialog : Window
ModeCategory = Text(ModeBox),
AssistedCategory = Text(AssistedBox),
TransmitterCategory = Text(TransmitterBox),
OverlayCategory = OverlayBox.Text ?? "",
OverlayCategory = Text(OverlayBox),
Operators = OperatorsBox.Text ?? "",
});