Move associate um network printer function into UM3OutputDevicePlugin

This commit is contained in:
Lipu Fei 2019-03-28 15:24:42 +01:00
parent 109631d023
commit d34b3b8585
3 changed files with 41 additions and 78 deletions

View file

@ -1665,43 +1665,3 @@ class MachineManager(QObject):
if results:
machine_type_name = results[0]["name"]
return machine_type_name
@pyqtSlot(QObject)
def associateActiveMachineWithPrinterDevice(self, printer_device: Optional["PrinterOutputDevice"]) -> None:
if not printer_device:
return
Logger.log("d", "Attempting to set the network key of the active machine to %s", printer_device.key)
global_stack = self._global_container_stack
if not global_stack:
return
meta_data = global_stack.getMetaData()
# Global stack previously had a connection, so here it needs to change the connection information in all
# global stacks in that same group.
if "um_network_key" in meta_data:
old_network_key = meta_data["um_network_key"]
# Since we might have a bunch of hidden stacks, we also need to change it there.
metadata_filter = {"um_network_key": old_network_key}
containers = self._container_registry.findContainerStacks(type = "machine", **metadata_filter)
for container in containers:
container.setMetaDataEntry("um_network_key", printer_device.key)
# Delete old authentication data.
Logger.log("d", "Removing old authentication id %s for device %s",
global_stack.getMetaDataEntry("network_authentication_id", None),
printer_device.key)
container.removeMetaDataEntry("network_authentication_id")
container.removeMetaDataEntry("network_authentication_key")
# Ensure that these containers do know that they are configured for network connection
container.addConfiguredConnectionType(printer_device.connectionType.value)
# Global stack previously didn't have a connection, so directly configure it.
else:
global_stack.setMetaDataEntry("um_network_key", printer_device.key)
global_stack.addConfiguredConnectionType(printer_device.connectionType.value)