diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 8c9600cfb7..e081beb99c 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -33,6 +33,7 @@ class CloudOutputDeviceManager: I18N_CATALOG = i18nCatalog("cura") addedCloudCluster = Signal() + removedCloudCluster = Signal() def __init__(self) -> None: # Persistent dict containing the remote clusters for the authenticated user. @@ -85,6 +86,7 @@ class CloudOutputDeviceManager: removed_cluster.disconnect() removed_cluster.close() self._output_device_manager.removeOutputDevice(removed_cluster.key) + self.removedCloudCluster.emit() del self._remote_clusters[removed_cluster.key] # Add an output device for each new remote cluster. diff --git a/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py b/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py index 0a0315b26c..1631159020 100644 --- a/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py +++ b/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py @@ -45,8 +45,6 @@ class UM3OutputDevicePlugin(OutputDevicePlugin): # Create a cloud output device manager that abstracts all cloud connection logic away. self._cloud_output_device_manager = CloudOutputDeviceManager() - self._cloud_output_device_manager.addedCloudCluster.connect(self._onCloudPrintingConfigured) - # Because the model needs to be created in the same thread as the QMLEngine, we use a signal. self.addDeviceSignal.connect(self._onAddDevice) self.removeDeviceSignal.connect(self._onRemoveDevice) @@ -96,6 +94,12 @@ class UM3OutputDevicePlugin(OutputDevicePlugin): # Listen for when cloud flow is possible self.cloudFlowIsPossible.connect(self._onCloudFlowPossible) + # Listen if cloud cluster was added + self._cloud_output_device_manager.addedCloudCluster.connect(self._onCloudPrintingConfigured) + + # Listen if cloud cluster was removed + self._cloud_output_device_manager.removedCloudCluster.connect(self.checkCloudFlowIsPossible) + self._start_cloud_flow_message = None # type: Optional[Message] self._cloud_flow_complete_message = None # type: Optional[Message]