Skip to content

Add native shortcut editor with popup capture and immediate saves - #285

Draft
Guffawaffle wants to merge 40 commits into
STFC-Mod:devfrom
Guffawaffle:feature/mod-shortcut-settings
Draft

Guffawaffle wants to merge 40 commits into
STFC-Mod:devfrom
Guffawaffle:feature/mod-shortcut-settings

Conversation

@Guffawaffle

@Guffawaffle Guffawaffle commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

Adds Settings → Mod Settings → Shortcuts, with registered actions grouped by purpose. Add and Change open a capture popup with overlap warnings and Confirm/Use anyway. Escape closes only the popup; focus loss or page departure discards the draft. Input stays owned through key release, and Enter remains bindable while recording.

Remove and Restore save immediately. An amber Undo notice restores the exact previous list unless a newer edit superseded it. Alternative bindings, aliases, comments and unrelated settings are preserved; failures use the shared settings notice. Current documentation reflects popup confirmation and immediate list operations, with no page-level Apply step.

Depends on #269 and corrected #282. Following #313, native settings, runtime persistence, Forbidden Tech and fleet-label installation inherit their independent patch switches and registry ownership. Shortcut bindings and keyboard_layout_mode remain feature configuration. The popup uses the existing frame dispatcher; no additional ScreenManager detour is added. The native adapter supports Windows x64 and macOS, with layout-aware capture on Windows and physical keys on macOS.

Validation: Windows release build, existing shortcut/settings and full persistence fixtures, keyboard mapping/chord fixtures and all example TOMLs pass. Three independent reviews cover the complete candidate. Earlier downstream popup/Undo smoke is historical; exact-candidate native popup, input-release/pooling and macOS runtime qualification remain open. CI starts on publication without waiting for results.

@Guffawaffle Guffawaffle changed the title Add native shortcut editor with automatic action discovery Add native shortcut editor with popup capture and immediate saves Sep 22, 2026
@Guffawaffle
Guffawaffle force-pushed the feature/mod-shortcut-settings branch from 0806e20 to 0d08142 Compare September 28, 2026 00:00
# Conflicts:
#	mods/src/patches/patches.cc
# Conflicts:
#	mods/src/patches/mapkey.cc
#	tests/shortcut_hint_cache.cc
#	xmake.lua
# Conflicts:
#	mods/src/patches/mapkey.cc
#	tests/shortcut_hint_cache.cc
#	xmake.lua
# Conflicts:
#	tests/shortcut_hint_cache.cc
@Guffawaffle

Guffawaffle commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor Author

Hook/feature alignment follow-up for #313

Follow-up to #313: keep hook installation independent of feature enablement, with default-enabled compatibility switches under [patches] and feature checks inside the installed hooks.

This shortcut editor inherits the native-settings/Forbidden Tech/fleet-label installation changes from #282. Bring in the corrected parent rather than keeping a separate copy of the old forced-install logic. Shortcut entries under [shortcuts] and [control].keyboard_layout_mode remain feature configuration, not hook-install switches. This branch depends on both #282 and #269; refresh those dependencies without carrying the galaxy/HUD sibling features into this PR.

Settings cascade (verified from current branch ancestry): #279 → #280; #277 + #280 → #281 → #282; sibling branches from #282 are #285, #293 and #297. #285 additionally depends on #269; #297 additionally depends on #296. Correct the owning parent first, then carry the fix through every dependent branch while preserving each sibling's scope.

Implemented in e69206b. Corrected #282 is merged while retaining #269 keyboard layout and excluding galaxy/HUD sibling scope. Native settings, runtime persistence, FT and fleet installation retain independent patch switches and owners. Docs now describe popup Confirm and immediate Remove/Restore/Undo. Exact Windows build, shortcut/settings/capture, full persistence, keyboard mapping/chord, production dispatch, examples and three semantic lanes passed. CI is queued; native game/layout/Mac qualification remains open.

…ml-editor

# Conflicts:
#	docs/config-save.md
…gs-navigation

# Conflicts:
#	example_community_patch_settings_en.toml
#	mods/src/config.h
#	mods/src/defaultconfig.h
#	mods/src/patches/patches.cc
…ngs-controls

# Conflicts:
#	docs/MOD_SETTINGS_NAVIGATION.md
#	mods/src/config.cc
#	mods/src/config.h
#	mods/src/patches/parts/forbidden_tech_confirmation.cc
#	mods/src/patches/parts/hotkeys.cc
#	mods/src/patches/patches.cc
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