feat: persistent Ctrl+wheel zoom, saved award-column widths, F9 + hide-empty CW macros
- Zoom: our own Ctrl+wheel zoom (CSS zoom on the root, 50–250%), persisted in localStorage and restored at startup; Ctrl+0 resets. Replaces the non-persistent native WebView2 zoom. The freq-digit wheel now ignores Ctrl so it passes through to zoom. - Award column widths: they were stripped from AG Grid's saved column state (that strip fixes a visibility desync) which also dropped their width. Now persisted separately per award code (localStorage + portable DB copy) and re-applied on rebuild/reopen. - CW keyer widget: macros padded to 9 (F1–F9 slot) and empty macros hidden like the voice keyer, with the F-number kept tied to the real macro index so the F-key shortcuts still line up. New QRZ? default for F9.
This commit is contained in:
@@ -230,9 +230,14 @@ export function WinkeyerPanel({
|
||||
{autoCall && <span className="text-[10px] text-warning/80">{t('wkp.loopHint')}</span>}
|
||||
</div>
|
||||
|
||||
{/* Macro buttons F1… — single-line (F-key + label) to keep the panel short. */}
|
||||
{/* Macro buttons F1… — single-line (F-key + label) to keep the panel short.
|
||||
Empty macros (no label AND no text) are hidden, like the voice keyer;
|
||||
the F-number stays tied to the macro's real index so shortcuts match. */}
|
||||
<div className="grid grid-cols-3 gap-1">
|
||||
{macros.map((m, i) => (
|
||||
{macros
|
||||
.map((m, i) => ({ m, i }))
|
||||
.filter(({ m }) => `${m.label ?? ''}${m.text ?? ''}`.trim() !== '')
|
||||
.map(({ m, i }) => (
|
||||
<button
|
||||
key={i}
|
||||
type="button"
|
||||
|
||||
Reference in New Issue
Block a user