From 8c3397ea7819feeb0d213ac402c21126c630bad9 Mon Sep 17 00:00:00 2001 From: dw-0 Date: Wed, 1 May 2024 14:12:20 +0200 Subject: [PATCH] fix: add missing methods to MainsailThemeInstallMenu Signed-off-by: Dominik Willner --- .../mainsail_theme_installer_extension.py | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/kiauh/extensions/mainsail_theme_installer/mainsail_theme_installer_extension.py b/kiauh/extensions/mainsail_theme_installer/mainsail_theme_installer_extension.py index 7964bf7..99c4049 100644 --- a/kiauh/extensions/mainsail_theme_installer/mainsail_theme_installer_extension.py +++ b/kiauh/extensions/mainsail_theme_installer/mainsail_theme_installer_extension.py @@ -11,7 +11,7 @@ import csv import shutil import textwrap import urllib.request -from typing import List, Union +from typing import List, Union, Optional, Type from typing import TypedDict from components.klipper.klipper import Klipper @@ -19,6 +19,7 @@ from components.klipper.klipper_dialogs import ( print_instance_overview, DisplayType, ) +from core.menus import Option from extensions.base_extension import BaseExtension from core.instance_manager.base_instance import BaseInstance from core.instance_manager.instance_manager import InstanceManager @@ -42,8 +43,7 @@ class MainsailThemeInstallerExtension(BaseExtension): instances: List[Klipper] = im.instances def install_extension(self, **kwargs) -> None: - install_menu = MainsailThemeInstallMenu(self.instances) - install_menu.run() + MainsailThemeInstallMenu(self.instances).run() def remove_extension(self, **kwargs) -> None: print_instance_overview( @@ -80,11 +80,21 @@ class MainsailThemeInstallMenu(BaseMenu): def __init__(self, instances: List[Klipper]): super().__init__() self.themes: List[ThemeData] = self.load_themes() - options = {f"{index}": self.install_theme for index in range(len(self.themes))} - self.options = options - self.instances = instances + def set_previous_menu(self, previous_menu: Optional[Type[BaseMenu]]) -> None: + from extensions.extensions_menu import ExtensionsMenu + + self.previous_menu: Type[BaseMenu] = ( + previous_menu if previous_menu is not None else ExtensionsMenu + ) + + def set_options(self) -> None: + self.options = { + f"{index}": Option(self.install_theme, False, opt_index=f"{index}") + for index in range(len(self.themes)) + } + def print_menu(self) -> None: header = " [ Mainsail Theme Installer ] " color = COLOR_YELLOW