From 61753540e405d1b40e27e304c60876242f5749f3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 20 Nov 2017 15:12:29 +0100 Subject: [PATCH] Callbacks are now handled by url and operation type. It would have been nicer to use the request, but it's unhashable. Cl-541 --- cura/PrinterOutput/NetworkedPrinterOutputDevice.py | 11 +++++------ plugins/UM3NetworkPrinting/ClusterUM3OutputDevice.py | 2 -- plugins/UM3NetworkPrinting/DiscoverUM3Action.qml | 6 ++++++ plugins/UM3NetworkPrinting/LegacyUM3OutputDevice.py | 3 ++- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py index 67ad968ce8..e33834ffce 100644 --- a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py +++ b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py @@ -37,13 +37,13 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice): def _put(self, target: str, data: str, onFinished: Callable): request = self._createEmptyRequest(target) - self._onFinishedCallbacks[request] = onFinished - self._manager.put(request, data.encode()) + reply = self._manager.put(request, data.encode()) + self._onFinishedCallbacks[reply.url().toString() + str(reply.operation())] = onFinished def _get(self, target: str, onFinished: Callable): request = self._createEmptyRequest(target) - self._onFinishedCallbacks[request] = onFinished - self._manager.get(request) + reply = self._manager.get(request) + self._onFinishedCallbacks[reply.url().toString() + str(reply.operation())] = onFinished def _delete(self, target: str, onFinished: Callable): pass @@ -65,8 +65,7 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice): def __handleOnFinished(self, reply: QNetworkReply): self._last_response_time = time() try: - self._onFinishedCallbacks[reply.request()](reply) - del self._onFinishedCallbacks[reply.request] # Remove the callback. + self._onFinishedCallbacks[reply.url().toString() + str(reply.operation())](reply) except Exception as e: print("Something went wrong with callback", e) pass diff --git a/plugins/UM3NetworkPrinting/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/ClusterUM3OutputDevice.py index f4e60b49e4..8de14fe233 100644 --- a/plugins/UM3NetworkPrinting/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/ClusterUM3OutputDevice.py @@ -7,5 +7,3 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): def _update(self): super()._update() - - pass diff --git a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml index 8131493957..d79bd543e7 100644 --- a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml @@ -29,6 +29,12 @@ Cura.MachineAction function connectToPrinter() { + if(base.selectedDevice) + { + var deviceKey = base.selectedDevice.key + manager.setKey(deviceKey); + completed(); + } if(base.selectedPrinter && base.completeProperties) { var printerKey = base.selectedDevice.key diff --git a/plugins/UM3NetworkPrinting/LegacyUM3OutputDevice.py b/plugins/UM3NetworkPrinting/LegacyUM3OutputDevice.py index c7ccbe763a..86211bddb4 100644 --- a/plugins/UM3NetworkPrinting/LegacyUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/LegacyUM3OutputDevice.py @@ -1,8 +1,9 @@ from cura.PrinterOutput.NetworkedPrinterOutputDevice import NetworkedPrinterOutputDevice + class LegacyUM3OutputDevice(NetworkedPrinterOutputDevice): def __init__(self, device_id, address: str, properties, parent = None): super().__init__(device_id = device_id, address = address, properties = properties, parent = parent) def _update(self): - pass + super()._update() \ No newline at end of file