From 2fb1311d93d4378db1fa6a4e9e20f69650bd2cd8 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 12 Aug 2019 16:33:59 +0200 Subject: [PATCH] Don't register devices needlessly, for now remove initial update --- .../src/Network/LocalClusterOutputDevice.py | 3 --- .../LocalClusterOutputDeviceManager.py | 26 +++++++++++++------ 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py index 59c1b47076..ff704945eb 100644 --- a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDevice.py @@ -45,9 +45,6 @@ class LocalClusterOutputDevice(UltimakerNetworkedPrinterOutputDevice): self._setInterfaceElements() self._active_camera_url = QUrl() # type: QUrl - # Get the cluster configuration at least once to check if it is a host. - self._update() - ## Set all the interface elements and texts for this output device. def _setInterfaceElements(self) -> None: self.setPriority(3) # Make sure the output device gets selected above local file output diff --git a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py index 64a806e3a7..e5ae7b83ac 100644 --- a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py @@ -154,14 +154,24 @@ class LocalClusterOutputDeviceManager: break device = LocalClusterOutputDevice(key, address, properties) - CuraApplication.getInstance().getDiscoveredPrintersModel().addDiscoveredPrinter( - ip_address=address, - key=device.getId(), - name=device.getName(), - create_callback=self._createMachineFromDiscoveredDevice, - machine_type=device.printerType, - device=device - ) + discovered_printers_model = CuraApplication.getInstance().getDiscoveredPrintersModel() + if address in list(discovered_printers_model.discoveredPrintersByAddress.keys()): + # The printer was already added, we just update the available data. + discovered_printers_model.updateDiscoveredPrinter( + ip_address=address, + name=device.getName(), + machine_type=device.printerType + ) + else: + # The printer was not added yet so let's do that. + discovered_printers_model.addDiscoveredPrinter( + ip_address=address, + key=device.getId(), + name=device.getName(), + create_callback=self._createMachineFromDiscoveredDevice, + machine_type=device.printerType, + device=device + ) self._discovered_devices[device.getId()] = device self.discoveredDevicesChanged.emit() self._connectToActiveMachine()