Commit Graph
14 Commits
Author SHA1 Message Date
aiongg ad79cbcf31 keymap: translate shortcut parse errors and give translators whole sentences with placeholders 2026-10-20 15:29:42 +00:00
aiongg fd2386b2ba keymap: hold the set row, table and edit actions while a prompt or the import review is open
Switching sets closes an open prompt, deleting a set reloads only when it was the active one, and
deleting the last set with no built-ins loads no overrides.
2026-10-20 15:10:58 +00:00
aiongg 0039a5c866 keymap: report Changed after a Cancel that undid edits, so apps rebuild their menus 2026-10-20 15:08:46 +00:00
aiongg 2abdcd53ab keymap: give Tab back to focus navigation after the New Shortcut field or Search by key records 2026-10-20 15:07:36 +00:00
aiongg 4674ab7c85 keymap: use US spelling in the shortcuts dialog 2026-10-20 03:28:24 +00:00
aiongg 5e29e70b46 Merge branch 'craft-keymap' into keymap-ui
# Conflicts:
#	crates/keymap/src/egui.rs
2026-10-20 02:42:51 +00:00
aiongg 9b7102e297 keymap: New Set refuses a name that is taken
The set form's New Set replaced a user set of the same name (save_as) or
quietly made the name unique (duplicate). It now refuses a name that
matches a built-in or user set, ignoring case and surrounding spaces, the
way Rename does, and keeps the form open. The check runs before the
prompt to save edits and again after it.
2026-10-20 02:39:59 +00:00
aiongg 86fb06a081 keymap: report Changed after Import when the save prompt changed the set 2026-10-19 20:58:45 +00:00
aiongg 2baaf87ecf keymap: Don't Save before Import reloads the stored set 2026-10-19 13:14:15 +00:00
aiongg d67d96e9bb keymap: shortcuts dialog right-to-left layout, long-label truncation, pseudo-locale test and README 2026-10-19 12:03:23 +00:00
aiongg 94eacba872 keymap: on-screen keyboard pane, fixed-row labels and read-only mode
The keyboard pane (Options::keyboard) draws a US ANSI layout under the
table and detail pane, coloured by who holds each key with the toggled
and held modifiers, lists the clicked key's shortcuts and assigns key and
modifiers to the selected command. Fixed rows always report a label, with
"Now used by" when a command took their key. A read-only dialog has no
set row, keeps Summarize in the footer and closes with shortcuts.close.
2026-10-19 12:03:23 +00:00
aiongg d2b9f91838 keymap: shortcuts dialog sets, import review and summary
Set row with picker, New Set (based on current shortcuts or a set),
Rename, Delete, Save, Revert Set, Export, Import and Summarize; actions
that do not fit go into a More menu. The foreign import review lists
what will change, suggestions to pick, unmatched, unreadable,
approximated and matched-without-change entries, then the report of
skipped, taken and failed changes with Copy Report. ui::summary writes
the shortcut summary as HTML and plain text.
2026-10-19 12:03:23 +00:00
aiongg 39f343c47b keymap: draw the shortcuts dialog: table, detail pane, conflict bar and footer
- view.rs: header with Show (dropdown or tabs), Filter and Search with search
  by key; table and detail pane in a resizable split, the detail pane below
  the table under 720 pt; virtual rows with chips, + and the restore button;
  detail pane with current shortcuts, New Shortcut, typed entry, Context,
  Assign, Use Default and Clear; prompts, conflict bar, messages, clash,
  shadow and problem lines; Undo, Redo, Reset All, Cancel and OK.
- Escape, Enter, Undo and Redo keys when idle; table keys (arrows, Home,
  End, Enter records, Delete removes); focus locks while recording.
- Accessibility labels for every control, row selection, and on_widget
  automation ids.
- style.rs: DialogStyle and the icon-button and divider styles.
- show() sizes the window to the screen; closing it is Cancel.
- tests/ui_dialog.rs: recording, conflicts, search, areas, display, labels,
  table keys, small windows, RTL. tests/ui_snapshot.rs (feature snapshot)
  writes PNGs when CRAFT_KEYMAP_SNAPSHOT_DIR is set.
2026-10-19 12:03:23 +00:00
aiongg b9bd4119cc keymap: shortcuts dialog model behind the ui feature
DialogState with every dialog action as a call on EditSession, Recorder,
editor::holders and Profiles; the table rows (areas from paths, kind and
scope, filters, search by label, translation or chord, grouping, sorting,
a row cache); key capture while recording, including clipboard events,
which removes the events it takes; the Text trait, I18nText and the list
of strings the dialog looks up. Drawing comes separately.
2026-10-19 12:03:23 +00:00