mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 04:55:54 +08:00
Merge pull request #7862 from Ultimaker/CURA-7457_Fix_resyncing_removed_online_cloud_printers
Update _remote_clusters dict when cloud printer is removed from Cura
This commit is contained in:
commit
2337e3b82c
@ -9,6 +9,7 @@ from PyQt5.QtNetwork import QNetworkReply
|
|||||||
from UM import i18nCatalog
|
from UM import i18nCatalog
|
||||||
from UM.Logger import Logger # To log errors talking to the API.
|
from UM.Logger import Logger # To log errors talking to the API.
|
||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
|
from UM.Settings.Interfaces import ContainerInterface
|
||||||
from UM.Signal import Signal
|
from UM.Signal import Signal
|
||||||
from cura.API import Account
|
from cura.API import Account
|
||||||
from cura.API.Account import SyncState
|
from cura.API.Account import SyncState
|
||||||
@ -49,6 +50,8 @@ class CloudOutputDeviceManager:
|
|||||||
|
|
||||||
self._syncing = False
|
self._syncing = False
|
||||||
|
|
||||||
|
CuraApplication.getInstance().getContainerRegistry().containerRemoved.connect(self._printerRemoved)
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
"""Starts running the cloud output device manager, thus periodically requesting cloud data."""
|
"""Starts running the cloud output device manager, thus periodically requesting cloud data."""
|
||||||
|
|
||||||
@ -287,3 +290,16 @@ class CloudOutputDeviceManager:
|
|||||||
output_device_manager = CuraApplication.getInstance().getOutputDeviceManager()
|
output_device_manager = CuraApplication.getInstance().getOutputDeviceManager()
|
||||||
if device.key not in output_device_manager.getOutputDeviceIds():
|
if device.key not in output_device_manager.getOutputDeviceIds():
|
||||||
output_device_manager.addOutputDevice(device)
|
output_device_manager.addOutputDevice(device)
|
||||||
|
|
||||||
|
def _printerRemoved(self, container: ContainerInterface) -> None:
|
||||||
|
"""
|
||||||
|
Callback connected to the containerRemoved signal. Invoked when a cloud printer is removed from Cura to remove
|
||||||
|
the printer's reference from the _remote_clusters.
|
||||||
|
|
||||||
|
:param container: The ContainerInterface passed to this function whenever the ContainerRemoved signal is emitted
|
||||||
|
:return: None
|
||||||
|
"""
|
||||||
|
if isinstance(container, GlobalStack):
|
||||||
|
container_cluster_id = container.getMetaDataEntry(self.META_CLUSTER_ID, None)
|
||||||
|
if container_cluster_id in self._remote_clusters.keys():
|
||||||
|
del self._remote_clusters[container_cluster_id]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user