mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-08 07:27:29 -06:00
Add a Message informing users of progress on cloud syncing printers.
CURA-7055
This commit is contained in:
parent
a80a5f36ff
commit
52ef794c4d
1 changed files with 27 additions and 9 deletions
|
@ -109,6 +109,13 @@ class CloudOutputDeviceManager:
|
||||||
self._connectToActiveMachine()
|
self._connectToActiveMachine()
|
||||||
|
|
||||||
def _onDevicesDiscovered(self, clusters: [CloudClusterResponse]) -> None:
|
def _onDevicesDiscovered(self, clusters: [CloudClusterResponse]) -> None:
|
||||||
|
"""**Synchronously** create machines for discovered devices
|
||||||
|
|
||||||
|
Any new machines are made available to the user.
|
||||||
|
May take a long time to complete. As this code needs access to the Application
|
||||||
|
and blocks the GIL, creating a Job for this would not make sense.
|
||||||
|
Shows a Message informing the user of progress.
|
||||||
|
"""
|
||||||
new_devices = []
|
new_devices = []
|
||||||
for cluster_data in clusters:
|
for cluster_data in clusters:
|
||||||
device = CloudOutputDevice(self._api, cluster_data)
|
device = CloudOutputDevice(self._api, cluster_data)
|
||||||
|
@ -121,26 +128,37 @@ class CloudOutputDeviceManager:
|
||||||
return
|
return
|
||||||
|
|
||||||
message = Message(
|
message = Message(
|
||||||
title = self.I18N_CATALOG.i18ncp("info:status", "New cloud printer detected", "New cloud printers detected", len(new_devices)),
|
title = self.I18N_CATALOG.i18ncp(
|
||||||
|
"info:status",
|
||||||
|
"New cloud printer detected from your Ultimaker account",
|
||||||
|
"New cloud printers detected from your Ultimaker account",
|
||||||
|
len(new_devices)
|
||||||
|
),
|
||||||
progress = 0,
|
progress = 0,
|
||||||
lifetime = 0
|
lifetime = 0
|
||||||
)
|
)
|
||||||
message.show()
|
message.show()
|
||||||
|
|
||||||
for idx, device in enumerate(new_devices):
|
for idx, device in enumerate(new_devices):
|
||||||
message.setText(self.I18N_CATALOG.i18nc("info:status", "Adding printer '{}' from your account", device.name))
|
message_text = self.I18N_CATALOG.i18nc(
|
||||||
message.setProgress((idx / len(new_devices)) * 100)
|
"info:status", "Adding printer {} ({}) from your account",
|
||||||
|
device.name,
|
||||||
|
device.printerTypeName
|
||||||
|
)
|
||||||
|
message.setText(message_text)
|
||||||
|
if len(new_devices) > 1:
|
||||||
|
message.setProgress((idx / len(new_devices)) * 100)
|
||||||
CuraApplication.getInstance().processEvents()
|
CuraApplication.getInstance().processEvents()
|
||||||
self._remote_clusters[device.getId()] = device
|
self._remote_clusters[device.getId()] = device
|
||||||
self._createMachineFromDiscoveredDevice(device.getId(), activate = False)
|
self._createMachineFromDiscoveredDevice(device.getId(), activate = False)
|
||||||
|
|
||||||
message.setProgress(100)
|
message.setProgress(None)
|
||||||
message.setText(self.I18N_CATALOG.i18ncp(
|
message_text = self.I18N_CATALOG.i18nc(
|
||||||
"info:status",
|
"info:status",
|
||||||
"{} cloud printer added from your account",
|
"Cloud printers added from your account:\n{}",
|
||||||
"{} cloud printers added from your account",
|
"\n".join(["- {} ({})".format(device.name, device.printerTypeName) for device in new_devices])
|
||||||
len(new_devices)
|
)
|
||||||
))
|
message.setText(message_text)
|
||||||
|
|
||||||
def _onDiscoveredDeviceUpdated(self, cluster_data: CloudClusterResponse) -> None:
|
def _onDiscoveredDeviceUpdated(self, cluster_data: CloudClusterResponse) -> None:
|
||||||
device = self._remote_clusters.get(cluster_data.cluster_id)
|
device = self._remote_clusters.get(cluster_data.cluster_id)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue