Browse Source

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

A.Sasin 7 years ago
parent
commit
99d9961297
1 changed files with 8 additions and 4 deletions
  1. 8 4
      plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py

+ 8 - 4
plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py

@@ -334,13 +334,17 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
             self._camera_timer.stop()
 
         if self._image_reply:
+            skip_abort = False
             try:
                 try:
                     self._image_reply.downloadProgress.disconnect(self._onStreamDownloadProgress)
-                except TypeError:
-                    pass #The signal was never connected.
-                self._image_reply.abort()
-            except RuntimeError:
+                except Exception as e:
+                    if type(e) != RuntimeError: # can happen the RuntimeError occurs before calling abort (=see below), then then the application will crash
+                        skip_abort = True
+                        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.
             self._image_reply = None
             self._image_request = None