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()