fix: add missing methods to MainsailThemeInstallMenu

Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
dw-0
2024-05-01 14:12:20 +02:00
parent 7d3d46ac07
commit 8c3397ea78

View File

@@ -11,7 +11,7 @@ import csv
import shutil import shutil
import textwrap import textwrap
import urllib.request import urllib.request
from typing import List, Union from typing import List, Union, Optional, Type
from typing import TypedDict from typing import TypedDict
from components.klipper.klipper import Klipper from components.klipper.klipper import Klipper
@@ -19,6 +19,7 @@ from components.klipper.klipper_dialogs import (
print_instance_overview, print_instance_overview,
DisplayType, DisplayType,
) )
from core.menus import Option
from extensions.base_extension import BaseExtension from extensions.base_extension import BaseExtension
from core.instance_manager.base_instance import BaseInstance from core.instance_manager.base_instance import BaseInstance
from core.instance_manager.instance_manager import InstanceManager from core.instance_manager.instance_manager import InstanceManager
@@ -42,8 +43,7 @@ class MainsailThemeInstallerExtension(BaseExtension):
instances: List[Klipper] = im.instances instances: List[Klipper] = im.instances
def install_extension(self, **kwargs) -> None: def install_extension(self, **kwargs) -> None:
install_menu = MainsailThemeInstallMenu(self.instances) MainsailThemeInstallMenu(self.instances).run()
install_menu.run()
def remove_extension(self, **kwargs) -> None: def remove_extension(self, **kwargs) -> None:
print_instance_overview( print_instance_overview(
@@ -80,11 +80,21 @@ class MainsailThemeInstallMenu(BaseMenu):
def __init__(self, instances: List[Klipper]): def __init__(self, instances: List[Klipper]):
super().__init__() super().__init__()
self.themes: List[ThemeData] = self.load_themes() 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 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: def print_menu(self) -> None:
header = " [ Mainsail Theme Installer ] " header = " [ Mainsail Theme Installer ] "
color = COLOR_YELLOW color = COLOR_YELLOW