Skip to content

feat: Keyboard shortcuts reference dialog #153

@MaximumTrainer

Description

@MaximumTrainer

Summary

Add an in-app Keyboard Shortcuts dialog listing all keyboard bindings available in the workout player, main window, and workout creator, accessible from the Help menu and via ? key.

Motivation

Keyboard shortcuts for space (pause), arrow keys (interval skip), +/- (difficulty), L (lap), and Esc (quit) exist but are undiscoverable. Users unaware of these shortcuts miss significant productivity gains during workouts.

Acceptance Criteria

  • A Keyboard Shortcuts action in the Help menu opens a non-modal dialog
  • The ? key opens the dialog from any context (main window, workout player, workout creator)
  • The dialog is organised into sections: Workout Player, Workout Creator, Main Window
  • Each row shows the key combination and its action description
  • All currently-implemented shortcuts are listed (at minimum: Space, →, ←, +, -, L, Esc, F11)
  • The dialog is generated from a central ShortcutRegistry data structure (single source of truth) rather than hard-coded UI text, ensuring the dialog and actual bindings stay in sync
  • Works on all platforms including WASM (no native menu bar required; accessible via toolbar button as fallback)
  • Unit test verifies that every shortcut in ShortcutRegistry maps to a real QShortcut or keyPressEvent handler

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions