Skip to content

Honor cw break_in setting for keyboard CW keying#2391

Merged
ten9876 merged 1 commit intomainfrom
auto/Honor-cw-breakin-setting-for-keyboard-CW-keying
May 6, 2026
Merged

Honor cw break_in setting for keyboard CW keying#2391
ten9876 merged 1 commit intomainfrom
auto/Honor-cw-breakin-setting-for-keyboard-CW-keying

Conversation

@ten9876
Copy link
Copy Markdown
Owner

@ten9876 ten9876 commented May 6, 2026

Summary

Cherry-picks @jensenpat's CW keyboard + MIDI controls work from PR #2361 onto a clean base, plus three follow-up fixes that came out of testing the cherry-pick locally.

Commits squashed in

  • Add CW keyboard and MIDI controls (Add CW keyboard USB HID and MIDI keying controls #2361) — cherry-pick of jensenpat's third commit only; the netCW timing/trace work from his first two commits is already on main via Fix and trace netCW keying for straight key and iambic CW #2336. The 3-way merge cleanly resolved the m_lastCwPaddle*/m_lastCwMidi* atomic naming overlap by adopting the more descriptive _Paddle* names everywhere — option 2 from the original review.
  • KeyboardMapWidget: fix J tile mapping to Qt::Key_I — pre-existing one-character typo in the on-screen keyboard widget; the J tile was bound to Qt::Key_I, so binding a shortcut to J in the editor selected I instead.
  • MainWindow: don't block CW/Space PTT shortcuts during slider lease — clicking the CW delay slider triggered s_sliderShortcutLeaseActive which blocked the momentary CW key handler and Space PTT for 2+ seconds. Splits the helper: textInputCaptured() for actual text widgets only, shortcutInputCaptured() keeps the slider-lease check for the QShortcut dispatch path.
  • Honor cw break_in setting for keyboard CW keyingRadioModel::sendCwKey and the iambic keyer's onPaddleEvent both wrapped each key in a cw ptt 1...cw ptt 0 envelope. That made break-in OFF a no-op (auto-PTT forced TX anyway) and killed the QSK hang time with break-in ON. Strips the auto-PTT in both paths so the radio's break-in setting decides TX behavior, matching SmartSDR.

Verification

  • Build clean on Linux (RelWithDebInfo).
  • shortcut_manager_test, midi_settings_test, radio_status_ownership_test all pass.
  • Hardware tested by @ten9876 against FLEX-8600 fw 4.1.5: keyboard straight key, MIDI straight key, paddle keys, break-in OFF blocks auto-PTT, break-in ON honors break_in_delay, slider drag no longer freezes CW shortcuts.

Closes #2361.

Co-authored-by: jensenpat [email protected]
Co-authored-by: Codex [email protected]
Co-Authored-By: Claude Opus 4.7 (1M context) [email protected]

- Add CW keyboard and MIDI controls (#2361)
- KeyboardMapWidget: fix J tile mapping to Qt::Key_I
- MainWindow: don't block CW/Space PTT shortcuts during slider lease
- Honor cw break_in setting for keyboard CW keying
@ten9876 ten9876 enabled auto-merge (squash) May 6, 2026 00:23
@ten9876 ten9876 merged commit b4283a9 into main May 6, 2026
5 checks passed
@ten9876 ten9876 deleted the auto/Honor-cw-breakin-setting-for-keyboard-CW-keying branch May 6, 2026 00:48
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.

1 participant