From 2ebf32831a06f5773dc0b4e9d94822c45d6603df Mon Sep 17 00:00:00 2001 From: Gabriel Vogel Date: Thu, 4 Jun 2020 13:50:24 +0200 Subject: [PATCH 1/6] remove duplicate updates for model properties --- .../src/Models/Http/ClusterPrintJobStatus.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models/Http/ClusterPrintJobStatus.py b/plugins/UM3NetworkPrinting/src/Models/Http/ClusterPrintJobStatus.py index 8c8b187288..6e46c12cf0 100644 --- a/plugins/UM3NetworkPrinting/src/Models/Http/ClusterPrintJobStatus.py +++ b/plugins/UM3NetworkPrinting/src/Models/Http/ClusterPrintJobStatus.py @@ -125,9 +125,6 @@ class ClusterPrintJobStatus(BaseModel): model.updateOwner(self.owner) model.updateState(self.status) model.setCompatibleMachineFamilies(self.compatible_machine_families) - model.updateTimeTotal(self.time_total) - model.updateTimeElapsed(self.time_elapsed) - model.updateOwner(self.owner) status_set_by_impediment = False for impediment in self.impediments_to_printing: From fd2a7689cc822f1bce87736b4a8dbc9bb958c4d3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 4 Jun 2020 14:32:37 +0200 Subject: [PATCH 2/6] Remove overly spammy logging --- cura/API/Account.py | 3 --- plugins/Toolbox/src/CloudSync/CloudPackageChecker.py | 1 - 2 files changed, 4 deletions(-) diff --git a/cura/API/Account.py b/cura/API/Account.py index 581a91da04..ef46368474 100644 --- a/cura/API/Account.py +++ b/cura/API/Account.py @@ -112,9 +112,6 @@ class Account(QObject): :param service_name: A unique name for your service, such as `plugins` or `backups` :param state: One of SyncState """ - - Logger.info("Service {service} enters sync state {state}", service = service_name, state = state) - prev_state = self._sync_state self._sync_services[service_name] = state diff --git a/plugins/Toolbox/src/CloudSync/CloudPackageChecker.py b/plugins/Toolbox/src/CloudSync/CloudPackageChecker.py index ef8e82f576..7c39354317 100644 --- a/plugins/Toolbox/src/CloudSync/CloudPackageChecker.py +++ b/plugins/Toolbox/src/CloudSync/CloudPackageChecker.py @@ -62,7 +62,6 @@ class CloudPackageChecker(QObject): def _getUserSubscribedPackages(self) -> None: self._application.getCuraAPI().account.setSyncState(self.SYNC_SERVICE_NAME, SyncState.SYNCING) - Logger.debug("Requesting subscribed packages metadata from server.") url = CloudApiModel.api_url_user_packages self._application.getHttpRequestManager().get(url, callback = self._onUserPackagesRequestFinished, From 22b9bb77efb0a0268dc1968b6a9eb41aa0eaf90b Mon Sep 17 00:00:00 2001 From: Kostas Karmas Date: Fri, 5 Jun 2020 12:59:31 +0200 Subject: [PATCH 3/6] Fix reporting the [WinError 10038] exception traceback on sign-in Surround the serve_forever function of the web server with a try-catch on Windows, in order to avoid printing the entire (useless) traceback. Now a warning message is be displayed in the log instead. The behavior is untouched in other platforms --- cura/OAuth2/LocalAuthorizationServer.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/cura/OAuth2/LocalAuthorizationServer.py b/cura/OAuth2/LocalAuthorizationServer.py index f819042ae0..211b59683f 100644 --- a/cura/OAuth2/LocalAuthorizationServer.py +++ b/cura/OAuth2/LocalAuthorizationServer.py @@ -1,6 +1,6 @@ # Copyright (c) 2020 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. - +import sys import threading from typing import Any, Callable, Optional, TYPE_CHECKING @@ -71,7 +71,7 @@ class LocalAuthorizationServer: self._web_server.setState(state) # Start the server on a new thread. - self._web_server_thread = threading.Thread(None, self._web_server.serve_forever, daemon = self._daemon) + self._web_server_thread = threading.Thread(None, self._serve_forever, daemon = self._daemon) self._web_server_thread.start() def stop(self) -> None: @@ -87,3 +87,20 @@ class LocalAuthorizationServer: pass self._web_server = None self._web_server_thread = None + + def _serve_forever(self) -> None: + """ + If the platform is windows, this function calls the serve_forever function of the _web_server, catching any + OSErrors that may occur in the thread, thus making the reported message more log-friendly. + If it is any other platform, it just calls the serve_forever function immediately. + + :return: None + """ + if sys.platform == "win32": + try: + self._web_server.serve_forever() + except OSError as e: + Logger.warning(str(e)) + else: + # Leave the default behavior in non-windows platforms + self._web_server.serve_forever() From ea6a73e76d4712d7a9371ee9b61d365e190d797a Mon Sep 17 00:00:00 2001 From: Kostas Karmas Date: Fri, 5 Jun 2020 13:18:48 +0200 Subject: [PATCH 4/6] Fix mypy complains --- cura/OAuth2/LocalAuthorizationServer.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/cura/OAuth2/LocalAuthorizationServer.py b/cura/OAuth2/LocalAuthorizationServer.py index 211b59683f..a41de2d406 100644 --- a/cura/OAuth2/LocalAuthorizationServer.py +++ b/cura/OAuth2/LocalAuthorizationServer.py @@ -96,11 +96,12 @@ class LocalAuthorizationServer: :return: None """ - if sys.platform == "win32": - try: + if self._web_server: + if sys.platform == "win32": + try: + self._web_server.serve_forever() + except OSError as e: + Logger.warning(str(e)) + else: + # Leave the default behavior in non-windows platforms self._web_server.serve_forever() - except OSError as e: - Logger.warning(str(e)) - else: - # Leave the default behavior in non-windows platforms - self._web_server.serve_forever() From 42daef0a7511969950d2c8b417f7e8a49f373809 Mon Sep 17 00:00:00 2001 From: Kostas Karmas Date: Fri, 5 Jun 2020 13:20:38 +0200 Subject: [PATCH 5/6] Remove spam info message --- .../UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 7ee8322ba1..30c26a2c24 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -91,8 +91,6 @@ class CloudOutputDeviceManager: if self._syncing: return - Logger.info("Syncing cloud printer clusters") - self._syncing = True self._account.setSyncState(self.SYNC_SERVICE_NAME, SyncState.SYNCING) self._api.getClusters(self._onGetRemoteClustersFinished, self._onGetRemoteClusterFailed) From 670f1df6c7f1674f3bd19c3a5cc3046b9abc1abb Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 5 Jun 2020 13:29:21 +0200 Subject: [PATCH 6/6] Show latest version nr. available in firmware-update-checker-message. --- .../FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py | 4 ++-- .../FirmwareUpdateCheckerMessage.py | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py index f049542db1..2c869195bc 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2020 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from UM.Application import Application @@ -114,7 +114,7 @@ class FirmwareUpdateCheckerJob(Job): # notify the user when no new firmware version is available. if (checked_version != "") and (checked_version != current_version): Logger.log("i", "Showing firmware update message for new version: {version}".format(version = current_version)) - message = FirmwareUpdateCheckerMessage(machine_id, self._machine_name, + message = FirmwareUpdateCheckerMessage(machine_id, self._machine_name, current_version, self._lookups.getRedirectUserUrl()) message.actionTriggered.connect(self._callback) message.show() diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerMessage.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerMessage.py index 58c00850cb..ca253e3ec6 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerMessage.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerMessage.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2020 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from UM.i18n import i18nCatalog @@ -11,11 +11,12 @@ i18n_catalog = i18nCatalog("cura") class FirmwareUpdateCheckerMessage(Message): STR_ACTION_DOWNLOAD = "download" - def __init__(self, machine_id: int, machine_name: str, download_url: str) -> None: + def __init__(self, machine_id: int, machine_name: str, latest_version: str, download_url: str) -> None: super().__init__(i18n_catalog.i18nc( "@info Don't translate {machine_name}, since it gets replaced by a printer name!", - "New features are available for your {machine_name}! It is recommended to update the firmware on your printer.").format( - machine_name = machine_name), + "New features or bug-fixes may be available for your {machine_name}! If not already at the latest version, " + "it is recommended to update the firmware on your printer to version {latest_version}.").format( + machine_name = machine_name, latest_version = latest_version), title = i18n_catalog.i18nc( "@info:title The %s gets replaced with the printer name.", "New %s firmware available") % machine_name)