diff --git a/ks_includes/files.py b/ks_includes/files.py index 3717d910..84259d89 100644 --- a/ks_includes/files.py +++ b/ks_includes/files.py @@ -47,7 +47,7 @@ class KlippyFiles: os.path.dirname(params['filename']), thumbnail['relative_path'] ) - self.run_callbacks("update_metadata", result["result"]) + self._screen.process_update("notify_metadata_update", params) def add_file(self, item): if 'path' not in item: diff --git a/panels/job_status.py b/panels/job_status.py index aa16546f..fbe3bd42 100644 --- a/panels/job_status.py +++ b/panels/job_status.py @@ -337,7 +337,6 @@ class Panel(ScreenPanel): if self.flow_timeout is not None: GLib.source_remove(self.flow_timeout) self.flow_timeout = None - self._files.remove_callback(self._callback_metadata) def create_buttons(self): @@ -454,12 +453,6 @@ class Panel(ScreenPanel): for arg in args: self.buttons[arg].set_sensitive(False) - def _callback_metadata(self, action, item): - if action == "update_metadata" and self.filename in item: - logging.info("Callback complete") - self.update_file_metadata() - self._files.remove_callback(self._callback_metadata) - def new_print(self): self._screen.close_screensaver() if "virtual_sdcard" in self._printer.data: @@ -476,6 +469,8 @@ class Panel(ScreenPanel): elif "action:resumed" in data: self.set_state("printing") return + elif action == "notify_metadata_update" and data['filename'] == self.filename: + self.update_file_metadata() elif action != "notify_status_update": return @@ -811,6 +806,5 @@ class Panel(ScreenPanel): self.labels['filament_total'].set_label(f"{float(self.file_metadata['filament_total']) / 1000:.1f} m") else: logging.debug("Cannot find file metadata. Listening for updated metadata") - self._screen.files.add_callback(self._callback_metadata) self._files.request_metadata(self.filename) self.show_file_thumbnail() diff --git a/panels/print.py b/panels/print.py index 67f126ec..d4345a9a 100644 --- a/panels/print.py +++ b/panels/print.py @@ -385,9 +385,7 @@ class Panel(ScreenPanel): def _callback(self, action, item): logging.info(f"{action}: {item}") - if action == "update_metadata": - return - elif action in {"create_dir", "create_file"}: + if action in {"create_dir", "create_file"}: self.add_item_from_callback(action, item) elif action == "delete_file": self.delete_from_list(item["path"])