Cura crashed because of RuntimeError after switching between monitor and prepare view

CURA-4376
This commit is contained in:
A.Sasin 2017-10-10 09:16:35 +02:00
parent 1c5d352b88
commit 99d9961297

View file

@ -334,13 +334,17 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
self._camera_timer.stop() self._camera_timer.stop()
if self._image_reply: if self._image_reply:
skip_abort = False
try: try:
try: try:
self._image_reply.downloadProgress.disconnect(self._onStreamDownloadProgress) self._image_reply.downloadProgress.disconnect(self._onStreamDownloadProgress)
except TypeError: except Exception as e:
pass #The signal was never connected. if type(e) != RuntimeError: # can happen the RuntimeError occurs before calling abort (=see below), then then the application will crash
self._image_reply.abort() skip_abort = True
except RuntimeError: pass #The signal was never connected.
if not skip_abort:
self._image_reply.abort()
except Exception as e: #RuntimeError
pass # It can happen that the wrapped c++ object is already deleted. pass # It can happen that the wrapped c++ object is already deleted.
self._image_reply = None self._image_reply = None
self._image_request = None self._image_request = None