Remove unused Selector class (#2938)
The code is unused as of 88b91ae201.
This commit is contained in:
parent
ee2ed3fe54
commit
f2bc5ff280
|
|
@ -5,7 +5,7 @@ from typing import TYPE_CHECKING, Any
|
||||||
|
|
||||||
from archinstall.tui import Chars, FrameProperties, FrameStyle, MenuItem, MenuItemGroup, PreviewStyle, ResultType, SelectMenu, Tui
|
from archinstall.tui import Chars, FrameProperties, FrameStyle, MenuItem, MenuItemGroup, PreviewStyle, ResultType, SelectMenu, Tui
|
||||||
|
|
||||||
from ..output import error, unicode_ljust
|
from ..output import error
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from archinstall.lib.translationhandler import DeferredTranslation
|
from archinstall.lib.translationhandler import DeferredTranslation
|
||||||
|
|
@ -13,136 +13,6 @@ if TYPE_CHECKING:
|
||||||
_: Callable[[str], DeferredTranslation]
|
_: Callable[[str], DeferredTranslation]
|
||||||
|
|
||||||
|
|
||||||
class Selector:
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
description: str,
|
|
||||||
func: Callable[[Any], Any] | None = None,
|
|
||||||
display_func: Callable | None = None,
|
|
||||||
default: Any | None = None,
|
|
||||||
enabled: bool = False,
|
|
||||||
dependencies: list[str] = [],
|
|
||||||
dependencies_not: list[str] = [],
|
|
||||||
exec_func: Callable | None = None,
|
|
||||||
preview_func: Callable | None = None,
|
|
||||||
mandatory: bool = False,
|
|
||||||
no_store: bool = False
|
|
||||||
):
|
|
||||||
"""
|
|
||||||
Create a new menu selection entry
|
|
||||||
|
|
||||||
:param description: Text that will be displayed as the menu entry
|
|
||||||
:type description: str
|
|
||||||
|
|
||||||
:param func: Function that is called when the menu entry is selected
|
|
||||||
:type func: Callable
|
|
||||||
|
|
||||||
:param display_func: After specifying a setting for a menu item it is displayed
|
|
||||||
on the right side of the item as is; with this function one can modify the entry
|
|
||||||
to be displayed; e.g. when specifying a password one can display **** instead
|
|
||||||
:type display_func: Callable
|
|
||||||
|
|
||||||
:param default: Default value for this menu entry
|
|
||||||
:type default: Any
|
|
||||||
|
|
||||||
:param enabled: Specify if this menu entry should be displayed
|
|
||||||
:type enabled: bool
|
|
||||||
|
|
||||||
:param dependencies: Specify dependencies for this menu entry; if the dependencies
|
|
||||||
are not set yet, then this item is not displayed; e.g. disk_layout depends on selectiong
|
|
||||||
harddrive(s) first
|
|
||||||
:type dependencies: list
|
|
||||||
|
|
||||||
:param dependencies_not: These are the exclusive options; the menu item will only be
|
|
||||||
displayed if non of the entries in the list have been specified
|
|
||||||
:type dependencies_not: list
|
|
||||||
|
|
||||||
:param exec_func: A function with the name and the result of the selection as input parameter and which returns boolean.
|
|
||||||
Can be used for any action deemed necessary after selection. If it returns True, exits the menu loop, if False,
|
|
||||||
menu returns to the selection screen. If not specified it is assumed the return is False
|
|
||||||
:type exec_func: Callable
|
|
||||||
|
|
||||||
:param preview_func: A callable which invokws a preview screen
|
|
||||||
:type preview_func: Callable
|
|
||||||
|
|
||||||
:param mandatory: A boolean which determines that the field is mandatory, i.e. menu can not be exited if it is not set
|
|
||||||
:type mandatory: bool
|
|
||||||
|
|
||||||
:param no_store: A boolean which determines that the field should or shouldn't be stored in the data storage
|
|
||||||
:type no_store: bool
|
|
||||||
"""
|
|
||||||
self._display_func = display_func
|
|
||||||
self._no_store = no_store
|
|
||||||
|
|
||||||
self.description = description
|
|
||||||
self.func = func
|
|
||||||
self.current_selection = default
|
|
||||||
self.enabled = enabled
|
|
||||||
self.dependencies = dependencies
|
|
||||||
self.dependencies_not = dependencies_not
|
|
||||||
self.exec_func = exec_func
|
|
||||||
self.preview_func = preview_func
|
|
||||||
self.mandatory = mandatory
|
|
||||||
self.default = default
|
|
||||||
|
|
||||||
def do_store(self) -> bool:
|
|
||||||
return self._no_store is False
|
|
||||||
|
|
||||||
def set_enabled(self, status: bool = True) -> None:
|
|
||||||
self.enabled = status
|
|
||||||
|
|
||||||
def update_description(self, description: str) -> None:
|
|
||||||
self.description = description
|
|
||||||
|
|
||||||
def menu_text(self, padding: int = 0) -> str:
|
|
||||||
if self.description == '': # special menu option for __separator__
|
|
||||||
return ''
|
|
||||||
|
|
||||||
current = ''
|
|
||||||
|
|
||||||
if self._display_func:
|
|
||||||
current = self._display_func(self.current_selection)
|
|
||||||
else:
|
|
||||||
if self.current_selection is not None:
|
|
||||||
current = str(self.current_selection)
|
|
||||||
|
|
||||||
if current:
|
|
||||||
padding += 5
|
|
||||||
description = unicode_ljust(str(self.description), padding, ' ')
|
|
||||||
else:
|
|
||||||
description = self.description
|
|
||||||
current = ''
|
|
||||||
|
|
||||||
return f'{description} {current}'
|
|
||||||
|
|
||||||
def set_current_selection(self, current: Any | None) -> None:
|
|
||||||
self.current_selection = current
|
|
||||||
|
|
||||||
def has_selection(self) -> bool:
|
|
||||||
if not self.current_selection:
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
def get_selection(self) -> Any:
|
|
||||||
return self.current_selection
|
|
||||||
|
|
||||||
def is_empty(self) -> bool:
|
|
||||||
if self.current_selection is None:
|
|
||||||
return True
|
|
||||||
elif isinstance(self.current_selection, str | list | dict) and len(self.current_selection) == 0:
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
def is_enabled(self) -> bool:
|
|
||||||
return self.enabled
|
|
||||||
|
|
||||||
def is_mandatory(self) -> bool:
|
|
||||||
return self.mandatory
|
|
||||||
|
|
||||||
def set_mandatory(self, value: bool) -> None:
|
|
||||||
self.mandatory = value
|
|
||||||
|
|
||||||
|
|
||||||
class AbstractMenu:
|
class AbstractMenu:
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue