Merged
Conversation
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
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



No description provided.