Callbacks are now handled by url and operation type.

It would have been nicer to use the request, but it's unhashable.

Cl-541
This commit is contained in:
Jaime van Kessel 2017-11-20 15:12:29 +01:00
parent 03304003af
commit 61753540e4
4 changed files with 13 additions and 9 deletions

View file

@ -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

View file

@ -7,5 +7,3 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice):
def _update(self):
super()._update()
pass

View file

@ -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

View file

@ -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()