From 128fee5e9638b67645a8432d496c4c56ac9e8608 Mon Sep 17 00:00:00 2001 From: alfrix Date: Thu, 17 Nov 2022 19:42:06 -0300 Subject: [PATCH] screen: cleanup panel subscriptions --- ks_includes/printer.py | 5 ----- screen.py | 20 ++------------------ 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/ks_includes/printer.py b/ks_includes/printer.py index aa51f2bc..d86ebeba 100644 --- a/ks_includes/printer.py +++ b/ks_includes/printer.py @@ -136,11 +136,6 @@ class Printer: if "webhooks" in data or "print_stats" in data: self.process_status_update() - def get_updates(self): - updates = self.data.copy() - updates.update(self.devices) - return updates - def evaluate_state(self): # webhooks states: startup, ready, shutdown, error if self.data['webhooks']['state'] == "ready": diff --git a/screen.py b/screen.py index 88eac685..3bfed209 100644 --- a/screen.py +++ b/screen.py @@ -204,12 +204,6 @@ class KlipperScreen(Gtk.Window): }, self.state_execute) self._remove_all_panels() - self.subscriptions = [] - for panel in list(self.panels): - if panel not in ["printer_select", "splash_screen"]: - del self.panels[panel] - for dialog in self.dialogs: - dialog.destroy() self.base_panel.show_printer_select(True) self.printer_initializing(_("Connecting to %s") % name) @@ -321,7 +315,6 @@ class KlipperScreen(Gtk.Window): self.show_all() if hasattr(self.panels[panel_name], "process_update"): - self.panels[panel_name].process_update("notify_status_update", self.printer.get_updates()) self.add_subscription(panel_name) if hasattr(self.panels[panel_name], "activate"): self.panels[panel_name].activate() @@ -544,7 +537,8 @@ class KlipperScreen(Gtk.Window): self.base_panel.remove(self.panels[self._cur_panels[-1]].get_content()) if hasattr(self.panels[self._cur_panels[-1]], "deactivate"): self.panels[self._cur_panels[-1]].deactivate() - self.remove_subscription(self._cur_panels[-1]) + if self._cur_panels[-1] in self.subscriptions: + self.subscriptions.remove(self._cur_panels[-1]) if pop is True: self._cur_panels.pop() if len(self._cur_panels) > 0: @@ -553,8 +547,6 @@ class KlipperScreen(Gtk.Window): if hasattr(self.panels[self._cur_panels[-1]], "activate"): self.panels[self._cur_panels[-1]].activate() if hasattr(self.panels[self._cur_panels[-1]], "process_update"): - self.panels[self._cur_panels[-1]].process_update("notify_status_update", - self.printer.get_updates()) self.add_subscription(self._cur_panels[-1]) self.show_all() @@ -576,10 +568,6 @@ class KlipperScreen(Gtk.Window): if panel_name not in self.subscriptions: self.subscriptions.append(panel_name) - def remove_subscription(self, panel_name): - if panel_name in self.subscriptions: - self.subscriptions.remove(panel_name) - def reset_screensaver_timeout(self, *args): if self.screensaver_timeout is not None: GLib.source_remove(self.screensaver_timeout) @@ -805,7 +793,6 @@ class KlipperScreen(Gtk.Window): "printer.gcode.script", script ) - self.base_panel.process_update(action, data) if self._cur_panels and self._cur_panels[-1] in self.subscriptions: self.panels[self._cur_panels[-1]].process_update(action, data) @@ -956,9 +943,6 @@ class KlipperScreen(Gtk.Window): self.close_popup_message() self.show_panel('main_panel', "main_menu", None, 2, items=self._config.get_menu_items("__main")) self.base_panel_show_all() - if "job_status" in self.panels: - self.remove_subscription("job_status") - del self.panels["job_status"] def printer_printing(self): self.close_screensaver()