diff --git a/BlocksScreen/lib/panels/mainWindow.py b/BlocksScreen/lib/panels/mainWindow.py index 18549a39..e72ff534 100644 --- a/BlocksScreen/lib/panels/mainWindow.py +++ b/BlocksScreen/lib/panels/mainWindow.py @@ -620,7 +620,6 @@ def event(self, event: QtCore.QEvent) -> bool: self.messageReceivedEvent(event) return True return False - if event.type() == events.PrintStart.type(): self.disable_tab_bar() self.ui.extruder_temp_display.clicked.disconnect() @@ -641,10 +640,10 @@ def event(self, event: QtCore.QEvent) -> bool: ) return False - if event.type() == ( - events.PrintError.type() - or events.PrintComplete.type() - or events.PrintCancelled.type() + if event.type() in ( + events.PrintError.type(), + events.PrintComplete.type(), + events.PrintCancelled.type(), ): self.enable_tab_bar() self.ui.extruder_temp_display.clicked.disconnect() diff --git a/BlocksScreen/lib/panels/printTab.py b/BlocksScreen/lib/panels/printTab.py index 104a765a..2a885362 100644 --- a/BlocksScreen/lib/panels/printTab.py +++ b/BlocksScreen/lib/panels/printTab.py @@ -342,7 +342,6 @@ def setProperty(self, name: str, value: typing.Any) -> bool: def handle_cancel_print(self) -> None: """Handles the print cancel action""" self.ws.api.cancel_print() - self.on_cancel_print.emit() self.loadscreen.show() self.loadscreen.setModal(True) self.loadwidget.set_status_message("Cancelling print...\nPlease wait") diff --git a/BlocksScreen/lib/panels/widgets/jobStatusPage.py b/BlocksScreen/lib/panels/widgets/jobStatusPage.py index bbce76a3..7fc82a11 100644 --- a/BlocksScreen/lib/panels/widgets/jobStatusPage.py +++ b/BlocksScreen/lib/panels/widgets/jobStatusPage.py @@ -222,6 +222,42 @@ def _handle_print_state(self, state: str) -> None: self.show_request.emit() lstate = "start" elif lstate in invalid_states: + if lstate == "complete": + try: + instance = QtWidgets.QApplication.instance() + if instance: + instance.postEvent(self.window(), events.PrintComplete(data={})) + else: + raise TypeError("QApplication.instance expected non None value") + except Exception as e: + logger.debug( + "Unexpected error while completing print job start event: %s", e + ) + # this one must stay bc of moonraker cancel there + if lstate == "cancelled": + print_cancel_event = events.PrintCancelled(data={}) + try: + instance = QtWidgets.QApplication.instance() + if instance: + instance.postEvent(self.window(), print_cancel_event) + else: + raise TypeError("QApplication.instance expected non None value") + except Exception as e: + logger.debug( + "Unexpected error while completing print job start event: %s", e + ) + if lstate == "error": + print_error_event = events.PrintError(data={}) + try: + instance = QtWidgets.QApplication.instance() + if instance: + instance.postEvent(self.window(), print_error_event) + else: + raise TypeError("QApplication.instance expected non None value") + except Exception as e: + logger.debug( + "Unexpected error while completing print job start event: %s", e + ) self._current_file_name = "" self._internal_print_status = "" self.total_layers = "?"