mirror of
https://github.com/dw-0/kiauh.git
synced 2025-12-23 15:53:36 +05:00
fix: use of lambdas breaks the menu refactoring
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
@@ -39,7 +39,7 @@ class KlipperFlashMethodMenu(BaseMenu):
|
|||||||
self.options = {
|
self.options = {
|
||||||
"1": self.select_regular,
|
"1": self.select_regular,
|
||||||
"2": self.select_sdcard,
|
"2": self.select_sdcard,
|
||||||
"h": lambda: KlipperFlashMethodHelpMenu(self).run(),
|
"h": self.help_menu,
|
||||||
}
|
}
|
||||||
self.input_label_txt = "Select flash method"
|
self.input_label_txt = "Select flash method"
|
||||||
self.footer_type = FooterType.BACK_HELP
|
self.footer_type = FooterType.BACK_HELP
|
||||||
@@ -78,6 +78,9 @@ class KlipperFlashMethodMenu(BaseMenu):
|
|||||||
def goto_next_menu(self, **kwargs):
|
def goto_next_menu(self, **kwargs):
|
||||||
KlipperFlashCommandMenu(previous_menu=self).run()
|
KlipperFlashCommandMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def help_menu(self, **kwargs):
|
||||||
|
KlipperFlashMethodHelpMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
|
||||||
# noinspection PyUnusedLocal
|
# noinspection PyUnusedLocal
|
||||||
# noinspection PyMethodMayBeStatic
|
# noinspection PyMethodMayBeStatic
|
||||||
@@ -89,7 +92,7 @@ class KlipperFlashCommandMenu(BaseMenu):
|
|||||||
self.options = {
|
self.options = {
|
||||||
"1": self.select_flash,
|
"1": self.select_flash,
|
||||||
"2": self.select_serialflash,
|
"2": self.select_serialflash,
|
||||||
"h": lambda: KlipperFlashCommandHelpMenu(previous_menu=self).run(),
|
"h": self.help_menu,
|
||||||
}
|
}
|
||||||
self.default_option = self.select_flash
|
self.default_option = self.select_flash
|
||||||
self.input_label_txt = "Select flash command"
|
self.input_label_txt = "Select flash command"
|
||||||
@@ -121,6 +124,9 @@ class KlipperFlashCommandMenu(BaseMenu):
|
|||||||
def goto_next_menu(self, **kwargs):
|
def goto_next_menu(self, **kwargs):
|
||||||
KlipperSelectMcuConnectionMenu(previous_menu=self).run()
|
KlipperSelectMcuConnectionMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def help_menu(self, **kwargs):
|
||||||
|
KlipperFlashCommandHelpMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
|
||||||
# noinspection PyUnusedLocal
|
# noinspection PyUnusedLocal
|
||||||
# noinspection PyMethodMayBeStatic
|
# noinspection PyMethodMayBeStatic
|
||||||
@@ -133,7 +139,7 @@ class KlipperSelectMcuConnectionMenu(BaseMenu):
|
|||||||
"1": self.select_usb,
|
"1": self.select_usb,
|
||||||
"2": self.select_dfu,
|
"2": self.select_dfu,
|
||||||
"3": self.select_usb_dfu,
|
"3": self.select_usb_dfu,
|
||||||
"h": lambda: KlipperMcuConnectionHelpMenu(previous_menu=self).run(),
|
"h": self.help_menu,
|
||||||
}
|
}
|
||||||
self.input_label_txt = "Select connection type"
|
self.input_label_txt = "Select connection type"
|
||||||
self.footer_type = FooterType.BACK_HELP
|
self.footer_type = FooterType.BACK_HELP
|
||||||
@@ -193,6 +199,9 @@ class KlipperSelectMcuConnectionMenu(BaseMenu):
|
|||||||
def goto_next_menu(self, **kwargs):
|
def goto_next_menu(self, **kwargs):
|
||||||
KlipperSelectMcuIdMenu(previous_menu=self).run()
|
KlipperSelectMcuIdMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def help_menu(self, **kwargs):
|
||||||
|
KlipperMcuConnectionHelpMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
|
||||||
# noinspection PyUnusedLocal
|
# noinspection PyUnusedLocal
|
||||||
# noinspection PyMethodMayBeStatic
|
# noinspection PyMethodMayBeStatic
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ from core.menus.base_menu import BaseMenu
|
|||||||
from utils.constants import COLOR_YELLOW, RESET_FORMAT
|
from utils.constants import COLOR_YELLOW, RESET_FORMAT
|
||||||
|
|
||||||
|
|
||||||
|
# noinspection PyUnusedLocal
|
||||||
class AdvancedMenu(BaseMenu):
|
class AdvancedMenu(BaseMenu):
|
||||||
def __init__(self, previous_menu: BaseMenu):
|
def __init__(self, previous_menu: BaseMenu):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
@@ -26,9 +27,9 @@ class AdvancedMenu(BaseMenu):
|
|||||||
"1": None,
|
"1": None,
|
||||||
"2": None,
|
"2": None,
|
||||||
"3": None,
|
"3": None,
|
||||||
"4": lambda: KlipperFlashMethodMenu(previous_menu=self).run(),
|
"4": self.flash,
|
||||||
"5": None,
|
"5": None,
|
||||||
"6": lambda: KlipperSelectMcuConnectionMenu(previous_menu=self).run(),
|
"6": self.get_id,
|
||||||
}
|
}
|
||||||
|
|
||||||
def print_menu(self):
|
def print_menu(self):
|
||||||
@@ -52,3 +53,9 @@ class AdvancedMenu(BaseMenu):
|
|||||||
"""
|
"""
|
||||||
)[1:]
|
)[1:]
|
||||||
print(menu, end="")
|
print(menu, end="")
|
||||||
|
|
||||||
|
def flash(self, **kwargs):
|
||||||
|
KlipperFlashMethodMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def get_id(self, **kwargs):
|
||||||
|
KlipperSelectMcuConnectionMenu(previous_menu=self).run()
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import subprocess
|
|||||||
import sys
|
import sys
|
||||||
import textwrap
|
import textwrap
|
||||||
from abc import abstractmethod, ABC
|
from abc import abstractmethod, ABC
|
||||||
from typing import Dict, Union, Callable, Type
|
from typing import Dict, Union, Callable, Type, Tuple
|
||||||
|
|
||||||
from core.menus import FooterType, NAVI_OPTIONS, ExitAppException, GoBackException
|
from core.menus import FooterType, NAVI_OPTIONS, ExitAppException, GoBackException
|
||||||
from utils.constants import (
|
from utils.constants import (
|
||||||
@@ -129,7 +129,7 @@ class BaseMenu(ABC):
|
|||||||
self.print_menu()
|
self.print_menu()
|
||||||
self.print_footer()
|
self.print_footer()
|
||||||
|
|
||||||
def validate_user_input(self, usr_input: str) -> Callable:
|
def validate_user_input(self, usr_input: str) -> Tuple[Callable, str]:
|
||||||
"""
|
"""
|
||||||
Validate the user input and either return an Option, a string or None
|
Validate the user input and either return an Option, a string or None
|
||||||
:param usr_input: The user input in form of a string
|
:param usr_input: The user input in form of a string
|
||||||
@@ -148,16 +148,16 @@ class BaseMenu(ABC):
|
|||||||
elif usr_input == "b":
|
elif usr_input == "b":
|
||||||
raise GoBackException()
|
raise GoBackException()
|
||||||
elif usr_input == "h":
|
elif usr_input == "h":
|
||||||
return option
|
return option, usr_input
|
||||||
|
|
||||||
# if usr_input is None or an empty string, we execute the menues default option if specified
|
# if usr_input is None or an empty string, we execute the menues default option if specified
|
||||||
if usr_input == "" and self.default_option is not None:
|
if usr_input == "" and self.default_option is not None:
|
||||||
return self.default_option
|
return self.default_option, usr_input
|
||||||
|
|
||||||
# user selected a regular option
|
# user selected a regular option
|
||||||
return option
|
return option, usr_input
|
||||||
|
|
||||||
def handle_user_input(self) -> Callable:
|
def handle_user_input(self) -> Tuple[Callable, str]:
|
||||||
"""Handle the user input, return the validated input or print an error."""
|
"""Handle the user input, return the validated input or print an error."""
|
||||||
while True:
|
while True:
|
||||||
print(f"{COLOR_CYAN}###### {self.input_label_txt}: {RESET_FORMAT}", end="")
|
print(f"{COLOR_CYAN}###### {self.input_label_txt}: {RESET_FORMAT}", end="")
|
||||||
@@ -173,7 +173,8 @@ class BaseMenu(ABC):
|
|||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
self.display_menu()
|
self.display_menu()
|
||||||
self.handle_user_input()()
|
option = self.handle_user_input()
|
||||||
|
option[0](opt_index=option[1])
|
||||||
except GoBackException:
|
except GoBackException:
|
||||||
return
|
return
|
||||||
except ExitAppException:
|
except ExitAppException:
|
||||||
|
|||||||
@@ -36,21 +36,21 @@ from utils.constants import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# noinspection PyUnusedLocal
|
||||||
# noinspection PyMethodMayBeStatic
|
# noinspection PyMethodMayBeStatic
|
||||||
class MainMenu(BaseMenu):
|
class MainMenu(BaseMenu):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
self.options = {
|
self.options = {
|
||||||
"0": lambda: LogUploadMenu(previous_menu=self).run(),
|
"0": self.log_upload_menu,
|
||||||
"1": lambda: InstallMenu(previous_menu=self).run(),
|
"1": self.install_menu,
|
||||||
"2": lambda: UpdateMenu(previous_menu=self).run(),
|
"2": self.update_menu,
|
||||||
"3": lambda: RemoveMenu(previous_menu=self).run(),
|
"3": self.remove_menu,
|
||||||
"4": lambda: AdvancedMenu(previous_menu=self).run(),
|
"4": self.advanced_menu,
|
||||||
"5": lambda: BackupMenu(previous_menu=self).run(),
|
"5": self.backup_menu,
|
||||||
"6": None,
|
"e": self.extension_menu,
|
||||||
"e": lambda: ExtensionsMenu(previous_menu=self).run(),
|
"s": self.settings_menu,
|
||||||
"s": lambda: SettingsMenu(previous_menu=self).run(),
|
|
||||||
}
|
}
|
||||||
self.header = True
|
self.header = True
|
||||||
self.footer_type = FooterType.QUIT
|
self.footer_type = FooterType.QUIT
|
||||||
@@ -141,3 +141,27 @@ class MainMenu(BaseMenu):
|
|||||||
"""
|
"""
|
||||||
)[1:]
|
)[1:]
|
||||||
print(menu, end="")
|
print(menu, end="")
|
||||||
|
|
||||||
|
def log_upload_menu(self, **kwargs):
|
||||||
|
LogUploadMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def install_menu(self, **kwargs):
|
||||||
|
InstallMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def update_menu(self, **kwargs):
|
||||||
|
UpdateMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def remove_menu(self, **kwargs):
|
||||||
|
RemoveMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def advanced_menu(self, **kwargs):
|
||||||
|
AdvancedMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def backup_menu(self, **kwargs):
|
||||||
|
BackupMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def settings_menu(self, **kwargs):
|
||||||
|
SettingsMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def extension_menu(self, **kwargs):
|
||||||
|
ExtensionsMenu(previous_menu=self).run()
|
||||||
|
|||||||
@@ -27,14 +27,10 @@ class RemoveMenu(BaseMenu):
|
|||||||
|
|
||||||
self.previous_menu: BaseMenu = previous_menu
|
self.previous_menu: BaseMenu = previous_menu
|
||||||
self.options = {
|
self.options = {
|
||||||
"1": lambda: KlipperRemoveMenu(previous_menu=self).run(),
|
"1": self.remove_klipper,
|
||||||
"2": lambda: MoonrakerRemoveMenu(previous_menu=self).run(),
|
"2": self.remove_moonraker,
|
||||||
"3": lambda: ClientRemoveMenu(
|
"3": self.remove_mainsail,
|
||||||
previous_menu=self, client=load_client_data("mainsail")
|
"4": self.remove_fluidd,
|
||||||
).run(),
|
|
||||||
"4": lambda: ClientRemoveMenu(
|
|
||||||
previous_menu=self, client=load_client_data("fluidd")
|
|
||||||
).run(),
|
|
||||||
"5": None,
|
"5": None,
|
||||||
"6": None,
|
"6": None,
|
||||||
"7": None,
|
"7": None,
|
||||||
@@ -72,3 +68,15 @@ class RemoveMenu(BaseMenu):
|
|||||||
"""
|
"""
|
||||||
)[1:]
|
)[1:]
|
||||||
print(menu, end="")
|
print(menu, end="")
|
||||||
|
|
||||||
|
def remove_klipper(self, **kwargs):
|
||||||
|
KlipperRemoveMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def remove_moonraker(self, **kwargs):
|
||||||
|
MoonrakerRemoveMenu(previous_menu=self).run()
|
||||||
|
|
||||||
|
def remove_mainsail(self, **kwargs):
|
||||||
|
ClientRemoveMenu(previous_menu=self, client=load_client_data("mainsail")).run()
|
||||||
|
|
||||||
|
def remove_fluidd(self, **kwargs):
|
||||||
|
ClientRemoveMenu(previous_menu=self, client=load_client_data("fluidd")).run()
|
||||||
|
|||||||
Reference in New Issue
Block a user