From b82889f84e6e772b2eaa5a75da9a51cdf8beb0dc Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 12 Sep 2016 15:59:45 +0200 Subject: [PATCH] Only show access request message when the user requested access --- NetworkPrinterOutputDevice.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/NetworkPrinterOutputDevice.py b/NetworkPrinterOutputDevice.py index 48a9554a50..674b35343b 100644 --- a/NetworkPrinterOutputDevice.py +++ b/NetworkPrinterOutputDevice.py @@ -122,6 +122,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._authentication_timer.setInterval(1000) # TODO; Add preference for update interval self._authentication_timer.setSingleShot(False) self._authentication_timer.timeout.connect(self._onAuthenticationTimer) + self._authentication_request_active = False self._authentication_state = AuthState.NotAuthenticated self._authentication_id = None @@ -129,9 +130,12 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._authentication_requested_message = Message(i18n_catalog.i18nc("@info:status", "Access to the printer requested. Please approve the request on the printer"), lifetime = 0, dismissable = False, progress = 0) self._authentication_failed_message = Message(i18n_catalog.i18nc("@info:status", "")) - self._authentication_failed_message.addAction("Retry", i18n_catalog.i18nc("@action:button", "Retry "), None, i18n_catalog.i18nc("@info:tooltip", "Re-send the access request")) + self._authentication_failed_message.addAction("Retry", i18n_catalog.i18nc("@action:button", "Retry"), None, i18n_catalog.i18nc("@info:tooltip", "Re-send the access request")) self._authentication_failed_message.actionTriggered.connect(self.messageActionTriggered) self._authentication_succeeded_message = Message(i18n_catalog.i18nc("@info:status", "Access to the printer accepted")) + self._not_authenticated_message = Message(i18n_catalog.i18nc("@info:status", "No access to print with this printer. Unable to send print job.")) + self._not_authenticated_message.addAction("Request", i18n_catalog.i18nc("@action:button", "Request Access"), None, i18n_catalog.i18nc("@info:tooltip", "Send access request to the printer")) + self._not_authenticated_message.actionTriggered.connect(self.messageActionTriggered) self._camera_image = QImage() @@ -142,7 +146,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._response_timeout_time = 10 self._recreate_network_manager_time = 30 # If we have no connection, re-create network manager every 30 sec. self._recreate_network_manager_count = 1 - self._not_authenticated_message = None + self._send_gcode_start = time() # Time when the sending of the g-code started. self._last_command = "" @@ -204,13 +208,15 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self.setAcceptsCommands(False) self.setConnectionText(i18n_catalog.i18nc("@info:status", "Connected over the network to {0}. Please approve the access request on the printer.").format(self.name)) self._authentication_requested_message.show() + self._authentication_request_active = True self._authentication_timer.start() # Start timer so auth will fail after a while. elif auth_state == AuthState.Authenticated: Logger.log("d", "Authentication state changed to authenticated") self.setAcceptsCommands(True) self.setConnectionText(i18n_catalog.i18nc("@info:status", "Connected over the network to {0}.").format(self.name)) self._authentication_requested_message.hide() - self._authentication_succeeded_message.show() + if self._authentication_request_active: + self._authentication_succeeded_message.show() # Stop waiting for a response self._authentication_timer.stop() @@ -223,11 +229,14 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self.setAcceptsCommands(False) self.setConnectionText(i18n_catalog.i18nc("@info:status", "Connected over the network to {0}. No access to control the printer.").format(self.name)) self._authentication_requested_message.hide() - if self._authentication_timer.remainingTime() > 0: - self._authentication_failed_message.setText(i18n_catalog.i18nc("@info:status", "Access request was denied on the printer.")) - else: - self._authentication_failed_message.setText(i18n_catalog.i18nc("@info:status", "Access request failed due to a timeout.")) - self._authentication_failed_message.show() + if self._authentication_request_active: + if self._authentication_timer.remainingTime() > 0: + self._authentication_failed_message.setText(i18n_catalog.i18nc("@info:status", "Access request was denied on the printer.")) + else: + self._authentication_failed_message.setText(i18n_catalog.i18nc("@info:status", "Access request failed due to a timeout.")) + + self._authentication_failed_message.show() + self._authentication_request_active = False # Stop waiting for a response self._authentication_timer.stop() @@ -237,6 +246,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): def messageActionTriggered(self, message_id, action_id): self._authentication_failed_message.hide() + self._not_authenticated_message.hide() self._authentication_state = AuthState.NotAuthenticated self._authentication_counter = 0 self._authentication_requested_message.setProgress(0) @@ -410,8 +420,6 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._error_message.show() return elif self._authentication_state != AuthState.Authenticated: - self._not_authenticated_message = Message(i18n_catalog.i18nc("@info:status", - "No access to print with this printer. Unable to start a new job.")) self._not_authenticated_message.show() Logger.log("d", "Attempting to perform an action without authentication. Auth state is %s", self._authentication_state) return