Skip to content

Claude/review user comments pz1b m#991

Merged
ea4k merged 6 commits intomasterfrom
claude/review-user-comments-Pz1bM
Apr 24, 2026
Merged

Claude/review user comments pz1b m#991
ea4k merged 6 commits intomasterfrom
claude/review-user-comments-Pz1bM

Conversation

@ea4k
Copy link
Copy Markdown
Owner

@ea4k ea4k commented Apr 24, 2026

No description provided.

claude added 6 commits April 12, 2026 16:23
Adds a "Special Callsigns" section to the World Editor page in Setup,
allowing users to manually map expedition or special callsigns (e.g.
RI1ANY for Antarctica) to the correct DXCC entity when they are missing
from the CTY data.

Changes:
- DataProxy_SQLite: add getSpecialCallsignPairs(), addSpecialCallsign(),
  removeSpecialCallsign() to read/write prefixesofentity rows with '=' prefix
- SetupPageWorldEditor: new QGroupBox with QTableWidget listing existing
  special callsigns, Add button (opens inline dialog with callsign input +
  entity combo), Remove button; calls world->readWorld() after every change
  so the in-memory prefix map is updated immediately

https://claude.ai/code/session_01PxBPBx3EF9nCvnRLaCX4ha
The Add dialog now shows a pre-filled (but disabled) spinbox for each
zone, populated with the entity's default values. Checking the
"Override" checkbox enables the spinbox so the user can set a custom
zone for cases where an expedition operates from a different zone than
the host DXCC (e.g. RI1ANY in Antarctica from zone 38, not the Russian
default).

If a zone override is not checked, -1 is passed to addSpecialCallsign()
which falls back to getCQzFromEntity() / getITUzFromEntity(), preserving
the previous default behaviour.

The table now shows CQ Zone and ITU Zone columns alongside Callsign and
Entity so values are visible at a glance.

https://claude.ai/code/session_01PxBPBx3EF9nCvnRLaCX4ha
The previous approach used a [&] lambda connected to currentIndexChanged
to update the CQ/ITU zone spinboxes when the entity changed. This was
fragile and did not guarantee correct updates in all Qt event-loop
scenarios.

AddSpecialCallsignDialog is now a proper QDialog subclass with Q_OBJECT
and a dedicated slotEntityChanged(int) slot. Whenever the entity combo
selection changes, the slot queries world->getEntityCqz/Ituz() and
updates the spinboxes with the correct defaults for that entity. The
spinboxes remain disabled until the user explicitly checks the
corresponding "Override" checkbox.

SetupPageWorldEditor::slotAddSpecialCallsignClicked is now a thin
wrapper that constructs AddSpecialCallsignDialog and reads its results.

https://claude.ai/code/session_01PxBPBx3EF9nCvnRLaCX4ha
… QSO lifecycle

- Stop normalising entity IDs to < 1000 before DB storage: remove % 1000 in
  MainWindowInputOthers::getQSOData, drop getNormalizedDXCCValue call for
  WSJT-X QSOs, and fix World::selectEntity to return the more specific
  sub-entity (higher) instead of the base (lower)
- Generalise Utilities::isValidDXCC to accept any KLog special entity
  (base > 0 && base < 523) instead of a hardcoded list
- ADIF export: write <DXCC> with the normalised ADIF value (dxcc % 1000) and
  additionally write <APP_KLOG_DXCC> with the full KLog value when dxcc >= 1000
- ADIF import: parse APP_KLOG_DXCC into a new transient QSO::klogDxcc field;
  in FileManager::insertQSO restore the sub-entity ID when it is consistent
  with the standard DXCC and the callsign prefix confirms it

https://claude.ai/code/session_01PxBPBx3EF9nCvnRLaCX4ha
…e DXCC

During ADIF export, query prefixesofentity to check if the callsign prefix
maps to a KLog sub-entity (dxcc >= 1000) whose base (% 1000) matches the
stored dxcc. If so, populate klogDxcc on the QSO before serialising.

toADIFString() now uses klogExport = dxcc (when >= 1000) or klogDxcc (for
old QSOs stored with normalised value) to decide whether to emit
APP_KLOG_DXCC. This means QSOs logged before the storage fix (dxcc=248)
now also export APP_KLOG_DXCC=1248 whenever the callsign confirms Sicily.

https://claude.ai/code/session_01PxBPBx3EF9nCvnRLaCX4ha
Move the inline prefixesofentity query from getADIFFromQSOQuery() into a
new DataProxy_SQLite::getKLogSubEntityForCallsign() method, mirroring the
+1000 loop in World::readCTYCSV(). This centralizes the inverse logic so
other call sites can resolve a KLog sub-entity (e.g. 1248 for Sicily)
from a callsign and its base ARRL DXCC.

https://claude.ai/code/session_01PxBPBx3EF9nCvnRLaCX4ha
@ea4k ea4k merged commit 7ccd200 into master Apr 24, 2026
3 of 8 checks passed
@ea4k ea4k deleted the claude/review-user-comments-Pz1bM branch April 24, 2026 14:08
@sonarqubecloud
Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants