From f357dad6298b1d0769a441dc13dc785d2867831c Mon Sep 17 00:00:00 2001 From: rouggy Date: Thu, 27 Aug 2026 15:29:01 +0200 Subject: [PATCH] feat(appearance): give the worked-with-this-call dot its own two colours The dot is drawn over all five cell backgrounds, so it cannot borrow one of their colours; it defaults to the theme foreground with a background ring and now takes two overrides of its own, worked and confirmed, alongside the rest of the matrix palette. --- appearance.go | 7 ++++++ changelog.json | 4 +-- frontend/src/components/AppearancePanel.tsx | 6 +++++ frontend/src/components/BandSlotGrid.tsx | 28 +++++++++++++-------- frontend/src/lib/i18n.tsx | 4 +-- frontend/src/lib/matrixColors.ts | 7 +++++- frontend/src/style.css | 7 ++++++ frontend/wailsjs/go/models.ts | 4 +++ 8 files changed, 51 insertions(+), 16 deletions(-) diff --git a/appearance.go b/appearance.go index b2f25ed..2e75d5f 100644 --- a/appearance.go +++ b/appearance.go @@ -174,6 +174,11 @@ type MatrixColors struct { EntityWorked string `json:"entity_worked"` NotWorked string `json:"not_worked"` CurrentEntry string `json:"current_entry"` + // The dot marking a slot already worked with the callsign in hand. It is a + // mark rather than a background, so it needs its own two colours: it is + // drawn on top of all five of the above and must stay legible over each. + MarkWorked string `json:"mark_worked"` + MarkConfirmed string `json:"mark_confirmed"` } // normMatrixColors keeps only plain hex values. Anything else becomes "" — i.e. @@ -196,6 +201,8 @@ func normMatrixColors(c MatrixColors) MatrixColors { EntityWorked: clean(c.EntityWorked), NotWorked: clean(c.NotWorked), CurrentEntry: clean(c.CurrentEntry), + MarkWorked: clean(c.MarkWorked), + MarkConfirmed: clean(c.MarkConfirmed), } } diff --git a/changelog.json b/changelog.json index 4422683..41c27fa 100644 --- a/changelog.json +++ b/changelog.json @@ -4,11 +4,11 @@ "date": "", "en": [ "Each radio carries its own MY_RIG (Settings → CAT), written on every QSO made with it — ahead of the per-band station in Operating conditions, which says what you planned to use rather than which radio is keying. Left empty, nothing changes.", - "Worked-before matrix: a dot in the corner of a cell now means the callsign you are working has already been worked on that slot, whatever colour the entity status gave the cell." + "Worked-before matrix: a dot in the corner of a cell now means the callsign you are working has already been worked on that slot, whatever colour the entity status gave the cell. Its two colours (worked / confirmed with this callsign) are in Appearance with the other matrix colours." ], "fr": [ "Chaque radio porte son propre MY_RIG (Réglages → CAT), inscrit sur chaque QSO fait avec elle — avant la station par bande des Conditions de trafic, qui dit ce qui était prévu et non quelle radio émet. Laissé vide, rien ne change.", - "Matrice des contacts : un point dans le coin d'une case indique que l'indicatif en cours a déjà été contacté sur ce créneau, quelle que soit la couleur donnée par le statut de l'entité." + "Matrice des contacts : un point dans le coin d'une case indique que l'indicatif en cours a déjà été contacté sur ce créneau, quelle que soit la couleur donnée par le statut de l'entité. Ses deux couleurs (contacté / confirmé avec cet indicatif) se règlent dans Apparence avec les autres couleurs de la matrice." ] }, { diff --git a/frontend/src/components/AppearancePanel.tsx b/frontend/src/components/AppearancePanel.tsx index 6cee9e5..1995aa6 100644 --- a/frontend/src/components/AppearancePanel.tsx +++ b/frontend/src/components/AppearancePanel.tsx @@ -127,6 +127,12 @@ function MatrixColorsSection() { + + + + + +