mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 06:57:28 -06:00
Hide the message if a manual check is initiated
This has to be done in order to avoid weird actions taking place, such as the user pressing to remove the printers while another sync is happening. CURA-7454
This commit is contained in:
parent
1c9ce25614
commit
2442371c2f
1 changed files with 14 additions and 8 deletions
|
@ -51,6 +51,7 @@ class CloudOutputDeviceManager:
|
|||
self._account = CuraApplication.getInstance().getCuraAPI().account # type: Account
|
||||
self._api = CloudApiClient(CuraApplication.getInstance(), on_error = lambda error: Logger.log("e", str(error)))
|
||||
self._account.loginStateChanged.connect(self._onLoginStateChanged)
|
||||
self.removed_printers_message = None # type: Optional[Message]
|
||||
|
||||
# Ensure we don't start twice.
|
||||
self._running = False
|
||||
|
@ -121,6 +122,11 @@ class CloudOutputDeviceManager:
|
|||
self._um_cloud_printers[device_id].setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, True)
|
||||
self._onDevicesDiscovered(new_clusters)
|
||||
|
||||
# Hide the current removed_printers_message, if there is any
|
||||
if self.removed_printers_message:
|
||||
self.removed_printers_message.actionTriggered.disconnect(self._onRemovedPrintersMessageActionTriggered)
|
||||
self.removed_printers_message.hide()
|
||||
|
||||
# Remove the CloudOutput device for offline printers
|
||||
offline_device_keys = set(self._remote_clusters.keys()) - set(online_clusters.keys())
|
||||
for device_id in offline_device_keys:
|
||||
|
@ -266,7 +272,7 @@ class CloudOutputDeviceManager:
|
|||
return
|
||||
|
||||
# Generate message
|
||||
removed_printers_message = Message(
|
||||
self.removed_printers_message = Message(
|
||||
title = self.I18N_CATALOG.i18ncp(
|
||||
"info:status",
|
||||
"Cloud connection is not available for a printer",
|
||||
|
@ -288,19 +294,19 @@ class CloudOutputDeviceManager:
|
|||
"<a href='https://mycloud.ultimaker.com/'>Ultimaker Digital Factory</a>.",
|
||||
device_names
|
||||
)
|
||||
removed_printers_message.setText(message_text)
|
||||
removed_printers_message.addAction("keep_printer_configurations_action",
|
||||
self.removed_printers_message.setText(message_text)
|
||||
self.removed_printers_message.addAction("keep_printer_configurations_action",
|
||||
name = self.I18N_CATALOG.i18nc("@action:button", "Keep printer configurations"),
|
||||
icon = "",
|
||||
description = "Keep the configuration of the cloud printer(s) synced with Cura which are not linked to your account.",
|
||||
button_align = Message.ActionButtonAlignment.ALIGN_RIGHT)
|
||||
removed_printers_message.addAction("remove_printers_action",
|
||||
self.removed_printers_message.addAction("remove_printers_action",
|
||||
name = self.I18N_CATALOG.i18nc("@action:button", "Remove printers"),
|
||||
icon = "",
|
||||
description = "Remove the cloud printer(s) which are not linked to your account.",
|
||||
button_style = Message.ActionButtonStyle.SECONDARY,
|
||||
button_align = Message.ActionButtonAlignment.ALIGN_LEFT)
|
||||
removed_printers_message.actionTriggered.connect(self._onRemovedPrintersMessageActionTriggered)
|
||||
self.removed_printers_message.actionTriggered.connect(self._onRemovedPrintersMessageActionTriggered)
|
||||
|
||||
output_device_manager = CuraApplication.getInstance().getOutputDeviceManager()
|
||||
|
||||
|
@ -317,7 +323,7 @@ class CloudOutputDeviceManager:
|
|||
# Update the printer's metadata to mark it as not linked to the account
|
||||
device.setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, False)
|
||||
|
||||
removed_printers_message.show()
|
||||
self.removed_printers_message.show()
|
||||
|
||||
def _onDiscoveredDeviceRemoved(self, device_id: str) -> None:
|
||||
device = self._remote_clusters.pop(device_id, None) # type: Optional[CloudOutputDevice]
|
||||
|
@ -406,7 +412,7 @@ class CloudOutputDeviceManager:
|
|||
|
||||
def _onRemovedPrintersMessageActionTriggered(self, removed_printers_message: Message, action: str) -> None:
|
||||
if action == "keep_printer_configurations_action":
|
||||
removed_printers_message.hide()
|
||||
self.removed_printers_message.hide()
|
||||
elif action == "remove_printers_action":
|
||||
machine_manager = CuraApplication.getInstance().getMachineManager()
|
||||
remove_printers_ids = {self._um_cloud_printers[i].getId() for i in self.reported_device_ids}
|
||||
|
@ -423,4 +429,4 @@ class CloudOutputDeviceManager:
|
|||
for machine_cloud_id in self.reported_device_ids:
|
||||
machine_manager.setActiveMachine(self._um_cloud_printers[machine_cloud_id].getId())
|
||||
machine_manager.removeMachine(self._um_cloud_printers[machine_cloud_id].getId())
|
||||
removed_printers_message.hide()
|
||||
self.removed_printers_message.hide()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue