Avoid using generics with EditMenu (#3415)
This is a follow-up to commit 0de90bd55.
This commit is contained in:
parent
437bb9c439
commit
e8fd1de006
|
|
@ -509,7 +509,7 @@ class PartitioningList(ListManager[DiskSegment]):
|
||||||
|
|
||||||
title = str(_('Size (default: {}): ')).format(max_size.format_highest())
|
title = str(_('Size (default: {}): ')).format(max_size.format_highest())
|
||||||
|
|
||||||
result = EditMenu[str](
|
result = EditMenu(
|
||||||
title,
|
title,
|
||||||
header=f'{prompt}\b',
|
header=f'{prompt}\b',
|
||||||
allow_skip=True,
|
allow_skip=True,
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ class SubvolumeMenu(ListManager[SubvolumeModification]):
|
||||||
return str(selection.name)
|
return str(selection.name)
|
||||||
|
|
||||||
def _add_subvolume(self, preset: SubvolumeModification | None = None) -> SubvolumeModification | None:
|
def _add_subvolume(self, preset: SubvolumeModification | None = None) -> SubvolumeModification | None:
|
||||||
result = EditMenu[str](
|
result = EditMenu(
|
||||||
str(_('Subvolume name')),
|
str(_('Subvolume name')),
|
||||||
alignment=Alignment.CENTER,
|
alignment=Alignment.CENTER,
|
||||||
allow_skip=True,
|
allow_skip=True,
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ def ask_ntp(preset: bool = True) -> bool:
|
||||||
|
|
||||||
|
|
||||||
def ask_hostname(preset: str | None = None) -> str | None:
|
def ask_hostname(preset: str | None = None) -> str | None:
|
||||||
result = EditMenu[str](
|
result = EditMenu(
|
||||||
str(_('Hostname')),
|
str(_('Hostname')),
|
||||||
alignment=Alignment.CENTER,
|
alignment=Alignment.CENTER,
|
||||||
allow_skip=True,
|
allow_skip=True,
|
||||||
|
|
@ -255,7 +255,7 @@ def add_number_of_parallel_downloads(preset: int | None = None) -> int | None:
|
||||||
|
|
||||||
return str(_('Invalid download number'))
|
return str(_('Invalid download number'))
|
||||||
|
|
||||||
result = EditMenu[str](
|
result = EditMenu(
|
||||||
str(_('Number downloads')),
|
str(_('Number downloads')),
|
||||||
header=header,
|
header=header,
|
||||||
allow_skip=True,
|
allow_skip=True,
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ class UserList(ListManager[User]):
|
||||||
return str(_("The username you entered is invalid"))
|
return str(_("The username you entered is invalid"))
|
||||||
|
|
||||||
def _add_user(self) -> User | None:
|
def _add_user(self) -> User | None:
|
||||||
editResult = EditMenu[str](
|
editResult = EditMenu(
|
||||||
str(_('Username')),
|
str(_('Username')),
|
||||||
allow_skip=True,
|
allow_skip=True,
|
||||||
validator=self._check_for_correct_username
|
validator=self._check_for_correct_username
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ class ManualNetworkConfig(ListManager[Nic]):
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return str(_('You need to enter a valid IP in IP-config mode'))
|
return str(_('You need to enter a valid IP in IP-config mode'))
|
||||||
|
|
||||||
result = EditMenu[str](
|
result = EditMenu(
|
||||||
title,
|
title,
|
||||||
header=header,
|
header=header,
|
||||||
validator=validator,
|
validator=validator,
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ class CustomMirrorRepositoriesList(ListManager[CustomRepository]):
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def _add_custom_repository(self, preset: CustomRepository | None = None) -> CustomRepository | None:
|
def _add_custom_repository(self, preset: CustomRepository | None = None) -> CustomRepository | None:
|
||||||
edit_result = EditMenu[str](
|
edit_result = EditMenu(
|
||||||
str(_('Repository name')),
|
str(_('Repository name')),
|
||||||
alignment=Alignment.CENTER,
|
alignment=Alignment.CENTER,
|
||||||
allow_skip=True,
|
allow_skip=True,
|
||||||
|
|
@ -91,7 +91,7 @@ class CustomMirrorRepositoriesList(ListManager[CustomRepository]):
|
||||||
|
|
||||||
header = f'{_("Name")}: {name}'
|
header = f'{_("Name")}: {name}'
|
||||||
|
|
||||||
edit_result = EditMenu[str](
|
edit_result = EditMenu(
|
||||||
str(_('Url')),
|
str(_('Url')),
|
||||||
header=header,
|
header=header,
|
||||||
alignment=Alignment.CENTER,
|
alignment=Alignment.CENTER,
|
||||||
|
|
@ -196,7 +196,7 @@ class CustomMirrorServersList(ListManager[CustomServer]):
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def _add_custom_server(self, preset: CustomServer | None = None) -> CustomServer | None:
|
def _add_custom_server(self, preset: CustomServer | None = None) -> CustomServer | None:
|
||||||
edit_result = EditMenu[str](
|
edit_result = EditMenu(
|
||||||
str(_('Server url')),
|
str(_('Server url')),
|
||||||
alignment=Alignment.CENTER,
|
alignment=Alignment.CENTER,
|
||||||
allow_skip=True,
|
allow_skip=True,
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ def get_password(
|
||||||
elif header is not None:
|
elif header is not None:
|
||||||
user_hdr = header
|
user_hdr = header
|
||||||
|
|
||||||
result = EditMenu[str](
|
result = EditMenu(
|
||||||
text,
|
text,
|
||||||
header=user_hdr,
|
header=user_hdr,
|
||||||
alignment=Alignment.CENTER,
|
alignment=Alignment.CENTER,
|
||||||
|
|
@ -53,7 +53,7 @@ def get_password(
|
||||||
else:
|
else:
|
||||||
confirmation_header = f'{_("Password")}: {password.hidden()}\n'
|
confirmation_header = f'{_("Password")}: {password.hidden()}\n'
|
||||||
|
|
||||||
result = EditMenu[str](
|
result = EditMenu(
|
||||||
str(_('Confirm password')),
|
str(_('Confirm password')),
|
||||||
header=confirmation_header,
|
header=confirmation_header,
|
||||||
alignment=Alignment.CENTER,
|
alignment=Alignment.CENTER,
|
||||||
|
|
@ -87,7 +87,7 @@ def prompt_dir(
|
||||||
else:
|
else:
|
||||||
validate_func = None
|
validate_func = None
|
||||||
|
|
||||||
result = EditMenu[str](
|
result = EditMenu(
|
||||||
text,
|
text,
|
||||||
header=header,
|
header=header,
|
||||||
alignment=Alignment.CENTER,
|
alignment=Alignment.CENTER,
|
||||||
|
|
|
||||||
|
|
@ -455,7 +455,7 @@ class Viewport(AbstractViewport):
|
||||||
self._main_win.refresh()
|
self._main_win.refresh()
|
||||||
|
|
||||||
|
|
||||||
class EditMenu[ValueT](AbstractCurses[ValueT]):
|
class EditMenu(AbstractCurses[str]):
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
title: str,
|
title: str,
|
||||||
|
|
@ -504,7 +504,7 @@ class EditMenu[ValueT](AbstractCurses[ValueT]):
|
||||||
|
|
||||||
self._init_viewports()
|
self._init_viewports()
|
||||||
|
|
||||||
self._last_state: Result[ValueT] | None = None
|
self._last_state: Result[str] | None = None
|
||||||
self._help_active = False
|
self._help_active = False
|
||||||
self._real_input = default_text or ""
|
self._real_input = default_text or ""
|
||||||
|
|
||||||
|
|
@ -534,7 +534,7 @@ class EditMenu[ValueT](AbstractCurses[ValueT]):
|
||||||
y_offset += 3
|
y_offset += 3
|
||||||
self._info_vp = Viewport(self._max_width, 1, 0, y_offset, alignment=self._alignment)
|
self._info_vp = Viewport(self._max_width, 1, 0, y_offset, alignment=self._alignment)
|
||||||
|
|
||||||
def input(self) -> Result[ValueT]:
|
def input(self) -> Result[str]:
|
||||||
result = Tui.run(self)
|
result = Tui.run(self)
|
||||||
|
|
||||||
assert not result.has_item() or isinstance(result.text(), str)
|
assert not result.has_item() or isinstance(result.text(), str)
|
||||||
|
|
@ -591,7 +591,7 @@ class EditMenu[ValueT](AbstractCurses[ValueT]):
|
||||||
self._input_vp.edit(default_text=self._default_text)
|
self._input_vp.edit(default_text=self._default_text)
|
||||||
|
|
||||||
@override
|
@override
|
||||||
def kickoff(self, win: curses.window) -> Result[ValueT]:
|
def kickoff(self, win: curses.window) -> Result[str]:
|
||||||
try:
|
try:
|
||||||
self._draw()
|
self._draw()
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue