From b83f12265dda2586e379184bb35752f69d08b9db Mon Sep 17 00:00:00 2001 From: alfrix Date: Thu, 24 Mar 2022 08:09:16 -0300 Subject: [PATCH] Splash_screen: fix return and duplicated power devices fix forcefully returning the user from menu to splash when there is no connection to moonraker/klipper fix a case where the power device was added multiple times to the list --- ks_includes/KlippyWebsocket.py | 15 ++++++++------- panels/splash_screen.py | 10 ++++++---- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/ks_includes/KlippyWebsocket.py b/ks_includes/KlippyWebsocket.py index 3985a134..0cbd2e88 100644 --- a/ks_includes/KlippyWebsocket.py +++ b/ks_includes/KlippyWebsocket.py @@ -68,16 +68,17 @@ class KlippyWebsocket(threading.Thread): state = self._screen.apiclient.get_server_info() if state is False: if self.reconnect_count > 3: - self._screen.printer_initializing(_("Cannot connect to Moonraker") + - ("\n\n%s\n\n") % self._url + - _("Retry #%s") % self.reconnect_count) - + self._screen.panels['splash_screen'].update_text( + _("Cannot connect to Moonraker") + + ("\n\n%s\n\n") % self._url + + _("Retry #%s") % self.reconnect_count) return False if state['result']['klippy_connected'] is False: if self.reconnect_count > 3: - self._screen.printer_initializing(_("Moonraker: connected") + - ("\n\nKlipper: %s\n\n") % state['result']['klippy_state'] + - _("Retry #%s") % self.reconnect_count) + self._screen.panels['splash_screen'].update_text( + _("Moonraker: connected") + + ("\n\nKlipper: %s\n\n") % state['result']['klippy_state'] + + _("Retry #%s") % self.reconnect_count) return False printer_info = self._screen.apiclient.get_printer_info() if printer_info is False: diff --git a/panels/splash_screen.py b/panels/splash_screen.py index 4ffae54d..fe800760 100644 --- a/panels/splash_screen.py +++ b/panels/splash_screen.py @@ -53,11 +53,12 @@ class SplashScreenPanel(ScreenPanel): main.pack_start(info, True, True, 8) main.pack_end(self.labels['actions'], False, False, 0) + self.show_restart_buttons() + self.content.add(main) def update_text(self, text): self.labels['text'].set_markup("%s" % text) - self.clear_action_bar() def clear_action_bar(self): for child in self.labels['actions'].get_children(): @@ -98,12 +99,12 @@ class SplashScreenPanel(ScreenPanel): if devices is not None: for device in devices: for power_device in power_devices: - if device == power_device: + if device == power_device and power_device not in found_devices: found_devices.append(power_device) - if found_devices: + if len(found_devices) > 0: logging.info("Found %s, Adding power button", found_devices) - self.labels['actions'].add(self.labels['power']) self.labels['power'].connect("clicked", self.power_on, found_devices) + self.labels['actions'].add(self.labels['power']) else: logging.info("%s power devices not found", printer) @@ -117,6 +118,7 @@ class SplashScreenPanel(ScreenPanel): elif self._screen.printer.get_power_device_status(device) == "on": logging.info("%s is ON", device) + def firmware_restart(self, widget): self._screen._ws.klippy.restart_firmware()