diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index dc1167065a..3d5d43b131 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -237,7 +237,7 @@ class CloudOutputDeviceManager: new_devices_added = [] for idx, output_device in enumerate(new_output_devices): - message.updateDisplayText(output_device) + message.updateProgressText(output_device) self._remote_clusters[output_device.getId()] = output_device @@ -247,21 +247,8 @@ class CloudOutputDeviceManager: if self._createMachineFromDiscoveredDevice(output_device.getId(), activate = activate): new_devices_added.append(output_device) - message.setProgress(None) + message.finalize(new_devices_added, new_output_devices) - max_disp_devices = 3 - if len(new_devices_added) > max_disp_devices: - num_hidden = len(new_devices_added) - max_disp_devices - device_name_list = ["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in new_output_devices[0: max_disp_devices]] - device_name_list.append("
  • " + self.i18n_catalog.i18ncp("info:{0} gets replaced by a number of printers", "... and {0} other", "... and {0} others", num_hidden) + "
  • ") - device_names = "".join(device_name_list) - else: - device_names = "".join(["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in new_devices_added]) - if new_devices_added: - message_text = self.i18n_catalog.i18nc("info:status", "Printers added from Digital Factory:") + f"" - message.setText(message_text) - else: - message.hide() def _updateOnlinePrinters(self, printer_responses: Dict[str, CloudClusterResponse]) -> None: """ diff --git a/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py b/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py index 026251f972..d85ade9dce 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py @@ -19,7 +19,12 @@ class NewPrinterDetectedMessage(Message): self._printers_added = 0 self._num_printers_found = num_printers_found - def updateDisplayText(self, output_device): + def updateProgressText(self, output_device): + """ + While the progress of adding printers is running, update the text displayed. + :param output_device: The output device that is being added. + :return: + """ message_text = self.i18n_catalog.i18nc("info:status Filled in with printer name and printer model.", "Adding printer {name} ({model}) from your account").format( name=output_device.name, model=output_device.printerTypeName) @@ -29,3 +34,27 @@ class NewPrinterDetectedMessage(Message): self._printers_added += 1 CuraApplication.getInstance().processEvents() + + def finalize(self, new_devices_added, new_output_devices): + self.setProgress(None) + num_devices_added = len(new_devices_added) + max_disp_devices = 3 + + if num_devices_added > max_disp_devices: + num_hidden = num_devices_added - max_disp_devices + device_name_list = ["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in + new_output_devices[0: max_disp_devices]] + device_name_list.append( + "
  • " + self.i18n_catalog.i18ncp("info:{0} gets replaced by a number of printers", "... and {0} other", + "... and {0} others", num_hidden) + "
  • ") + device_names = "".join(device_name_list) + else: + device_names = "".join( + ["
  • {} ({})
  • ".format(device.name, device.printerTypeName) for device in new_devices_added]) + + if new_devices_added: + message_text = self.i18n_catalog.i18nc("info:status", + "Printers added from Digital Factory:") + f"" + self.setText(message_text) + else: + self.hide()