fix: help names only keys the route sends

This commit is contained in:
Abdessamad Derraz committed 2026-10-26 21:18:30 +01:00
1 parent fad5b10665
commit ae3faec86b
7 files changed
+52 -21

No files matched your search

+12 -3
View File
@@ -12758,7 +12758,7 @@ def _help_lines(state: TuiState) -> list[tuple[str, str]]:
if screen == "installing": if screen == "installing":
return [(names["stop"], "Stop: what is done stays done"), return [(names["stop"], "Stop: what is done stays done"),
*([(names["kill"], "Stop")] if names["kill"] else []), *([(names["kill"], "Stop")] if names["kill"] else []),
*_route_extras(state), ("?, F1", "This help")] *_route_extras(state), *_help_key(state)]
if screen == "path": if screen == "path":
return [(names["enter"], "Use this folder"), ("Backspace", "Delete a character"), return [(names["enter"], "Use this folder"), ("Backspace", "Delete a character"),
("Ctrl-U", "Clear"), (names["esc"], "Back"), ("Ctrl-C", "Quit"), ("Ctrl-U", "Clear"), (names["esc"], "Back"), ("Ctrl-C", "Quit"),
@@ -12786,10 +12786,16 @@ def _help_lines(state: TuiState) -> list[tuple[str, str]]:
keys.append((names["options"], "Options")) keys.append((names["options"], "Options"))
back = "Quit" if len(state.stack) == 1 else "Back" back = "Quit" if len(state.stack) == 1 else "Back"
keys += [(names["back"], back), ("q, Ctrl-C", "Quit"), *kill, *_route_extras(state), keys += [(names["back"], back), ("q, Ctrl-C", "Quit"), *kill, *_route_extras(state),
("?, F1", "This help")] *_help_key(state)]
return keys return keys
def _help_key(state: TuiState) -> list[tuple[str, str]]:
"""? and F1, named only where a keyboard may send them: no pad route
maps a button to either."""
return [("?, F1", "This help")] if state.pad in ("both", "keys") else []
def _primary(state: TuiState) -> str | None: def _primary(state: TuiState) -> str | None:
"""What A does on the row in focus, for the first entry of the bar.""" """What A does on the row in focus, for the first entry of the bar."""
if state.screen in _PAGERS: if state.screen in _PAGERS:
@@ -12805,7 +12811,10 @@ def _primary(state: TuiState) -> str | None:
def _view_help(state: TuiState, width: int, height: int) -> tuple: def _view_help(state: TuiState, width: int, height: int) -> tuple:
keys = _help_lines(state) keys = _help_lines(state)
column = min(22, max(cell_width(key) for key, _what in keys) + 2) column = min(22, max(cell_width(key) for key, _what in keys) + 2)
lines = [f"{_pad(key, column)}{what}" for key, what in keys] # Two spaces at least: a key as wide as the column touched its text
# ("Select Keyboard on or off" on muxterm).
lines = [f"{_pad(key, column)}{what}" if cell_width(key) <= column - 2
else f"{key} {what}" for key, what in keys]
if state.screen in ("setup", "plan", "browse", "folder") and state.dest is not None: if state.screen in ("setup", "plan", "browse", "folder") and state.dest is not None:
lines += ["", f"BIOS folder: {state.dest}"] lines += ["", f"BIOS folder: {state.dest}"]
return ("Keys", _compose(state, width, height, lines, []), ("Any key closes this help",)) return ("Keys", _compose(state, width, height, lines, []), ("Any key closes this help",))
+3 -3
View File
@@ -1140,10 +1140,10 @@
Y, Tab, o Options Y, Tab, o Options
B, Select, Esc Back B, Select, Esc Back
q, Ctrl-C Quit q, Ctrl-C Quit
?, F1 This help
BIOS folder: BIOS folder:
/home/user/.config/retroarch/system /home/user/.config/retroarch/system
Any key closes this help Any key closes this help
=== help 40x15 === help 40x15
RetroBIOS: Keys RetroBIOS: Keys
@@ -1153,13 +1153,13 @@
Y, Tab, o Options Y, Tab, o Options
B, Select, Esc Back B, Select, Esc Back
q, Ctrl-C Quit q, Ctrl-C Quit
?, F1 This help
BIOS folder: BIOS folder:
/home/user/.config/retroarch/system /home/user/.config/retroarch/system
Any key closes this help Any key closes this help
=== help 80x24 === help 80x24
RetroBIOS: Keys RetroBIOS: Keys
@@ -1169,7 +1169,6 @@
Y, Tab, o Options Y, Tab, o Options
B, Select, Esc Back B, Select, Esc Back
q, Ctrl-C Quit q, Ctrl-C Quit
?, F1 This help
BIOS folder: /home/user/.config/retroarch/system BIOS folder: /home/user/.config/retroarch/system
@@ -1185,4 +1184,5 @@
Any key closes this help Any key closes this help
+4 -4
View File
@@ -1141,9 +1141,9 @@
B, Select, Esc Back B, Select, Esc Back
q, Ctrl-C Quit q, Ctrl-C Quit
Select, then Start Quit at once Select, then Start Quit at once
?, F1 This help
BIOS folder:
/home/user/.config/retroarch/system
Any key closes this help Any key closes this help
=== help 40x15 === help 40x15
RetroBIOS: Keys RetroBIOS: Keys
@@ -1154,12 +1154,12 @@
B, Select, Esc Back B, Select, Esc Back
q, Ctrl-C Quit q, Ctrl-C Quit
Select, then Start Quit at once Select, then Start Quit at once
?, F1 This help
BIOS folder: BIOS folder:
/home/user/.config/retroarch/system /home/user/.config/retroarch/system
Any key closes this help Any key closes this help
=== help 80x24 === help 80x24
RetroBIOS: Keys RetroBIOS: Keys
@@ -1170,7 +1170,6 @@
B, Select, Esc Back B, Select, Esc Back
q, Ctrl-C Quit q, Ctrl-C Quit
Select, then Start Quit at once Select, then Start Quit at once
?, F1 This help
BIOS folder: /home/user/.config/retroarch/system BIOS folder: /home/user/.config/retroarch/system
@@ -1185,4 +1184,5 @@
Any key closes this help Any key closes this help
+4 -4
View File
@@ -1141,9 +1141,9 @@
B, Select, Esc Back B, Select, Esc Back
q, Ctrl-C Quit q, Ctrl-C Quit
Select, then Start Quit at once Select, then Start Quit at once
?, F1 This help
BIOS folder:
/home/user/.config/retroarch/system
Any key closes this help Any key closes this help
=== help 40x15 === help 40x15
RetroBIOS: Keys RetroBIOS: Keys
@@ -1154,12 +1154,12 @@
B, Select, Esc Back B, Select, Esc Back
q, Ctrl-C Quit q, Ctrl-C Quit
Select, then Start Quit at once Select, then Start Quit at once
?, F1 This help
BIOS folder: BIOS folder:
/home/user/.config/retroarch/system /home/user/.config/retroarch/system
Any key closes this help Any key closes this help
=== help 80x24 === help 80x24
RetroBIOS: Keys RetroBIOS: Keys
@@ -1170,7 +1170,6 @@
B, Select, Esc Back B, Select, Esc Back
q, Ctrl-C Quit q, Ctrl-C Quit
Select, then Start Quit at once Select, then Start Quit at once
?, F1 This help
BIOS folder: /home/user/.config/retroarch/system BIOS folder: /home/user/.config/retroarch/system
@@ -1185,4 +1184,5 @@
Any key closes this help Any key closes this help
+4 -4
View File
@@ -1141,9 +1141,9 @@
R2, Esc, Backspace Back R2, Esc, Backspace Back
q, Ctrl-C Quit q, Ctrl-C Quit
B Sends no key here B Sends no key here
?, F1 This help
BIOS folder:
/home/user/.config/retroarch/system
Any key closes this help Any key closes this help
=== help 40x15 === help 40x15
RetroBIOS: Keys RetroBIOS: Keys
@@ -1154,12 +1154,12 @@
R2, Esc, Backspace Back R2, Esc, Backspace Back
q, Ctrl-C Quit q, Ctrl-C Quit
B Sends no key here B Sends no key here
?, F1 This help
BIOS folder: BIOS folder:
/home/user/.config/retroarch/system /home/user/.config/retroarch/system
Any key closes this help Any key closes this help
=== help 80x24 === help 80x24
RetroBIOS: Keys RetroBIOS: Keys
@@ -1170,7 +1170,6 @@
R2, Esc, Backspace Back R2, Esc, Backspace Back
q, Ctrl-C Quit q, Ctrl-C Quit
B Sends no key here B Sends no key here
?, F1 This help
BIOS folder: /home/user/.config/retroarch/system BIOS folder: /home/user/.config/retroarch/system
@@ -1185,4 +1184,5 @@
Any key closes this help Any key closes this help
+3 -3
View File
@@ -1142,7 +1142,7 @@
q, Ctrl-C Quit q, Ctrl-C Quit
Select Keyboard on or off Select Keyboard on or off
Menu Close the terminal Menu Close the terminal
?, F1 This help
Any key closes this help Any key closes this help
=== help 40x15 === help 40x15
@@ -1155,11 +1155,11 @@
q, Ctrl-C Quit q, Ctrl-C Quit
Select Keyboard on or off Select Keyboard on or off
Menu Close the terminal Menu Close the terminal
?, F1 This help
BIOS folder: BIOS folder:
/home/user/.config/retroarch/system /home/user/.config/retroarch/system
Any key closes this help Any key closes this help
=== help 80x24 === help 80x24
RetroBIOS: Keys RetroBIOS: Keys
@@ -1171,7 +1171,6 @@
q, Ctrl-C Quit q, Ctrl-C Quit
Select Keyboard on or off Select Keyboard on or off
Menu Close the terminal Menu Close the terminal
?, F1 This help
BIOS folder: /home/user/.config/retroarch/system BIOS folder: /home/user/.config/retroarch/system
@@ -1185,4 +1184,5 @@
Any key closes this help Any key closes this help
+22
View File
@@ -3940,6 +3940,28 @@ class GameDataIsNoFirmwareAlarm(unittest.TestCase):
self.assertIn("Anims.j2a (Jazz Jackrabbit 2)", lines[1]) self.assertIn("Anims.j2a (Jazz Jackrabbit 2)", lines[1])
class TheHelpNamesKeysThatCome(unittest.TestCase):
"""Every route's help listed "?, F1 This help", which no pad sends, and
a key as wide as the column touched its text."""
def test_pad_routes_name_no_help_key(self):
for pad in ROUTES:
with self.subTest(route=pad):
state = checked_state()
state.pad = pad
keys = [key for key, _what in install._help_lines(state)]
self.assertEqual("?, F1" in keys, pad == "keys")
def test_a_wide_key_keeps_two_spaces(self):
state = checked_state()
state.help = True
with mock.patch.object(install, "_help_lines",
return_value=[("A, Start, Enter, Space, x", "Choose"),
("q", "Quit")]):
lines = install._view_help(state, 80, 24)[1]
self.assertTrue(any("A, Start, Enter, Space, x Choose" in line for line in lines))
class NothingFoundIsSaid(unittest.TestCase): class NothingFoundIsSaid(unittest.TestCase):
"""With nothing detected the first screen was the list of 18 setups, """With nothing detected the first screen was the list of 18 setups,
with no line at 40x15 saying nothing was found, which the beginner's with no line at 40x15 saying nothing was found, which the beginner's